libcorelinux-0.4.32/0000775000000000000000000000000010771020402011160 5ustar libcorelinux-0.4.32/corelinux/0000775000000000000000000000000010771020402013170 5ustar libcorelinux-0.4.32/corelinux/Command.hpp0000664000000000000000000000615107103721577015302 0ustar #if !defined(__COMMAND_HPP) #define __COMMAND_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__ABSTRACTCOMMAND_HPP) #include #endif namespace corelinux { DECLARE_CLASS( Command ); /** Command captures the semantics of allowing commands to be added as a reverse command type. It adds the reverse execution interface along with the storage for the AbstractCommand that is considered the reverse. */ class Command : public AbstractCommand { public: // // Constructors and destructor // /// Default Constructor Command( void ); /// Copy constructor Command( CommandCref ); /// Constructor with reverse command Command( AbstractCommandPtr ); /// Virtual Destructor virtual ~Command( void ); // // Operator overloads // /// Assignment operator CommandRef operator=( CommandCref ); /// Equality operator bool operator==( CommandCref ) const; // // Accessors // /** Retrieves the reverse command @return AbstractCommand pointer or NULLPTR */ virtual AbstractCommandPtr getReverseCommand( void ) const; // // Mutators // /** Sets the reverse command pointer to be used by the executeReverse call. @param AbstractCommand pointer to valid command or NULLPTR */ virtual void setReverseCommand( AbstractCommandPtr ); /** If theReverseCommand is not null, call its execute method. */ virtual void executeReverse( void ) ; protected: /// The infamous reverse command AbstractCommandPtr theReverseCommand; private: }; } #endif // if !defined(__COMMAND_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/05/03 03:56:47 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/EventSemaphore.hpp0000664000000000000000000001227507204607346016654 0ustar #if !defined(__EVENTSEMAPHORE_HPP) #define __EVENTSEMAPHORE_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__SEMAPHORE_HPP) #include #endif namespace corelinux { DECLARE_CLASS( EventSemaphore ); /** EventSemaphore implements a way to queue its caller until a certain event takes place. */ class EventSemaphore : public Semaphore { public: // // Constructors and destructors // /** Default constructor requires the identifier of the semaphore in the semaphore group @param aGroup pointer to the owning SemaphoreGroup @param aIdentifier The identifier for the Semaphore from the SemaphoreGroup @param aLimit the maximum number of listeners. @arg aLimit < 0 : infinite number of listeners, @arg aLimit >= 0 : finite number of listeners @param Recursive true if recursion enabled @param Balking true if balking enabled */ EventSemaphore ( SemaphoreGroupPtr aGroup, SemaphoreIdentifierRef aIdentifier, Counter aLimit, bool aRecursionFlag = true, bool aBalkingFlag = false ) throw ( NullPointerException ); /// Virtual Destructor virtual ~EventSemaphore( void ); // // Accessors // /// Check if semaphore instance is locked virtual bool isLocked( void ) ; // // Mutators // /** Indicate owner commitment to trigger the event after a finite amount of time. */ SemaphoreOperationStatus post( void ) throw( SemaphoreException ); /** Wait for the event associated with this semaphore to take place. Block if the event has not occured */ virtual SemaphoreOperationStatus lockWithWait( void ) throw( SemaphoreException ); /** Check if the associated event has taken place. */ virtual SemaphoreOperationStatus lockWithNoWait( void ) throw( SemaphoreException ); /// Request the semaphore but timeout if not available // virtual SemaphoreOperationStatus lockWithTimeOut( Timer ) // throw(SemaphoreException) = 0; /// Signal the observer that an event has occured. virtual SemaphoreOperationStatus release( void ) throw( SemaphoreException ); /** Set the maximum number of listeners allowed on this semaphore. @param aLimit the maximum number of listeners. @arg aLimit < 0: infinite number of listeners, @arg aLimit >= 0: finite number of listeners, */ virtual void setLimit ( Counter aLimit ) throw ( SemaphoreException ); /** Get the maximum number of listeners of this semaphore. */ virtual Counter getLimit ( void ) const; protected: // // Constructors // /// Default constructor throws assert EventSemaphore( void ) throw( Assertion ); /// Copy constructor throws assertion EventSemaphore( EventSemaphoreCref ) throw( Assertion ); // // Operator overloads // /// Assignment operator throws assertion EventSemaphoreRef operator=( EventSemaphoreCref ) throw( Assertion ); private: /// # of threads which are currently listening to this event Counter theNumListeners; /// Max number of allowed listeners Counter theMaxListeners; }; } #endif // if !defined(__EVENTSEMAPHORE_HPP) /* Common rcs information do not modify $Author: dulimart $ $Revision: 1.7 $ $Date: 2000/11/15 22:32:06 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/GatewaySemaphoreGroup.hpp0000664000000000000000000003046507116552500020203 0ustar #if !defined(__GATEWAYSEMAPHOREGROUP_HPP) #define __GATEWAYSEMAPHOREGROUP_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__SEMAPHOREGROUP_HPP) #include #endif namespace corelinux { DECLARE_CLASS( GatewaySemaphoreGroup ); /** A GatewaySemaphoreGroup is an extension to the SemaphoreGroup for creating only GatewaySemaphore types. Default behavior for creating semaphores via the SemaphoreGroup interface is to create a Gateway and initialize it to a count of two (2) Use the createCountSemaphore(...) interface to accomplish initializing the GatewaySemaphore to a count > 2. */ class GatewaySemaphoreGroup : public SemaphoreGroup { public: /** Default constructor creates a private group semaphores with access for OWNER_ALL @param Short Number of semaphores in group @param AccessRights Specifies access control for group @exception Assertion if aCount < 1 @exception SemaphoreException if kernel group create call fails. @see AccessRights */ GatewaySemaphoreGroup( Short, Int Rights = OWNER_ALL ) throw(Assertion,SemaphoreException); /** Constructor to open or create a semaphore group with a specific identifier. @param Short Number of semaphores in group, this only has meaning used if failOnExist = true @param SemaphoreGroupIdentifier valid group identifier either through a system call or via another ipc mechanism @param AccessRights Specifies access control for group @param CreateDisposition indicates how to treat the conditions that the group may meet in the request:
CREATE_OR_REUSE indicates that the caller doesn't care
FAIL_IF_EXISTS indicates the attempt was for a create
FAIL_IF_NOTEXISTS indicates the attempt was for a open @exception Assertion if aCount < 1 @exception SemaphoreException for described states */ GatewaySemaphoreGroup ( Short, SemaphoreGroupIdentifierCref, Int , CreateDisposition disp=FAIL_IF_EXISTS ) throw(Assertion,SemaphoreException); /** Constructor to open or create a semaphore group by name. @param Short Number of semaphores in group, this only has meaning used if failOnExist = true @param Char pointer to Group name @param AccessRights Specifies access control for group @param CreateDisposition indicates how to treat the conditions that the group may meet in the request: CREATE_OR_REUSE indicates that the caller doesn't care FAIL_IF_EXISTS indicates the attempt was for a create FAIL_IF_NOTEXISTS indicates the attempt was for a open @exception Assertion if aCount < 1 or aCount > system defined maximum for group @exception SemaphoreException for described states */ GatewaySemaphoreGroup ( Short, CharCptr aName, Int , CreateDisposition disp=FAIL_IF_EXISTS ) throw(Assertion,SemaphoreException); /// Virtual destructor virtual ~GatewaySemaphoreGroup( void ); // // Accessors // // // Factory methods // /** Create a default GatewaySemaphore @return AbstractSemaphore aSem - pointer to created semaphore @exception SemaphoreException if no sems left in group */ virtual AbstractSemaphorePtr createSemaphore( void ) throw( SemaphoreException ) ; /** Create a count GatewaySemaphore @param Count initializing count for GatewaySemaphore @return AbstractSemaphore aSem - pointer to created semaphore @exception SemaphoreException if no sems left in group */ virtual AbstractSemaphorePtr createCountSemaphore( Count aCount ) throw( SemaphoreException ) ; /** Create or open (use) a specific GatewaySemphore @param SemaphoreIdentifier identifies which semphore id to create or attempt to use @param CreateDisposition indicates how to treat the conditions that the group may meet in the request: CREATE_OR_REUSE indicates that the caller doesn't care FAIL_IF_EXISTS indicates the attempt was for a create FAIL_IF_NOTEXISTS indicates the attempt was for a open @param Recursive to allow same thread multiple locks @param Balking to allow the semaphore to balk @return AbstractSemaphore aSem - pointer to created or opened semaphore @exception SemaphoreException if the disposition disagrees with the semaphore state, or if it is a erroneous identifier */ virtual AbstractSemaphorePtr createSemaphore ( SemaphoreIdentifierRef aIdentifier, CreateDisposition disp = CREATE_OR_REUSE, bool Recursive = false, bool Balking = false ) throw( SemaphoreException ) ; /** Create or open (use) a specific GatewaySemphore and have it automatically initialized to the specified count. @param SemaphoreIdentifier identifies which semphore id to create or attempt to use @param Count initializing count for GatewaySemaphore @param CreateDisposition indicates how to treat the conditions that the group may meet in the request: CREATE_OR_REUSE indicates that the caller doesn't care FAIL_IF_EXISTS indicates the attempt was for a create FAIL_IF_NOTEXISTS indicates the attempt was for a open @param Recursive to allow same thread multiple locks @param Balking to allow the semaphore to balk @return AbstractSemaphore aSem - pointer to created or opened semaphore @exception SemaphoreException if the disposition disagrees with the semaphore state, or if it is a erroneous identifier */ virtual AbstractSemaphorePtr createCountSemaphore ( SemaphoreIdentifierRef aIdentifier, Count aCount, CreateDisposition disp = CREATE_OR_REUSE, bool Recursive = false, bool Balking = false ) throw( SemaphoreException ) ; /** Create or open (use) a specific GatewaySemphore @param string identifies which semphore id to create or attempt to use @param CreateDisposition indicates how to treat the conditions that the group may meet in the request: CREATE_OR_REUSE indicates that the caller doesn't care FAIL_IF_EXISTS indicates the attempt was for a create FAIL_IF_NOTEXISTS indicates the attempt was for a open @param Recursive to allow same thread multiple locks @param Balking to allow the semaphore to balk @return AbstractSemaphore aSem - pointer to created or opened semaphore @exception SemaphoreException if the disposition disagrees with the semaphore state, or if it is a erroneous identifier */ virtual AbstractSemaphorePtr createSemaphore ( std::string aName, CreateDisposition disp = CREATE_OR_REUSE, bool Recursive=false, bool Balking = false ) throw( SemaphoreException ) ; /** Destroys a created GatewaySemaphore @note Reference counting is not enabled so applications should ensure that only one (1) destroy is called per semaphore. @param AbstractSemaphore pointer of semaphore to destroy @exception SemaphoreException if semaphore does not belong to this group or if already destroyed. */ virtual void destroySemaphore( AbstractSemaphorePtr ) throw( SemaphoreException ) ; protected: // // Constructors // /// Default constructor not allowed GatewaySemaphoreGroup( void ) throw( Assertion ); /// Copy constructor not allowed GatewaySemaphoreGroup( GatewaySemaphoreGroupCref ) throw( Assertion ); // // Operator overloads // /// Assignment operator not allowed GatewaySemaphoreGroupRef operator=( GatewaySemaphoreGroupCref ) throw( Assertion ); // // GatewayGroup methods // /// Protected method for resolving mutex between CSA and local AbstractSemaphorePtr resolveSemaphore ( SemaphoreIdentifierRef aIdentifier, Short aSemId, CreateDisposition aDisp, bool aRecurse, bool aBalk, Count aMaxValue = 1 ) throw( SemaphoreException ) ; private: /// Local share counts SemaphoreShares theUsedMap; }; } #endif // if !defined(__GATEWAYSEMAPHOREGROUP_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.4 $ $Date: 2000/06/04 22:16:32 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/InvalidThreadException.hpp0000664000000000000000000001102707100660141020301 0ustar #if !defined (__INVALIDTHREADEXCEPTION_HPP) #define __INVALIDTHREADEXCEPTION_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__THREADEXCEPTION_HPP) #include #endif namespace corelinux { DECLARE_CLASS( InvalidThreadException ); /** InvalidThreadException describes an exception that is thrown when a operation is attempted on a non-managed thread context. */ class InvalidThreadException : public ThreadException { public: /** Default Constructor @param file The source module throwing the exception @param line The line of source throwing the exception @param severity The Exception::Severity of the Exception @param outOfMemory An out of memory indicator */ InvalidThreadException ( CharCptr file, LineNum line, Severity severity = Exception::CONTINUABLE, bool outOfMemory = false ); /** Copy constructor @param InvalidThreadException const reference */ InvalidThreadException( InvalidThreadExceptionCref ); /// Virtual Destructor virtual ~InvalidThreadException( void ); // // Operator overloads // /** Assignment operator overload @param InvalidThreadException const reference @return InvalidThreadException reference to self */ InvalidThreadExceptionRef operator=( InvalidThreadExceptionCref ); /** Equality operator overload @param InvalidThreadException const reference @return true if equal, false otherwise */ bool operator==( InvalidThreadExceptionCref ) const; // // Accessor methods // // // Mutator methods // protected: /** Default Constructor @param why describes why the exception was thrown @param file The source module throwing the exception @param line The line of source throwing the exception @param severity The Exception::Severity of the Exception @param outOfMemory An out of memory indicator */ InvalidThreadException ( CharCptr why, CharCptr file, LineNum line, Severity severity = Exception::CONTINUABLE, bool outOfMemory = false ); /** InvalidThreadException must have at least a location.. Default constructor is not allowed. */ InvalidThreadException( void ); }; } #endif // !defined __InvalidThreadEXCEPTION_HPP /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Subject.hpp0000664000000000000000000001200007105301531015273 0ustar #if !defined(__SUBJECT_HPP) #define __SUBJECT_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__EVENT_HPP) #include #endif #if !defined(__ITERATOR_HPP) #include #endif namespace corelinux { DECLARE_CLASS( Subject ); DECLARE_CLASS( Observer ); /** Subject knows its Observer objects, communicates with its observers through event notification. */ class Subject { public: // // Constructors and destructor // /** Default constructor */ Subject( void ) ; /** Copy constructor @param Subject const referencee */ Subject( SubjectCref ); /// Virtual destructor virtual ~Subject( void ); // // Operator overloads // /// Assignment operator SubjectRef operator=( SubjectCref ); /// Equality operator bool operator==( SubjectCref ) const; /// In-Equality operator bool operator!=( SubjectCref ) const; // // Accessors // // // Mutators // /** Add an observer for a specific event @param Event the type of event interested in @exception NullPointer exception if event is null */ virtual void addObserver( ObserverPtr, Event * ) throw ( NullPointerException ) = 0 ; /** Remove an observer from all event notifications @param Observer to remove @exception NullPointer exception Observer is null */ virtual void removeObserver( ObserverPtr ) throw ( NullPointerException ) = 0 ; /** Remove an observer from specific event notifications @param Observer to remove @exception NullPointer exception Observer or Event is null */ virtual void removeObserver( ObserverPtr, Event * ) throw ( NullPointerException ) = 0 ; // // Iterator Factory methods // /** Create a iterator for all observers @return Iterator */ virtual Iterator *createIterator( void ) = 0; /** Create a iterator for observers of this event @param Event defines the event type predicate @return Iterator @exception NullPointerException if event null */ virtual Iterator *createIterator( Event * ) throw ( NullPointerException ) = 0 ; /** Deletes the iterator instance @param Iterator @exception NullPointerException if iterator null */ virtual void destroyIterator( Iterator * ) throw ( NullPointerException ) = 0 ; protected: // // Activity // /** Performs the notification of observers for a specific event @param Event key @exception NullPointerException if event is null */ virtual void notifyObservers( Event * ) throw ( NullPointerException ) ; /** Performs the notification of ALL observers for a with a specific event @param Event key @exception NullPointerException if event is null */ virtual void notifyAllObservers( Event * ) throw ( NullPointerException ) ; private: }; } #endif // if !defined(__SUBJECT_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/05/07 14:53:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/ScalarIdentifiers.hpp0000664000000000000000000001643307113125546017316 0ustar #if !defined (__SCALARIDENTIFIERS_HPP) #define __SCALARIDENTIFIERS_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined IN_COMMON_HPP #error ScalarIdentifiers.hpp is included by Common.hpp only. #endif namespace corelinux { /** ScalarIdentifier provides a templated interface for declaring CoreLinux Identifiers for simple scalar types */ template< class ScalarType > class ScalarIdentifier : public Identifier { public: // // Constructors and destructor // /// Default constructor ScalarIdentifier( void ) : Identifier(), theScalar(0) { ; // do nothing } /// Initializing constructor ScalarIdentifier( ScalarType aType ) : Identifier(), theScalar(aType) { ; // do nothing } /// Copy constructor ScalarIdentifier( const ScalarIdentifier &aScalar ) : Identifier(aScalar), theScalar( aScalar.getScalar() ) { ; // do nothing } /// Virtual Destructor virtual ~ScalarIdentifier( void ) { ; // do nothing } // // Operator overloads // /// Operator assignment for scalars inline ScalarType & operator=( ScalarType aScalar ) { theScalar = aScalar; return ( *this ); } /// Operator assignment of Identifiers inline ScalarIdentifier & operator=( const ScalarIdentifier &aScalar ) { theScalar = aScalar.getScalar(); return ( *this ); } /// Reference cast operator inline operator ScalarType &( void ) { return theScalar; } /// Pointer cast operator inline operator ScalarType *( void ) { return &theScalar; } // // Accessors // /// Returns a const reference inline const ScalarType & getScalar( void ) const { return theScalar; } protected: /** Equality method @param Identifier const reference @return true if equal, false otherwise */ virtual bool isEqual( IdentifierCref aRef ) const { return ( theScalar == ((const ScalarIdentifier &)aRef).theScalar ); } /** Less than method @param Identifier const reference @return true if less than, false otherwise */ virtual bool isLessThan( IdentifierCref aRef ) const { return ( theScalar < ((const ScalarIdentifier &)aRef).theScalar ); } /** Less than or equal method. @param Identifier const reference @return true if less than or equal, false otherwise */ virtual bool isLessThanOrEqual( IdentifierCref aRef ) const { return ( theScalar <= ((const ScalarIdentifier &)aRef).theScalar ); } /** Greater than method. @param Identifier const reference @return true if greater than, false otherwise */ virtual bool isGreaterThan( IdentifierCref aRef ) const { return ( theScalar > ((const ScalarIdentifier &)aRef).theScalar ); } /** Greater than or equal method. @param Identifier const reference @return true if greater than or equal, false otherwise */ virtual bool isGreaterThanOrEqual( IdentifierCref aRef ) const { return ( theScalar >= ((const ScalarIdentifier &)aRef).theScalar ); } private: /// The scalar storage ScalarType theScalar; }; } using corelinux::Dword; using corelinux::Int; using corelinux::Short; using corelinux::Word; using corelinux::UnsignedInt; /// Integer Identifier (int) DECLARE_TYPE( CORELINUX(ScalarIdentifier), IntIdentifier ); /// Unsigned integer identifier (UnsignedInt) DECLARE_TYPE( CORELINUX(ScalarIdentifier), UnsignedIdentifier ); /// Short Identifer (short int) DECLARE_TYPE( CORELINUX(ScalarIdentifier), ShortIdentifier ); /// Dword Identifier (unsigned long) DECLARE_TYPE( CORELINUX(ScalarIdentifier), DwordIdentifier ); /// Word identifier (unsigned short) DECLARE_TYPE( CORELINUX(ScalarIdentifier), WordIdentifier ); /// SemphoreIdentifier used by Semaphores and SemaphoreGroups DECLARE_TYPE( ShortIdentifier, SemaphoreIdentifier ); /// SemphoreGroupIdentifier used by Semaphores and SemaphoreGroups DECLARE_TYPE( IntIdentifier, SemaphoreGroupIdentifier ); /// ThreadIdentifier used by Threads DECLARE_TYPE( IntIdentifier, ThreadIdentifier ); /// ProcessIdentifier used by ? DECLARE_TYPE( IntIdentifier, ProcessIdentifier ); /// MemoryIdentifier used by Memory DECLARE_TYPE( IntIdentifier, MemoryIdentifier ); /// User identifier DECLARE_TYPE( UnsignedIdentifier, UserIdentifier ); /// Group identifier DECLARE_TYPE( UnsignedIdentifier, GroupIdentifier ); #endif // if defined(__SCALARIDENTIFIERS_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/05/25 04:26:14 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Colleague.hpp0000664000000000000000000001037107153560644015624 0ustar #if !defined(__COLLEAGUE_HPP) #define __COLLEAGUE_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__VECTOR_HPP) #include #endif #if !defined(__EVENT_HPP) #include #endif namespace corelinux { CORELINUX_VECTOR( IdentifierPtr , EventIdentifiers ); DECLARE_CLASS( Mediator ); DECLARE_CLASS( Colleague ); /** Colleague knows its Mediator object, communicates with its mediator whenever it would have otherwise communicated with another Colleague. */ class Colleague { public: // // Constructors and destructor // /** Default constructor requires a Mediator @param Mediator pointer @exception NullPointerException if MediatorPtr is NULLPTR */ Colleague( MediatorPtr ) throw ( NullPointerException ); /** Copy constructor copies the mediator reference @param Colleague const referencee */ Colleague( ColleagueCref ); /// Virtual destructor virtual ~Colleague( void ); // // Operator overloads // /// Assignment operator ColleagueRef operator=( ColleagueCref ); /// Equality operator bool operator==( ColleagueCref ) const; // // Accessors // /** Implementation defined to return the identifiers of the events that this Colleague generates @param EventIdentifiers vector reference */ virtual void getEventsGenerated( EventIdentifiersRef ) = 0; /** Implementation defined to return the identifiers of the events that this Colleague is interested in @param EventIdentifiers vector reference */ virtual void getInterestedEvents( EventIdentifiersRef ) = 0; // // Mutators // /** Called by the mediator when another Colleague has generated an event that this colleague instance is interested in. @param Event pointer to event */ virtual void action( Event * ) = 0; protected: // // Constructor // /// Default constructor not allowed Colleague( void ) throw ( Assertion ); // // Service method // /** Called by the Colleague implementation to have the Mediator::action called with the event type @param Event pointer to event @exception NullPointerException if EventPtr is NULLPTR */ virtual void invokeMediator( Event * ) throw ( NullPointerException ); private: /// The Mediator that this Colleague knows MediatorPtr theMediator; }; } #endif // if !defined(__COLLEAGUE_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.2 $ $Date: 2000/08/31 22:52:20 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/AbstractFactory.hpp0000664000000000000000000001571407100660141017006 0ustar #if !defined(__ABSTRACTFACTORY_HPP) #define __ABSTRACTFACTORY_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__ALLOCATOR_HPP) #include #endif #if !defined(__ALLOCATORNOTFOUNDEXCEPTION_HPP) #include #endif #if !defined(__ALLOCATORALREADYEXISTSEXCEPTION_HPP) #include #endif #if !defined(__ASSOCIATIVEITERATOR_HPP) #include #endif #if !defined(__ITERATOR_HPP) #include #endif namespace corelinux { /** AbstractFactory provides an interface for creating families of related or dependent objects without specifying their concrete classes. @see Allocator, AbstractAllocator, Identifier, Iterator, AssociativeIterator */ template< class UniqueId > class AbstractFactory : public CoreLinuxObject { public: // // Constructors and Destructor // /// Default constructor AbstractFactory( void ) : CoreLinuxObject() { ; // do nothing } /** Copy Constructor @param AbstractFactory const reference */ AbstractFactory( const AbstractFactory & ) : CoreLinuxObject() { } /// Virtual Destructor virtual ~AbstractFactory( void ) { ; // do nothing } // // Operator overloads // /** Assignment operator @param AbstractFactory const reference @return AbstractFactory reference */ AbstractFactory & operator=( const AbstractFactory & ) { return ( *this ); } /** Equality operator @param AbstractFactory const reference @return bool - true if instances are same */ bool operator==( const AbstractFactory & aRef ) const { return( this == &aRef ); } // // Pure virtual accessors // /** Returns the number of total creates for this factory. @return corelinux::Count */ virtual Count getCreateCount( void ) const = 0; /** Returns the number of total destroys for this factory. @return corelinux::Count */ virtual Count getDestroyCount( void ) const = 0; /** Retrieve the allocator identified by argument from the implementation @param Identifier const reference @return Allocator pointer @exception AllocatorNotFoundException */ virtual AllocatorPtr getAllocator( UniqueId ) const throw(AllocatorNotFoundException) = 0; // // Pure virtual mutators // /** Add a allocator to the factory implementation @param Allocator pointer @exception AllocatorAlreadyExistsException */ virtual void addAllocator( UniqueId, AllocatorPtr ) throw(AllocatorAlreadyExistsException) = 0; /** Retrieve and remove the allocator identified by argument from the implementation @param Identifier const reference @return Allocator pointer @exception AllocatorNotFoundException */ virtual AllocatorPtr removeAllocator( UniqueId ) throw(AllocatorNotFoundException) = 0; // // Iterator factory methods // /** Interface for creating an Iterator to iterate through the Allocators of an implementation. @return Iterator pointer of type Allocator pointer */ virtual Iterator * createIterator( void ) const = 0; /** Interface for returning a created Iterator. @return Iterator pointer of type Allocator pointer */ virtual void destroyIterator( Iterator * ) const = 0; /** Interface for creating an AssociativeIterator to iterate through the Identifiers and Allocators of an implementation. @return AssociativeIterator pointer of type */ virtual AssociativeIterator * createAssociativeIterator( void ) const = 0; /** Interface for returning a created AssociativeIterator. @return Iterator pointer of type */ virtual void destroyAssociativeIterator ( AssociativeIterator * ) const = 0; }; } #endif // if !defined(__ABSTRACTFACTORY_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Exception.hpp0000664000000000000000000002006007140161705015645 0ustar #if !defined (__EXCEPTION_HPP) #define __EXCEPTION_HPP /* CoreLinux++ Copyright (C) 1999 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined IN_COMMON_HPP #error except.hpp is included by common.hpp only. #endif #include // // Base exception class // namespace corelinux { DECLARE_CLASS( Exception ); // Define a reference to line number DECLARE_TYPE( Dword, LineNum ); /** Exception is the base exception class used in the CoreLinux++ libraries. It is provided to support a rich base from which domain Exceptions may derive. */ class Exception { public: /// Exception Severity States enum Severity { CONTINUABLE = 1, /// System can continue processing THREADFATAL, /// Exception may prove to be thread fatal PROCESSFATAL, /// Exception may prove to be process fatal THREADTERMINATE, /// System should kill thread PROCESSTERMINATE /// System should exit }; /** Default Constructor @param why describes why the exception was thrown @param file The source module throwing the exception @param line The line of source throwing the exception @param severity The Exception::Severity of the Exception @param outOfMemory An out of memory indicator */ Exception ( CharCptr why, CharCptr file, LineNum line, Severity severity = Exception::CONTINUABLE, bool outOfMemory = false ); /** Copy constructor @param Exception const reference */ Exception( ExceptionCref crOther ); /// Virtual Destructor virtual ~Exception(void); // // Operator overloads // /** Assignment operator overload @param Exception const reference @return Exception reference to self */ ExceptionRef operator = ( ExceptionCref otherRef ); /** Comparisson operator overload @param Exception const reference @return true if equal, false otherwise */ bool operator==( ExceptionCref otherRef ); // // Accessor methods // /** Accessor @return Const reference to module name where Exception was thrown */ const std::string & getFile( void ) const; /** Accessor @return Const reference to line number in module where Exception was thrown */ LineNumCref getLine( void ) const; /** Accessor @return Const reference to Exception explanation. */ const std::string & getWhy( void ) const; /** Accessor @return Const reference to Severity of Exception. */ const Severity & getSeverity( void ) const; /** Accessor @return Const reference to the unwind stack description. */ const std::string & getUnwind( void ) const; /** Accessor @return true if out of memory exception, false otherwise */ bool isOutOfMemory( void ) const { return theOutOfMemoryFlag;} // // Mutator methods // /** Append unwind information to the Exception. Clients should use this service to identify themselves and specify any changes to severity. */ void addUnwindInfo( CharCptr unwindInfo ); /// Change the severity to Severity::THREADFATAL void setThreadFatalSeverity( void ); /// Change the severity to Severity::PROCESSFATAL void setProcessFatalSeverity( void ); /** Change the severity to Severity::THREADTERMINATE. This is useful to the catcher that the thread should be cleaned up. */ void setThreadTerminateSeverity( void ); /** Change the severity to Severity::PROCESSTERMINATE. This is useful to the catcher that the process should exit */ void setProcessTerminateSeverity( void ); protected: /** Exceptions must have a reason. Default constructor is not allowed. */ Exception( void ); /** Exception constructor for use by derivations */ Exception ( CharCptr file, LineNum line, Severity severity = Exception::CONTINUABLE, bool outOfMemory = false ); /// Changes the exception reason void setWhy( const std::string & ); /// Changes the exception reason void setWhy( CharCptr ); private: private: // Reason why the exception is being thrown. std::string theReason; // File that threw the exception. std::string theFile; // Severity of the exception. Severity theSeverity; // Unwind information added as exception is unwound from // stack. std::string theUnwindInfo; // Line number in the file throwing the exception. LineNum theLine; // Flag that indicates if there is a low memory situation. bool theOutOfMemoryFlag; }; } #endif // !defined __EXCEPTION_HPP /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/07/28 01:37:09 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/InvalidCompositeException.hpp0000664000000000000000000001015307100660141021033 0ustar #if !defined (__INVALIDCOMPOSITEEXCEPTION_HPP) #define __INVALIDCOMPOSITEEXCEPTION_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__COMPOSITEEXCEPTION_HPP) #include #endif namespace corelinux { DECLARE_CLASS( InvalidCompositeException ); /** InvalidCompositeException is an exception that is usually thrown when a composite operation is attempted on a leaf component. */ class InvalidCompositeException : public CompositeException { public: /** Default Constructor @param file The source module throwing the exception @param line The line of source throwing the exception @param severity The Exception::Severity of the Exception @param outOfMemory An out of memory indicator */ InvalidCompositeException ( CharCptr file, LineNum line, Severity severity = Exception::CONTINUABLE, bool outOfMemory = false ); /** Copy constructor @param InvalidCompositeException const reference */ InvalidCompositeException ( InvalidCompositeExceptionCref ); /// Virtual Destructor virtual ~InvalidCompositeException( void ); // // Operator overloads // /** Assignment operator overload @param InvalidCompositeException const reference @return InvalidCompositeException reference to self */ InvalidCompositeExceptionRef operator= ( InvalidCompositeExceptionCref ); /** Equality operator overload @param InvalidCompositeException const reference @return true if equal, false otherwise */ bool operator== ( InvalidCompositeExceptionCref ) const; // // Accessor methods // // // Mutator methods // protected: /** InvalidCompositeException must have at least a location.. Default constructor is not allowed. */ InvalidCompositeException( void ); private: private: }; } #endif // !defined __INVALIDCOMPOSITEEXCEPTION_HPP /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/IteratorBoundsException.hpp0000664000000000000000000000746007100660141020535 0ustar #if !defined (__ITERATORBOUNDSEXCEPTION_HPP) #define __ITERATORBOUNDSEXCEPTION_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__ITERATOREXCEPTION_HPP) #include #endif namespace corelinux { DECLARE_CLASS( IteratorBoundsException ); /** IteratorBoundsException is thrown when a Iterator has position before the begining or past the end positions of its implementation. */ class IteratorBoundsException : public IteratorException { public: /** Default Constructor @param file The source module throwing the exception @param line The line of source throwing the exception @param severity The Exception::Severity of the Exception @param outOfMemory An out of memory indicator */ IteratorBoundsException ( CharCptr file, LineNum line, Severity severity = Exception::CONTINUABLE, bool outOfMemory = false ); /** Copy constructor @param IteratorBoundsException const reference */ IteratorBoundsException( IteratorBoundsExceptionCref ); /// Virtual Destructor virtual ~IteratorBoundsException( void ); // // Operator overloads // /** Assignment operator overload @param IteratorBoundsException const reference @return IteratorBoundsException reference to self */ IteratorBoundsExceptionRef operator=( IteratorBoundsExceptionCref ); /** Equality operator overload @param IteratorBoundsException const reference @return true if equal, false otherwise */ bool operator==( IteratorBoundsExceptionCref ) const; // // Accessor methods // // // Mutator methods // protected: /** IteratorBoundsException must have at least a location.. Default constructor is not allowed. */ IteratorBoundsException( void ); private: private: }; } #endif // !defined __ITERATORBOUNDSEXCEPTION_HPP /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Visitor.hpp0000664000000000000000000000513007106675063015360 0ustar #if !defined (__VISITOR_HPP) #define __VISITOR_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif namespace corelinux { DECLARE_CLASS( Visitor ); /** Represent an operation to be performed on the components of an object structure. Visitor lets you define a new operation without changing the classes of the components on which it operates. */ class Visitor { public: /// Default Constructor Visitor( void ); /** Copy Constructor @param Visitor const reference */ Visitor( VisitorCref ); /// Virtual Destructor virtual ~Visitor( void ); // // Operator overloads // /** Assignment operator overload @param Visitor const reference @return Visitor reference to self */ VisitorRef operator=( VisitorCref ); /** Equality operator overload @param Visitor const reference @return true if equal, false otherwise */ bool operator==( VisitorCref ) const; /** Non-equality operator overload @param Visitor const reference @return false if equal, true otherwise */ bool operator!=( VisitorCref ) const; }; } #endif // if !defined(__VISITOR_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/05/12 03:27:47 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Request.hpp0000664000000000000000000000515007102047565015347 0ustar #if !defined(__REQUEST_HPP) #define __REQUEST_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif namespace corelinux { DECLARE_CLASS( Request ); /** A Request is used for type identification to a handler object @see Handler */ class Request { public: // // Constructors and destructor // /// Default Constructor Request( void ); /** Copy Constructor @param Request const reference */ Request( RequestCref ); /// Virtual Destructor virtual ~Request( void ); // // Operator overloads // /** Assignment operator overload @param Request const reference @return Request reference to self */ RequestRef operator=( RequestCref ); /** Equality operator overload @param Request const reference @return true if equal, false otherwise */ bool operator==( RequestCref ) const; /** Non-equality operator overload @param Request const reference @return false if equal, true otherwise */ bool operator!=( RequestCref ) const; }; } #endif // if !defined(__REQUEST_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/04/27 14:32:21 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/MutexSemaphore.hpp0000664000000000000000000001117507115717730016673 0ustar #if !defined(__MUTEXSEMAPHORE_HPP) #define __MUTEXSEMAPHORE_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__SEMAPHORE_HPP) #include #endif namespace corelinux { DECLARE_CLASS( MutexSemaphore ); /** MutexSemaphore implements a mutual exclusion control which can be used to insure that at most one (1) task has access at a time. The semantics for Recursion: The thread that is successful is obtaining the lock will be regarded as theOwningThreadIdentifier. If, upon a lock request, it is determined that the same thread that owns the lock is asking to lock again, theRecursionQueueLength will be incremented. It is thereafter neccessary for theOwningThread to release the semaphore until theRecursionQueueLength returns to zero (0). All other callers will block or not based on their lock call disposition. */ class MutexSemaphore : public Semaphore { public: // // Constructors and destructors // /** Default constructor requires the identifier of the semaphore in the semaphore group @param SemaphoreGroup pointer to the owning SemaphoreGroup @param SemaphoreIdentifier The identifier for the Semaphore from the SemaphoreGroup @param bool true if autolock on creation @param bool true if recursion enabled @param bool true if balking enabled */ MutexSemaphore ( SemaphoreGroupPtr, SemaphoreIdentifierRef, bool AutoLock = false, bool Recursive = true, bool Balking = false ) throw ( NullPointerException ); /// Virtual Destructor virtual ~MutexSemaphore( void ); // // Accessors // /// Ask if semaphore instance is locked virtual bool isLocked( void ) ; // // Mutators // /// Request the semaphore, wait for availability virtual SemaphoreOperationStatus lockWithWait( void ) throw(SemaphoreException); /// Request the semaphore without waiting virtual SemaphoreOperationStatus lockWithNoWait( void ) throw(SemaphoreException); /// Request the semaphore but timeout if not available // virtual SemaphoreOperationStatus lockWithTimeOut( Timer ) // throw(SemaphoreException) = 0; /// Release the semaphore if owner virtual SemaphoreOperationStatus release( void ) throw(SemaphoreException); protected: // // Constructors // /// Default construct throws assert MutexSemaphore( void ) throw( Assertion ); /// Copy constructor throws assertion MutexSemaphore( MutexSemaphoreCref ) throw( Assertion ); // // Operator overloads // /// Assignment operator throws assertion MutexSemaphoreRef operator=( MutexSemaphoreCref ) throw( Assertion ); private: }; } #endif // if !defined(__MUTEXSEMAPHORE_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/06/02 11:51:52 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/StorageException.hpp0000664000000000000000000001046407100660141017173 0ustar #if !defined (__STORAGEEXCEPTION_HPP) #define __STORAGEEXCEPTION_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif namespace corelinux { DECLARE_CLASS( StorageException ); /** StorageException is the base exception type for Storage. All Storage exceptions derive from this. */ class StorageException : public Exception { public: /** Default Constructor @param why describes why the exception was thrown @param file The source module throwing the exception @param line The line of source throwing the exception @param severity The Exception::Severity of the Exception @param outOfMemory An out of memory indicator */ StorageException ( CharCptr why, CharCptr file, LineNum line, Severity severity = Exception::CONTINUABLE, bool outOfMemory = false ); /** Default Constructor @param file The source module throwing the exception @param line The line of source throwing the exception @param severity The Exception::Severity of the Exception @param outOfMemory An out of memory indicator */ StorageException ( CharCptr file, LineNum line, Severity severity = Exception::CONTINUABLE, bool outOfMemory = false ); /** Copy constructor @param StorageException const reference */ StorageException( StorageExceptionCref ); /// Virtual Destructor virtual ~StorageException( void ); // // Operator overloads // /** Assignment operator overload @param StorageException const reference @return StorageException reference to self */ StorageExceptionRef operator=( StorageExceptionCref ); /** Equality operator overload @param StorageException const reference @return true if equal, false otherwise */ bool operator==( StorageExceptionCref ) const; // // Accessor methods // // // Mutator methods // protected: /** StorageException must have at least a location.. Default constructor is not allowed. */ StorageException( void ); }; } #endif // !defined __STORAGEEXCEPTION_HPP /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/SemaphoreCommon.hpp0000664000000000000000000002232007156360551017013 0ustar #if !defined(__SEMAPHORECOMMON_HPP) #define __SEMAPHORECOMMON_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif namespace corelinux { /** Describes the tip control block for the Common Storage Area (CSA) */ struct _CSAHeader { Int creatorId; // 0 if not opened before Int currentUsed; // The current used up in the pool Int currentGrps; // The current groups present Int reserved; // }; DECLARE_TYPE( struct _CSAHeader, CSAHeader ); /** Describes a CSA semaphore group */ struct _CSAGroupHeader { Int groupInfo; // Either an Id, 0 if tail, or -1 if available Int groupShares; // How many processes are using this Int groupType; // -1 not used, 0 Mutex, 1 Gateway, 2-10 res Int groupSemCount; // Semaphore count if info is -1 // and not reclaimed | !0 }; DECLARE_TYPE( struct _CSAGroupHeader, CSAGrpHeader ); /** Describes a CSA semaphore entry */ struct _CSASemaphoreHeader { Int semOwner; // Current semaphore owner Int maxSemValue; // 1 for mutexes, n for others, -1 if control Word isRecursive; // ? for instance, 0 for control Word isBalking; // ? for instance, 0 for control Int semShares; // Shares for this semaphore }; DECLARE_TYPE( struct _CSASemaphoreHeader, CSASemHeader ); DECLARE_CLASS( CoreLinuxGuardPool ); DECLARE_CLASS( SemaphoreGroup ); DECLARE_CLASS( MemoryStorage ); DECLARE_CLASS( SemaphoreCommon ); /** The SemaphoreCommon manages the SemaphoreGroup common storage area. This area is to communicate between address spaces when using one of the CoreLinux++ SemaphoreGroup types in public mode. */ class SemaphoreCommon : public Synchronized { public: // // Accessors // /** Returns the maximum value for a semaphore as defined by the original semaphore claimant @param SemaphoreGroup pointer to group owner @param Int zero offset semaphore identifier @return Int -1 for local unknown, > 0 for common */ static Int getSemaphoreMaxValue( SemaphoreGroupPtr, Int ); // // Mutators // /** When a shared semaphore group is created, it is updated in the CSA, either by increasing the count of processes accessing a particular group, or adding to the csa initially @param SemaphoreGroup pointer */ static void groupDefined( SemaphoreGroupPtr ); /** When the local process is deleting a semaphore group and it is considered a shared group, we are asked to adjust the map accordingly. @param SemaphoreGroup pointer to the group @return Int number of shares on group */ static Int groupUnDefined( SemaphoreGroupPtr ); /** Called by the base semaphore to aquire a lock for a specific semaphore. @param SemaphoreGroup pointer to the group @param Int the system group id @param Int the zero offset semaphore id @param Int the system dependent flag @return Int return code */ static Int setLock( SemaphoreGroupPtr, Int, Int, Int ); /** Called by the base semaphore to relinquish a lock for a specific semaphore. @param SemaphoreGroup pointer to the group @param Int the system group id @param Int the zero offset semaphore id @param Int the system dependent flag @return Int return code */ static Int setUnLock( SemaphoreGroupPtr, Int, Int, Int ); /** Called by the base semaphore to wait for a specific semaphore to have a zero value. @param SemaphoreGroup pointer to the group @param Int the system group id @param Int the zero offset semaphore id @param Int the system dependent flag @return Int return code */ static Int waitZero( SemaphoreGroupPtr, Int, Int, Int ); /** Typically called by a SemaphoreGroup prior to passing out the semaphore type to the caller. @param SemaphoreGroup the group pointer @param Int the semaphore identifier/index -1 = any @param Int reference the initial value (becomes the max if new) @param Int reference the recursive condition @param Int reference the balking condition @param Int 0 must not exist, 1 share, 2 must exist */ static Int obtainSemaphore ( SemaphoreGroupPtr, Int, IntRef, IntRef, IntRef, Int ); /** Called when the semaphore is no longer being referenced. Effectively reducing the share count for shared group semaphores @param SemaphoreGroup pointer @param Int the zero index semaphore identifier @return Int the number of outstanding shares */ static Int relinquishSemaphore(SemaphoreGroupPtr,Int); /** Called to set the semaphore maximum value. For local this is SETVAL, for shared it is ignored @param SemaphoreGroup pointer @param Int the zero index semaphore identifier @param Int the value */ static Int setMaxValue( SemaphoreGroupPtr, Int, Int ); protected: /// Default constructor used by class SemaphoreCommon( void ); /// Destructor virtual ~SemaphoreCommon( void ); // // Instance mutators // /** Does the work of getting the group registered in the CSA @param SemaphoreGroup pointer to register */ void registerGroup( SemaphoreGroupPtr ); /** Does the work of reducing the group share count, or marking the group for reclaimation @param SemaphoreGroup pointer to register */ Int deregisterGroup( SemaphoreGroupPtr ); /** Called when the group is determined to be shared and a semaphore share is to be claimed. @param SemaphoreGroup the group pointer @param Int the semaphore identifier/index -1 = any @param Int the initial value (becomes the max if new) @param IntRef the recursive condition @param IntRef the balking condition @param Int 0 must not exist, 1 share, 2 must exist */ Int claimSemaphore ( SemaphoreGroupPtr, Int, IntRef, IntRef, IntRef, Int ); /** Called when a group wishes to let the CSA reclaim a semaphore share. @param SemaphoreGroup the group pointer @param Int the semaphore identifier/index @return Int the number of shares outstanding */ Int reclaimSemaphore(SemaphoreGroupPtr,Int); /// Attempt to locate a specific group CSAGrpHeaderPtr findGroup ( IntCref , IntCref , CSAGrpHeaderPtr ); /// Find open slot that fits count criteria CSAGrpHeaderPtr findAvailableGroup ( IntCref , IntCref , CSAGrpHeaderPtr ); /// Utility to clean CSA group tail CSAGrpHeaderPtr subsetGroup( Int, CSAGrpHeaderPtr ) ; CSAGrpHeaderPtr combineGroup( Int, CSAGrpHeaderPtr ) ; bool isOriginator( void ) const; Int getOriginatorId( void ) const; Int canonicalUndefined( void ); /// Factory for CSA static void createAttachment( void ); friend class CoreLinuxGuardPool; /// On the way out from run-time static void exitAttachment( void ); private: SemaphoreCommon( SemaphoreCommonCref ) throw ( Assertion ) : Synchronized() { NEVER_GET_HERE; } private: MemoryStoragePtr theCSA; CSAHeaderPtr theBase; bool theOriginator; static SemaphoreCommonPtr theInstance; static SemaphoreGroupPtr theControlGroup; static bool theInitializeFlag; }; } #endif // if !defined(__SEMAPHORECOMMON_HPP) /* Common rcs information do not modify $Author: dulimart $ $Revision: 1.9 $ $Date: 2000/09/09 07:06:17 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Component.hpp0000664000000000000000000000626207106675063015672 0ustar #if !defined (__COMPONENT_HPP) #define __COMPONENT_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif namespace corelinux { DECLARE_CLASS( Visitor ); DECLARE_CLASS( Component ); /** A Component declares the interface for the objects in a composition and implements default behavior. This is a safe component by which the composite implementation fully declares leaf management methods. @see TransparentComponent */ class Component : public CoreLinuxObject { public: /// Default Constructor Component( void ); /** Copy Constructor @param Component const reference */ Component( ComponentCref ); /// Virtual Destructor virtual ~Component( void ); // // Operator overloads // /** Assignment operator overload @param Component const reference @return Component reference to self */ ComponentRef operator=( ComponentCref ); /** Equality operator overload @param Component const reference @return true if equal, false otherwise */ bool operator==( ComponentCref ) const; /** Non-equality operator overload @param Component const reference @return false if equal, true otherwise */ bool operator!=( ComponentCref ) const; // // Visitor access // /** Accept is a double dispatch method which allows components to have new operations defined without changing the structure of the components themselves. @param Visitor pointer to visitor @exception NullPointerException if pointer is null */ virtual void accept( VisitorPtr ) throw ( NullPointerException ); }; } #endif // if !defined(__COMPONENT_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/05/12 03:27:47 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Semaphore.hpp0000664000000000000000000001354507115717730015653 0ustar #if !defined(__SEMAPHORE_HPP) #define __SEMAPHORE_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__ABSTRACTSEMAPHORE_HPP) #include #endif #if !defined(__SEMAPHOREEXCEPTION_HPP) #include #endif namespace corelinux { DECLARE_CLASS( Semaphore ); /** A Semaphore supports the protocol that processes and/or threads agree to follow for the purpose of controlled access to a resource. The resource can be anything that the developer considers to need access controls on such as memory, hardware, methods, computer instructions, and so on. Callers can elect to avoid being put into a blocked state and return immediately without control to the resource. Callers may also request that they are put into a blocked state for a specified amount of time. If, at the end of the specified time, the request has not been satisfied, it is returned with a Timeout indicator. The owner or creator of the semaphore can elect to enforce balking behavior on a Semaphore. When so designated, the Semaphore can turn back any request until some condition in their solution space is met regardless of the callers blocking options. If a caller access attempt is balked, is it returned with a Balked indicator. */ class Semaphore : public AbstractSemaphore { public: // // Constructors and destructors // /** Default constructor requires the identifier of the semaphore in the semaphore group @param SemaphoreGroupPtr The owning SemaphoreGroup @param SemaphoreIdentifier The identifier from the Semaphore Group @param bool true if recursion enabled @param bool true if balking enabled */ Semaphore ( SemaphoreGroupPtr, SemaphoreIdentifierRef, bool Recursive=false, bool Balking=false ) throw ( NullPointerException ); /// Virtual Destructor virtual ~Semaphore( void ); // // Operator overloads // /// Equality operator returns true if identifiers match bool operator==( SemaphoreCref aRef ) const; // // Accessors // /// Returns true if balking enabled virtual bool isBalkingEnabled( void ) const; /// Returns true if recursion allowed virtual bool isRecursionEnabled( void ) const; /// Returns the identifier of who currently owns the semaphore virtual ThreadIdentifierCref getOwningThreadIdentifier( void ) const; /// Return the depth of the recursion for the owner virtual CounterCref getRecursionQueueLength( void ) const; protected: // // Constructors // /// Default constructor throws assertion Semaphore( void ) throw(Assertion); /// Copy constructor throws assertion Semaphore( SemaphoreCref ) throw(Assertion); // // Operator overloads // /// Assignment operator throws assertion SemaphoreRef operator=( SemaphoreCref ) throw(Assertion); /// Operator for increasing theRecursionQueueLength CounterCref operator++( void ); /// Operator for decreasing theRecursionQueueLength CounterCref operator--( void ); // // Accessors // /// Returns a reference to the owning thread virtual ThreadIdentifierRef getOwnerId( void ); // // Mutators // /// Sets the owner id to the current thread virtual void setOwnerId( void ); /// Sets the recursion length virtual void setRecursionQueueLength( Counter ); /// Sets the owner thread id to not owned virtual void resetOwnerId( void ); private: /// ThreadIdentifier for recursive check ThreadIdentifier theOwningThread; /// The recursion queue length Counter theRecursionQueueLength; /// Recursive mode flag bool theRecursiveMode; /// Balking mode flag bool theBalkingMode; }; } #endif // if !defined(__SEMAPHORE_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/06/02 11:51:52 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Environment.hpp0000664000000000000000000001114007255553450016223 0ustar #if !defined(__ENVIRONMENT_HPP) #define __ENVIRONMENT_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined IN_COMMON_HPP #error Environment.hpp is included by Common.hpp only. #endif namespace corelinux { DECLARE_CLASS(Environment); /** Environment is a class utility which encapsulates */ class Environment { public: /// Equality operator inline bool operator==( EnvironmentCref ) const { return true; } // // Accessors // /// Retreive the real user id for the current process static UserIdentifier getUserId( void ); /// Retreive the effective user id for the current process static UserIdentifier getEffectiveUserId( void ); /// Retreive the real group id for the current process static GroupIdentifier getGroupId( void ); /// Retreive the effective group id for the current process static GroupIdentifier getEffectiveGroupId( void ); /** Retrieve the environmental value variable from the (name=value) pair. Same behavior as in POSIX getenv @param Char const pointer to key (name) to find value for @return Char pointer to the value or null if not found */ static CharPtr getEnvironmentValue( CharCptr ); // // Mutators // /** Sets an environment name=value. Same behavior and return as POSIX putenv. @param Char pointer to string with "NAME=VALUE" @return Int 0 for success, -1 otherwise */ static Int setEnvironmentNameValue( CharPtr ); // // Functions for library // /** Basically, creates a filename for use by those Linux system api that require a key (IPC mainly). @param Char pointer to fully qualified name @param CreateDisposition disposition of object @return Int indicating failure (-1) */ static Int setupCommonAccess( CharCptr, const CreateDisposition & ); /** The reverse of setupCommonAccess @param Char pointer to fully qualified name @return Int indicating failure (-1) */ static Int removeCommonAccess( CharCptr ); /// Retrieve the process group id for the current process static ProcessIdentifier getProcessGroupId( void ); /// Retrieve the process group id for a specific process static ProcessIdentifier getProcessGroupId( ProcessIdentifierRef ); /// set priority for a specific process static void setThreadPriority( ProcessIdentifier, Int ); /// get priority for a specific process static Int getThreadPriority( ProcessIdentifier ); protected: Environment( void ) throw (Assertion) { NEVER_GET_HERE; } Environment( EnvironmentCref ) throw (Assertion) { NEVER_GET_HERE; } EnvironmentRef operator=( EnvironmentCref ) throw (Assertion) { NEVER_GET_HERE; return (*this); } private: }; } #endif /* Common rcs information do not modify $Author: dulimart $ $Revision: 1.4 $ $Date: 2001/03/20 04:06:00 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Mediator.hpp0000664000000000000000000000637307105162773015475 0ustar #if !defined(__MEDIATOR_HPP) #define __MEDIATOR /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__ITERATOR_HPP) #include #endif #if !defined(__EVENT_HPP) #include #endif namespace corelinux { DECLARE_CLASS( Colleague ); DECLARE_CLASS( Mediator ); /** Mediator declares an interface for communicating with Colleague objects. */ class Mediator { public: // // Constructors and destructor // /// Default constructor Mediator( void ); /// Copy constructor Mediator( MediatorCref ); /// Virtual destructor virtual ~Mediator( void ); // // Operator overloads // /// Assignment operator MediatorRef operator=( MediatorCref ); /// Equality operator bool operator==( MediatorCref ) const; // // The working part // virtual void action( Event* ) throw ( NullPointerException ); protected: // // Mutators // /** colleagueCreated requires a implementation for derivations that need to gather information from the Colleague to distribute action events @param Colleague pointer */ virtual void colleagueCreated( ColleaguePtr ) = 0; // // Factory methods // /** When action is called on the Mediator, it will ask the implementation for the Colleagues that are interested in the event identified by the identifier @param IdentifierCref key to interested parties @return Iterator over Colleague pointer */ virtual Iterator *createIterator( Event* ) = 0; /** Called when action is through with the colleague iteration @param Iterator over Colleague pointer */ virtual void destroyIterator( Iterator * ) = 0; private: }; } #endif // if !defined(__MEDIATOR_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/05/07 03:41:47 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Synchronized.hpp0000664000000000000000000000602107153560644016400 0ustar #if !defined(__SYNCHRONIZED_HPP) #define __SYNCHRONIZED_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined IN_COMMON_HPP #error Synchronized.hpp is included by Common.hpp only. #endif #if !defined(__SEMAPHOREEXCEPTION_HPP) #include #endif namespace corelinux { DECLARE_CLASS( Synchronized ); /** Synchronized is a mixin which allows class objects to enable monitor functionality */ class Synchronized { protected: DECLARE_CLASS( Guard ); /** Guard is the automatic instance that insures a lock is not held beyond the scope where it was instantiated. */ class Guard { public: /// Default constructor Guard( GuardCref ); /// Destructor ~Guard( void ); // // Mutator // /// Releases before destruction void release( void ); protected: friend class Synchronized; /// Called by Synchronized object Guard( SynchronizedPtr ); /// Default constructor never called Guard( void ); /// Assignment operator never called GuardRef operator=( GuardCref ); private: /// The object being guarded mutable SynchronizedPtr theSynchronized; }; public: // // Constructors and destructor // /// Default constructor Synchronized( void ); /// Copy constructor Synchronized( SynchronizedCref ); /// Virtual Destructor virtual ~Synchronized( void ); // // Operator overloads // /// Assignment operator SynchronizedRef operator=( SynchronizedCref ); /// Equality operator bool operator==( SynchronizedCref ) const; protected: // // Mutators // /** Access returns a instance of Guard which is block scoped to the caller. @return Guard the blocking instance */ Guard access( void ) const throw(SemaphoreException) ; }; #define GUARD \ Guard aGuardedLock( this->access() ) } #endif // if !defined(__SYNCHRONIZED_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.4 $ $Date: 2000/08/31 22:52:20 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Map.hpp0000664000000000000000000000760107153560644014443 0ustar #if !defined(__MAP_HPP) #define __MAP_HPP /* CoreLinux++ Copyright (C) 1999 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif // STL includes #include namespace corelinux { /** STL map template. This macro generates all the type references and pointers for the collection and respective iterators for a map. @param name The name you want to give the collection @param key The object that represents the map key @param value The object that the key is associated to @param comp The comparator functor */ #define CORELINUX_MAP(key,value,comp,name) \ typedef std::map name; \ typedef name * name ## Ptr; \ typedef const name * name ## Cptr; \ typedef name & name ## Ref; \ typedef const name & name ## Cref; \ typedef name::iterator name ## Iterator; \ typedef name::iterator& name ## IteratorRef; \ typedef name::iterator* name ## IteratorPtr; \ typedef name::const_iterator name ## ConstIterator; \ typedef name::const_iterator& name ## ConstIteratorRef; \ typedef name::const_iterator* name ## ConstIteratorPtr; \ typedef name::reverse_iterator name ## Riterator; \ typedef name::reverse_iterator& name ## RiteratorRef; \ typedef name::reverse_iterator* name ## RiteratorPtr /** STL multimap template. This macro generates all the type references and pointers for the collection and respective iterators for a multimap. @param name The name you want to give the collection @param key The object that represents the map key @param value The object that the key is associated to @param comp The comparator functor */ #define CORELINUX_MULTIMAP(key,value,comp,name) \ typedef std::multimap name; \ typedef name * name ## Ptr; \ typedef const name * name ## Cptr; \ typedef name & name ## Ref; \ typedef const name & name ## Cref; \ typedef name::iterator name ## Iterator; \ typedef name::iterator& name ## IteratorRef; \ typedef name::iterator* name ## IteratorPtr; \ typedef name::const_iterator name ## ConstIterator; \ typedef name::const_iterator& name ## ConstIteratorRef; \ typedef name::const_iterator* name ## ConstIteratorPtr; \ typedef name::reverse_iterator name ## Riterator; \ typedef name::reverse_iterator& name ## RiteratorRef; \ typedef name::reverse_iterator* name ## RiteratorPtr } #endif /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.3 $ $Date: 2000/08/31 22:52:20 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/AbstractString.hpp0000664000000000000000000000660707100660141016646 0ustar #if !defined(__ABSTRACTSTRING_HPP) #define __ABSTRACTSTRING_HPP /* CoreLinux++ Copyright (C) 1999 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined IN_COMMON_HPP #error AbstractString.hpp is included by common.hpp only. #endif namespace corelinux { DECLARE_CLASS( AbstractString ); /** AbstractString is a temporary base abstraction. It is the goal of the library to support adaptors for other string implementations while providing a consistent interface. */ class AbstractString { public: // // Constructors and destructors // // Default Constructor AbstractString( void ); // Copy constructor AbstractString( AbstractStringCref ); // Destructor virtual ~AbstractString( void ); // // Operators // // Assignment operator AbstractStringRef operator=( AbstractStringCref ) ; // Equality check bool operator==( AbstractStringCref ) const; // // Accessors // // Indicates mbcs or unicode based character count virtual Byte getElementByteCount( void ) const = 0; // Can it be casted to std::string ? virtual bool supportsStandardInterface( void ) const = 0; // Is a mbcs based string? virtual bool isUtf8( void ) const = 0; // Is a 16 bit character string? virtual bool isUcs2( void ) const = 0; // Is a 32 bit character string (Linux wchar_t) virtual bool isUcs4( void ) const = 0; // // Mutators // // // Factory methods and conversions // // Default clone method virtual AbstractStringPtr clone( void ) const throw ( Exception ) = 0; // Clone ones self to a Utf8 implementation virtual AbstractStringPtr cloneUtf8( void ) const throw ( Exception ) = 0; // Clone ones self to a Ucs2 implementation virtual AbstractStringPtr cloneUcs2( void ) const throw ( Exception ) = 0; // Clone ones self to a Ucs4 implementation virtual AbstractStringPtr cloneUcs4( void ) const throw ( Exception ) = 0; }; } #endif /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Memory.hpp0000664000000000000000000001533607153560644015202 0ustar #if !defined(__MEMORY_HPP) #define __MEMORY_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__SYNCHRONIZED_HPP) #include #endif #if !defined(__SINGLETON_HPP) #include #endif #if !defined(__STORAGEEXCEPTION_HPP) #include #endif #if !defined(__MEMORYSTORAGE_HPP) #include #endif #if !defined(__MAP_HPP) #include #endif namespace corelinux { CORELINUX_MAP ( MemoryStoragePtr, CharCptr, std::less, MemoryMap ); DECLARE_CLASS( Memory ); /// Declare the memory manager as a singleton for Memory DECLARE_TYPE( Singleton, MemoryManager ); /** Memory is high speed transient storage managed by the operating system, for both itself and user processes, used to store data and programs. Upon allocation request, the operating system provides user processes with a memory storage region that is in addition to the current memory resources (stack, program, data) of the process. The memory can be made visible to all processes in the system, a select few, or just to the process that requested the storage. If made visible to other processes, memory provides a fast and efficient way to transfer information between the processes, and in this manner can be catagorized as high speed interprocess communication. It is up to the processes that share this memory area to agree on a synchronization protocol. The operating system allows a process to "mark" a memory region attribute as:

  • Read only
    Memory marked with this attribute restrict processes to read only operations performed on the memory storage region. Attempts to write anything to this area will result in a system exception.

  • Read/Write
    Marked as Read/Write, processes have the ability to store and retrieve from the memory storage region. This is the most common form of access.

  • Executable
    This marks a memory region in the memory storage region as executable. This provides a convenient way for user processes to load dynamic program blocks for execution. By definition, memory in a region marked executable is readable and writeable.
*/ class Memory : public Synchronized { public: // // Constructors and destructor // /// Default constructor Memory( void ) throw( Assertion ); /// Virtual Destructor virtual ~Memory( void ); // // Operator overloads // // // Accessors // // // Mutators // // // Factory Methods // /** Default create method, creates a private block of read write shared memory of size aByteSize, sharing attributes default to owner. @param Size number of bytes to allocate @param Int rights specificed @return MemoryStorage pointer */ static MemoryStoragePtr createStorage ( Size aByteSize, Int Rights = OWNER_ALL ) throw( StorageException ); /** Create method, creates or opens a specifically identified block of shared memory of size aByteSize, sharing attributes default to owner. @param MemoryIdentifier reference to identifier. @param Size number of bytes to allocate @param Int rights specificed @return MemoryStorage pointer */ static MemoryStoragePtr createStorage ( MemoryIdentifierCref aIdentifier, Size aByteSize, CreateDisposition disp = CREATE_OR_REUSE, Int Rights = OWNER_ALL, AddressingConstraint addressing = READ_WRITE ); /** Create method, creates or opens a specifically identified block of shared memory of size aByteSize, sharing attributes default to owner. @param string name of shared memory storage. @param Size number of bytes to allocate @param Int rights specificed @return MemoryStorage pointer */ static MemoryStoragePtr createStorage ( CharCptr aName, Size aByteSize, CreateDisposition disp = CREATE_OR_REUSE, Int Rights = OWNER_ALL , AddressingConstraint addressing = READ_WRITE ); /** Destroy a previously allocated storage block @param MemoryStorage pointer to storage object */ static void destroyStorage( MemoryStoragePtr ); protected: /// Copy constructor prohibited Memory( MemoryCref ) throw( Assertion ); /// Assignment operator prohibited MemoryRef operator=( MemoryCref ) throw( Assertion ); /// Equality always returns false bool operator==( MemoryCref ) const; protected: /// The singleton instance of Memory for synchronization static MemoryManager theMemoryManager; private: static MemoryMap theMemoryStorageMap; }; } #endif // if !defined(__MEMORY_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.5 $ $Date: 2000/08/31 22:52:20 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Allocator.hpp0000664000000000000000000000723307107245525015644 0ustar #if !defined(__ALLOCATOR_HPP) #define __ALLOCATOR_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__STRATEGY_HPP) #include #endif namespace corelinux { DECLARE_CLASS( Allocator ); /** Allocator is a Strategy class used by AbstractAllocator and AbstractFactory.Each Allocator instance tracks allocates and deallocates @see Strategy, AbstractAllocator, AbstractFactory */ class Allocator : public Strategy { public: // // Constructors and destructor // /// Default constructor Allocator( void ); /** Copy constructor @param Allocator const reference */ Allocator( AllocatorCref ); /// Virtual destructor virtual ~Allocator( void ); // // Operator overloads // /** Assingment operator overload @param Allocator const reference @return Allocator reference to self */ Allocator & operator=( AllocatorCref ); /** Equality operator overload @param Allocator const reference @return true if same identity */ bool operator==( AllocatorCref ) const; // // Accessors // /** Retrieves the number of allocations by this Allocator @return Count - number of allocates */ virtual CountCref getAllocateCount( void ) const; /** Retrieves the number of deallocations by this Allocator @return Count - number of deallocates */ virtual CountCref getDeallocateCount( void ) const; // // Mutators // /// Increment the allocates virtual void incrementAllocates( void ); /// Decrement the allocates virtual void decrementAllocates( void ); /// Increment the deallocates virtual void incrementDeallocates( void ); /// Decrement the deallocates virtual void decrementDeallocates( void ); protected: private: /// The number of allocations Count theAllocates; /// The number of deallocations Count theDeallocates; }; } #endif // if !defined(__ALLOCATOR_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/05/13 12:32:21 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/ThreadException.hpp0000664000000000000000000001043607100660141016775 0ustar #if !defined (__THREADEXCEPTION_HPP) #define __THREADEXCEPTION_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif namespace corelinux { DECLARE_CLASS( ThreadException ); /** ThreadException is the base exception type for Thread. All Thread exceptions derive from this. */ class ThreadException : public Exception { public: /** Default Constructor @param why describes why the exception was thrown @param file The source module throwing the exception @param line The line of source throwing the exception @param severity The Exception::Severity of the Exception @param outOfMemory An out of memory indicator */ ThreadException ( CharCptr why, CharCptr file, LineNum line, Severity severity = Exception::CONTINUABLE, bool outOfMemory = false ); /** Default Constructor @param file The source module throwing the exception @param line The line of source throwing the exception @param severity The Exception::Severity of the Exception @param outOfMemory An out of memory indicator */ ThreadException ( CharCptr file, LineNum line, Severity severity = Exception::CONTINUABLE, bool outOfMemory = false ); /** Copy constructor @param ThreadException const reference */ ThreadException( ThreadExceptionCref ); /// Virtual Destructor virtual ~ThreadException( void ); // // Operator overloads // /** Assignment operator overload @param ThreadException const reference @return ThreadException reference to self */ ThreadExceptionRef operator=( ThreadExceptionCref ); /** Equality operator overload @param ThreadException const reference @return true if equal, false otherwise */ bool operator==( ThreadExceptionCref ) const; // // Accessor methods // // // Mutator methods // protected: /** ThreadException must have at least a location.. Default constructor is not allowed. */ ThreadException( void ); }; } #endif // !defined __THREADEXCEPTION_HPP /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/MutexSemaphoreGroup.hpp0000664000000000000000000003012307116552500017673 0ustar #if !defined(__MUTEXSEMAPHOREGROUP_HPP) #define __MUTEXSEMAPHOREGROUP_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__SEMAPHOREGROUP_HPP) #include #endif namespace corelinux { DECLARE_CLASS( MutexSemaphoreGroup ); /** A MutexSemaphoreGroup is an extension to the SemaphoreGroup for creating only MutexSemaphore types. Default behavior for creating semaphores via the SemaphoreGroup interface is to NOT autolock the MutexSemaphore. Use the createLockedSemaphore(...) interface to accomplish this. */ class MutexSemaphoreGroup : public SemaphoreGroup { public: /** Default constructor creates a private group semaphores with access for OWNER_ALL @param Short Number of semaphores in group @param AccessRights Specifies access control for group @exception Assertion if aCount < 1 @exception SemaphoreException if kernel group create call fails. @see AccessRights */ MutexSemaphoreGroup( Short, Int Rights = OWNER_ALL ) throw(Assertion,SemaphoreException); /** Constructor to open or create a semaphore group with a specific identifier. @param Short Number of semaphores in group, this only has meaning used if failOnExist = true @param SemaphoreGroupIdentifier valid group identifier either through a system call or via another ipc mechanism @param AccessRights Specifies access control for group @param CreateDisposition indicates how to treat the conditions that the group may meet in the request:
CREATE_OR_REUSE indicates that the caller doesn't care
FAIL_IF_EXISTS indicates the attempt was for a create
FAIL_IF_NOTEXISTS indicates the attempt was for a open @exception Assertion if aCount < 1 @exception SemaphoreException for described states */ MutexSemaphoreGroup ( Short, SemaphoreGroupIdentifierCref, Int , CreateDisposition disp=FAIL_IF_EXISTS ) throw(Assertion,SemaphoreException); /** Constructor to open or create a semaphore group by name. @param Short Number of semaphores in group, this only has meaning used if failOnExist = true @param Char pointer to Group name @param AccessRights Specifies access control for group @param CreateDisposition indicates how to treat the conditions that the group may meet in the request: CREATE_OR_REUSE indicates that the caller doesn't care FAIL_IF_EXISTS indicates the attempt was for a create FAIL_IF_NOTEXISTS indicates the attempt was for a open @exception Assertion if aCount < 1 or aCount > system defined maximum for group @exception SemaphoreException for described states */ MutexSemaphoreGroup ( Short, CharCptr, Int , CreateDisposition disp=FAIL_IF_EXISTS ) throw(Assertion,SemaphoreException); /// Virtual destructor virtual ~MutexSemaphoreGroup( void ); // // Accessors // // // Factory methods // /** Create a default MutexSemaphore @return AbstractSemaphore aSem - pointer to created semaphore @exception SemaphoreException if no sems left in group */ virtual AbstractSemaphorePtr createSemaphore( void ) throw( SemaphoreException ) ; /** Create a locked MutexSemaphore @return AbstractSemaphore aSem - pointer to created semaphore @exception SemaphoreException if no sems left in group */ virtual AbstractSemaphorePtr createLockedSemaphore ( bool Recursive = false, bool Balking = false ) throw( SemaphoreException ) ; /** Create or open (use) a specific MutexSemphore @param SemaphoreIdentifier identifies which semphore id to create or attempt to use @param CreateDisposition indicates how to treat the conditions that the group may meet in the request: CREATE_OR_REUSE indicates that the caller doesn't care FAIL_IF_EXISTS indicates the attempt was for a create FAIL_IF_NOTEXISTS indicates the attempt was for a open @param Recursive to allow same thread multiple locks @param Balking to allow the semaphore to balk @return AbstractSemaphore aSem - pointer to created or opened semaphore @exception SemaphoreException if the disposition disagrees with the semaphore state, or if it is a erroneous identifier */ virtual AbstractSemaphorePtr createSemaphore ( SemaphoreIdentifierRef aIdentifier, CreateDisposition disp = CREATE_OR_REUSE, bool Recursive = false, bool Balking = false ) throw( SemaphoreException ) ; /** Create or open (use) a specific MutexSemphore and have it automatically locked. @param SemaphoreIdentifier identifies which semphore id to create or attempt to use @param CreateDisposition indicates how to treat the conditions that the group may meet in the request: CREATE_OR_REUSE indicates that the caller doesn't care FAIL_IF_EXISTS indicates the attempt was for a create FAIL_IF_NOTEXISTS indicates the attempt was for a open @param Recursive to allow same thread multiple locks @param Balking to allow the semaphore to balk @return AbstractSemaphore aSem - pointer to created or opened semaphore @exception SemaphoreException if the disposition disagrees with the semaphore state, or if it is a erroneous identifier */ virtual AbstractSemaphorePtr createLockedSemaphore ( SemaphoreIdentifierRef aIdentifier, CreateDisposition disp = CREATE_OR_REUSE, bool Recursive = false, bool Balking = false ) throw( SemaphoreException ) ; /** Create or open (use) a specific MutexSemphore @param string identifies which semphore id to create or attempt to use @param CreateDisposition indicates how to treat the conditions that the group may meet in the request: CREATE_OR_REUSE indicates that the caller doesn't care FAIL_IF_EXISTS indicates the attempt was for a create FAIL_IF_NOTEXISTS indicates the attempt was for a open @param Recursive to allow same thread multiple locks @param Balking to allow the semaphore to balk @return AbstractSemaphore aSem - pointer to created or opened semaphore @exception SemaphoreException if the disposition disagrees with the semaphore state, or if it is a erroneous identifier */ virtual AbstractSemaphorePtr createSemaphore ( std::string aName, CreateDisposition disp = CREATE_OR_REUSE, bool Recursive=false, bool Balking = false ) throw( SemaphoreException ) ; /** Destroys a created MutexSemaphore @note Reference counting is not enabled so applications should ensure that only one (1) destroy is called per semaphore. @param AbstractSemaphore pointer of semaphore to destroy @exception SemaphoreException if semaphore does not belong to this group or if already destroyed. */ virtual void destroySemaphore( AbstractSemaphorePtr ) throw( SemaphoreException ) ; protected: // // Constructors // /// Default constructor not allowed MutexSemaphoreGroup( void ) throw( Assertion ); /// Copy constructor not allowed MutexSemaphoreGroup( MutexSemaphoreGroupCref ) throw( Assertion ); // // Operator overloads // /// Assignment operator not allowed MutexSemaphoreGroupRef operator=( MutexSemaphoreGroupCref ) throw( Assertion ); /// Protected method for resolving mutex between CSA and local AbstractSemaphorePtr resolveSemaphore ( SemaphoreIdentifierRef aIdentifier, Short aSemId, CreateDisposition aDisp, bool aRecurse, bool aBalk, bool aAutoLock = false ) throw( SemaphoreException ) ; private: /// Temporary registration collection SemaphoreShares theUsedMap; }; } #endif // if !defined(__MUTEXSEMAPHOREGROUP_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.4 $ $Date: 2000/06/04 22:16:32 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Observer.hpp0000664000000000000000000000536207153560644015517 0ustar #if !defined(__OBSERVER_HPP) #define __OBSERVER_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__EVENT_HPP) #include #endif namespace corelinux { DECLARE_CLASS( Subject ); DECLARE_CLASS( Observer ); /** Observer observes Subjets and supports the event interface for recieving subject event notifications. */ class Observer { public: // // Constructors and destructor // /** Default constructor */ Observer( void ) ; /** Copy constructor @param Observer const referencee */ Observer( ObserverCref ); /// Virtual destructor virtual ~Observer( void ); // // Operator overloads // /// Assignment operator ObserverRef operator=( ObserverCref ); /// Equality operator bool operator==( ObserverCref ) const; /// In-Equality operator bool operator!=( ObserverCref ) const; // // Accessors // // // Mutators // /** Called by Subject::notifyObservers if this observer instance is registered for the event type. @param Event the type of event interested in @exception NullPointer exception if event is null */ virtual void event( Event * ) throw ( NullPointerException ); protected: private: }; } #endif // if !defined(__OBSERVER_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.2 $ $Date: 2000/08/31 22:52:20 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/TransientStorage.hpp0000664000000000000000000000361607100660141017205 0ustar #if !defined(__TRANSIENTSTORAGE_HPP) #define __TRANSIENTSTORAGE_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__STORAGE_HPP) #include #endif namespace corelinux { DECLARE_CLASS( TransientStorage ); /** TransientStorage type is an area of storage that will not be saved across system initializations */ class TransientStorage : public Storage { public: // // Constructors and destructor // TransientStorage( void ); TransientStorage( TransientStorageCref ); virtual ~TransientStorage( void ); // // Operator overloads // TransientStorageRef operator=( TransientStorageCref ); bool operator==( TransientStorageCref ) const; protected: private: }; } #endif // if !defined(__TRANSIENTSTORAGE_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/NullPointerException.hpp0000664000000000000000000001066707105011626020052 0ustar #if !defined (__NULLPOINTEREXCEPTION_HPP) #define __NULLPOINTEREXCEPTION_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined IN_COMMON_HPP #error NullPointerException.hpp is included by Common.hpp only. #endif namespace corelinux { DECLARE_CLASS( NullPointerException ); /** NullPointerException is the base exception type for NullPointer. All NullPointer exceptions derive from this. */ class NullPointerException : public Exception { public: /** Default Constructor @param why describes why the exception was thrown @param file The source module throwing the exception @param line The line of source throwing the exception @param severity The Exception::Severity of the Exception @param outOfMemory An out of memory indicator */ NullPointerException ( CharCptr why, CharCptr file, LineNum line, Severity severity = Exception::CONTINUABLE, bool outOfMemory = false ); /** Default Constructor @param file The source module throwing the exception @param line The line of source throwing the exception @param severity The Exception::Severity of the Exception @param outOfMemory An out of memory indicator */ NullPointerException ( CharCptr file, LineNum line, Severity severity = Exception::CONTINUABLE, bool outOfMemory = false ); /** Copy constructor @param NullPointerException const reference */ NullPointerException( NullPointerExceptionCref ); /// Virtual Destructor virtual ~NullPointerException( void ); // // Operator overloads // /** Assignment operator overload @param NullPointerException const reference @return NullPointerException reference to self */ NullPointerExceptionRef operator=( NullPointerExceptionCref ); /** Equality operator overload @param NullPointerException const reference @return true if equal, false otherwise */ bool operator==( NullPointerExceptionCref ) const; // // Accessor methods // // // Mutator methods // protected: /** NullPointerException must have at least a location.. Default constructor is not allowed. */ NullPointerException( void ); }; } #endif // !defined __NULLPOINTEREXCEPTION_HPP /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/05/06 12:44:06 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/State.hpp0000664000000000000000000000546507110412542014776 0ustar #if !defined (__STATE_HPP) #define __STATE_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif namespace corelinux { DECLARE_CLASS( Context ); DECLARE_CLASS( State ); /** Allow an object to alter its behavior when its internal state changes. The object will appear to change its class. State is best served as a flyweight and singleton. */ class State { public: /// Default Constructor State( void ); /// Virtual Destructor virtual ~State( void ); // // Operator overloads // /** Equality operator overload @param State const reference @return true if equal, false otherwise */ bool operator==( StateCref ) const; // // Mutators // /// Called by context virtual void handle( void ) = 0; protected: /** Copy Constructor @param State const reference @exception Assertion to help enforce singleton */ State( StateCref ) throw ( Assertion ); /** Assignment operator overload @param State const reference @return State reference to self @exception Assertion to help enforce singleton */ StateRef operator=( StateCref ) throw ( Assertion ); /// Sets context state change void setCurrentState( ContextPtr, StatePtr ) throw ( NullPointerException ); }; } #endif // if !defined(__STATE_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/05/17 03:43:30 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/List.hpp0000664000000000000000000000410707153560644014637 0ustar #if !defined(__LIST_HPP) #define __LIST_HPP /* CoreLinux++ Copyright (C) 1999 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #include namespace corelinux { /** STL list template. This macro generates all the type references and pointers for the collection and respective iterators for a list. @param name The name you want to give the collection @param type The type object the collection manages */ #define CORELINUX_LIST( type, name ) \ DECLARE_TYPE(std::list,name); \ typedef name::iterator name ## Iterator; \ typedef name::iterator& name ## IteratorRef; \ typedef name::iterator* name ## IteratorPtr; \ typedef name::const_iterator name ## ConstIterator; \ typedef name::const_iterator& name ## ConstIteratorRef; \ typedef name::const_iterator* name ## ConstIteratorPtr; \ typedef name::reverse_iterator name ## Riterator; \ typedef name::reverse_iterator& name ## RiteratorRef; \ typedef name::reverse_iterator* name ## RiteratorPtr } #endif /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.3 $ $Date: 2000/08/31 22:52:20 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/GuardSemaphore.hpp0000664000000000000000000000613607115717730016634 0ustar #if !defined(__GUARDSEMAPHORE_HPP) #define __GUARDSEMAPHORE_HPP #if !defined(__COMMON_HPP) #include #endif #if !defined(__SEMAPHORE_HPP) #include #endif namespace corelinux { DECLARE_CLASS( GuardSemaphore ); /** GuardSemaphore is a special case semaphore for use by the CoreLinuxGuardPool. It has the basic behavior of a MutexSemaphore without the recursion and balking capability. Its sole use is for Synchronized object monitor control. @see corelinux::CoreLinuxGuardPool @see corelinux::Semaphore */ class GuardSemaphore : public Semaphore { public: // // Constructors and destructors // /** Default constructor requires the identifier of the semaphore in the semaphore group @param SemaphoreGroup The owning SemaphoreGroup @param SemaphoreIdentifier The identifier from the Semaphore Group */ GuardSemaphore ( SemaphoreGroupPtr, SemaphoreIdentifierRef ) throw(Assertion); /// Virtual Destructor virtual ~GuardSemaphore( void ); // // Mutators // /// Request the lock, wait for availability virtual SemaphoreOperationStatus lockWithWait(void) throw(SemaphoreException); /// Request the lock without waiting virtual SemaphoreOperationStatus lockWithNoWait(void) throw(SemaphoreException); /// Ask if AbstractSemaphore instance is locked virtual bool isLocked(void) ; /// Request the AbstractSemaphore but timeout if not available // virtual SemaphoreOperationStatus lockWithTimeOut( Timer ) // throw(SemaphoreException) = 0; /// Release the lock virtual SemaphoreOperationStatus release(void) throw(SemaphoreException); protected: // // Constructors // /// Default constructor throws assertion GuardSemaphore( void ) throw(Assertion); /// Copy constructor throws assertion GuardSemaphore( GuardSemaphoreCref ) throw(Assertion); // // Operator overloads // /// Assignment operator throws assertion GuardSemaphoreRef operator=( GuardSemaphoreCref ) throw(Assertion); }; } #endif /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/06/02 11:51:52 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Storage.hpp0000664000000000000000000000334207100660141015311 0ustar #if !defined(__STORAGE_HPP) #define __STORAGE_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif namespace corelinux { DECLARE_CLASS( Storage ); /** Storage is the abstract type for anything that can be use to store and read (e.g. Memory, File, Pipe, Queue ). */ class Storage { public: // // Constructors and destructor // Storage( void ); Storage( StorageCref ); virtual ~Storage( void ); // // Operator overloads // StorageRef operator=( StorageCref ); bool operator==( StorageCref ) const; protected: private: }; } #endif // if !defined(__STORAGE_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/AssociativeIterator.hpp0000664000000000000000000000746407100660141017702 0ustar #if !defined(__ASSOCIATIVEITERATOR_HPP) #define __ASSOCIATIVEITERATOR_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__ITERATOR_HPP) #include #endif namespace corelinux { /** The AssociativeIterator that extends Iterator to include the interface for describing an associative collection type without exposing its underlying representation. The implementation requires a template arguments that describes the KeyType and ElementType being iterated over. */ template< class KeyType, class ElementType > class AssociativeIterator : public Iterator { public: // // Constructors and destructor // /// Default constructor AssociativeIterator( void ) : Iterator() { ; // do nothing } /** Copy constructor @param AssociativeIterator const reference */ AssociativeIterator( const AssociativeIterator &aRef ) : Iterator( aRef ) { ; // do nothing } /// Destructor virtual ~AssociativeIterator( void ) { ; // do nothing } // // Operator overloads // /** Assignment operator @param AssociativeIterator const reference @return AssociativeIterator reference */ AssociativeIterator & operator=( const AssociativeIterator & ) { return (*this); } /** Equality operator @param AssociativeIterator const reference @return bool - true if instances are equal */ bool operator==( const AssociativeIterator & aRef ) const { return (this == &aRef); } // // Accessors // /** getKey returns the KeyType instance that is currently pointed to by the AssociativeIterator @return KeyType @exception IteratorBoundsException if the AssociativeIterator is not positioned correctly. */ virtual KeyType getKey( void ) const throw(IteratorBoundsException) = 0; }; } #endif // if !defined(__ASSOCIATIVEITERATOR_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Set.hpp0000664000000000000000000001010107153560644014446 0ustar #if !defined(__SET_HPP) #define __SET_HPP /* CoreLinux++ Copyright (C) 1999 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif // STL includes #include namespace corelinux { /** STL set template. This macro generates all the type references and pointers for the collection and respective iterators for a set. @param name The name you want to give the collection @param key The object that represents the set key @param comp The comparator functor */ #define CORELINUX_SET(key,comp,name) \ typedef set name; \ typedef name * name ## Ptr; \ typedef const name * name ## Cptr; \ typedef name & name ## Ref; \ typedef const name & name ## Cref; \ typedef name::iterator name ## Iterator; \ typedef name::iterator& name ## IteratorRef; \ typedef name::iterator* name ## IteratorPtr; \ typedef name::const_iterator name ## ConstIterator; \ typedef name::const_iterator& name ## ConstIteratorRef; \ typedef name::const_iterator* name ## ConstIteratorPtr; \ typedef name::reverse_iterator name ## Riterator; \ typedef name::reverse_iterator& name ## RiteratorRef; \ typedef name::reverse_iterator* name ## RiteratorPtr /** STL multiset template. This macro generates all the type references and pointers for the collection and respective iterators for a multiset. @param name The name you want to give the collection @param key The object that represents the mutliset key @param comp The comparator functor */ #define CORELINUX_MULTISET(key,comp,name) \ typedef multiset name; \ typedef name * name ## Ptr; \ typedef const name * name ## Cptr; \ typedef name & name ## Ref; \ typedef const name & name ## Cref; \ typedef name::iterator name ## Iterator; \ typedef name::iterator& name ## IteratorRef; \ typedef name::iterator* name ## IteratorPtr; \ typedef name::const_iterator name ## ConstIterator; \ typedef name::const_iterator& name ## ConstIteratorRef; \ typedef name::const_iterator* name ## ConstIteratorPtr; \ typedef name::reverse_iterator name ## Riterator; \ typedef name::reverse_iterator& name ## RiteratorRef; \ typedef name::reverse_iterator* name ## RiteratorPtr } #endif /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.2 $ $Date: 2000/08/31 22:52:20 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Vector.hpp0000664000000000000000000000421107153560644015162 0ustar #if !defined(__VECTOR_HPP) #define __VECTOR_HPP /* CoreLinux++ Copyright (C) 1999 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif // STL includes #include namespace corelinux { /** STL vector template. This macro generates all the type references and pointers for the collection and respective iterators for a vector. @param name The name you want to give the collection @param type The type for the vector */ #define CORELINUX_VECTOR( type, name ) \ DECLARE_TYPE(std::vector,name); \ typedef name::iterator name ## Iterator; \ typedef name::iterator& name ## IteratorRef; \ typedef name::iterator* name ## IteratorPtr; \ typedef name::const_iterator name ## ConstIterator; \ typedef name::const_iterator& name ## ConstIteratorRef; \ typedef name::const_iterator* name ## ConstIteratorPtr; \ typedef name::reverse_iterator name ## Riterator; \ typedef name::reverse_iterator& name ## RiteratorRef; \ typedef name::reverse_iterator* name ## RiteratorPtr } #endif // if !defined(__VECTOR_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.3 $ $Date: 2000/08/31 22:52:20 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Proxy.hpp0000664000000000000000000001230107100660141015021 0ustar #if !defined(__PROXY_HPP) #define __PROXY_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif namespace corelinux { /** Provide a surrogate or placeholder for another object to control access to it. */ template< class SubjectImpl > class Proxy { public: // // Constructors and destructor // /// Default constructor Proxy( void ) : theSubject( NULLPTR ) { ; // do nothing } /** Constructor with SubjectImpl instance @param SubjectImpl pointer */ Proxy( SubjectImpl *aSubject ) throw(Assertion) : theSubject( aSubject ) { REQUIRE( aSubject != NULLPTR ); } /** Copy constructor @param Proxy const reference */ Proxy( const Proxy &aProxy ) : theSubject( aProxy.theSubject ) { ; // do nothing } /// Virtual destructor virtual ~Proxy( void ) { theSubject = NULLPTR; } // // Operator overloads // /** Assignment operator @param Proxy const reference @return Proxy reference */ Proxy & operator=( const Proxy &aProxy ) { if( (*this == aProxy) == false ) { theSubject = aProxy.getSubject(); } else { ; // do nothing } return ( *this ); } /** Equality operator @param Proxy const reference @return bool if same */ bool operator==( const Proxy &aProxy ) const { return ( this == &aProxy && theSubject == aProxy.getSubject() ); } /** Operator selector overload @return SubjectImpl pointer */ virtual SubjectImpl * operator->( void ) { return theSubject; } /** Operator dereference overload @return SubjectImpl reference @exception Assertion if theSubject is NULLPTR */ virtual SubjectImpl & operator*( void ) throw( Assertion ) { REQUIRE( theSubject != NULLPTR ); return ( *theSubject ); } // // Accessors // /** Returns a reference to theSubjec @return SubjectImpl const reference @exception Assertion if theSubject is NULLPTR */ virtual const SubjectImpl &getSubject( void ) const throw( Assertion ) { REQUIRE( theSubject != NULLPTR ); return ( *theSubject ); } protected: // // Mutators // virtual void setSubject( SubjectImpl *aSubject ) { theSubject = aSubject; } protected: /// The subject pointer SubjectImpl *theSubject; }; } #endif // if !defined(__PROXY_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Types.hpp0000664000000000000000000000720507113125546015024 0ustar #if !defined (__TYPES_HPP) #define __TYPES_HPP /* CoreLinux++ Copyright (C) 1999 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined IN_COMMON_HPP #error Types.hpp is included via Common.hpp only. #endif namespace corelinux { /** @name Types Type defintions in the hopes to avoid portability problems and provide consistent standard naming style. Under Construction!!! */ #if !defined( __UNICODE ) DECLARE_TYPE( char, Char ); // non-Unicode character. #else DECLARE_TYPE( wchar_t, Char ); // Unicode character #endif DECLARE_TYPE( wchar_t, Wchar ); // Wide character. // ******************************************* // Signed Integral Types // ******************************************* DECLARE_TYPE( short int, Short ); // 16 bits. DECLARE_TYPE( long int, Long ); // 32 bits. DECLARE_TYPE( int, Int ); // Compiler Depend DECLARE_TYPE( unsigned int, UnsignedInt ); // // ******************************************* // Unsigned Integral Types // ******************************************* DECLARE_TYPE( unsigned char, Byte ); // 8 Bits. DECLARE_TYPE( unsigned short, Word ); // 16 Bits. DECLARE_TYPE( unsigned long, Dword ); // 32 Bits. // ******************************************* // Floating Point. // ******************************************* DECLARE_TYPE( double, Real ); // ******************************************* // Define the void pointer type. // ******************************************* typedef void * VoidPtr; // ******************************************* // Define the NULLPTR // ******************************************* #define NULLPTR 0 // ******************************************* // Miscellaneous // ******************************************* DECLARE_TYPE( size_t, Size ); // The size of an object. DECLARE_TYPE( Dword, Index ); // Array or loop index. DECLARE_TYPE( Long, Counter ); // A signed counting type. DECLARE_TYPE( Word, ResID ); // Resource or message id. DECLARE_TYPE( Dword, Count ); // ******************************************* // Operating System Handles and ids. // ******************************************* DECLARE_TYPE( VoidPtr, Handle ); // ********************************************** // Define MessageID as a Dword for OS::STDMESSAGE // message identifiers. // ********************************************** DECLARE_TYPE( Dword, MessageID ); } #endif // !defined __TYPES_HPP /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/05/25 04:26:14 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Memento.hpp0000664000000000000000000000444507105162773015333 0ustar #if !defined(__MEMENTO_HPP) #define __MEMENTO_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif namespace corelinux { DECLARE_CLASS( Memento ); /** Memento knows its Mediator object, communicates with its mediator whenever it would have otherwise communicated with another Memento. */ class Memento { public: // // Constructors and destructor // /** Default constructor */ Memento( void ) ; /** Copy constructor @param Memento const referencee */ Memento( MementoCref ); /// Virtual destructor virtual ~Memento( void ); // // Operator overloads // /// Assignment operator MementoRef operator=( MementoCref ); /// Equality operator bool operator==( MementoCref ) const; /// In-Equality operator bool operator!=( MementoCref ) const; // // Accessors // // // Mutators // protected: private: }; } #endif // if !defined(__MEMENTO_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/05/07 03:41:47 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/CommandFrameException.hpp0000664000000000000000000001064107103721577020133 0ustar #if !defined (__COMMANDFRAMEEXCEPTION_HPP) #define __COMMANDFRAMEEXCEPTION_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif namespace corelinux { DECLARE_CLASS( CommandFrameException ); /** CommandFrameException is the base exception type for CommandFrame. All CommandFrame exceptions derive from this. */ class CommandFrameException : public Exception { public: /** Default Constructor @param why describes why the exception was thrown @param file The source module throwing the exception @param line The line of source throwing the exception @param severity The Exception::Severity of the Exception @param outOfMemory An out of memory indicator */ CommandFrameException ( CharCptr why, CharCptr file, LineNum line, Severity severity = Exception::CONTINUABLE, bool outOfMemory = false ); /** Default Constructor @param file The source module throwing the exception @param line The line of source throwing the exception @param severity The Exception::Severity of the Exception @param outOfMemory An out of memory indicator */ CommandFrameException ( CharCptr file, LineNum line, Severity severity = Exception::CONTINUABLE, bool outOfMemory = false ); /** Copy constructor @param CommandFrameException const reference */ CommandFrameException( CommandFrameExceptionCref ); /// Virtual Destructor virtual ~CommandFrameException( void ); // // Operator overloads // /** Assignment operator overload @param CommandFrameException const reference @return CommandFrameException reference to self */ CommandFrameExceptionRef operator=( CommandFrameExceptionCref ); /** Equality operator overload @param CommandFrameException const reference @return true if equal, false otherwise */ bool operator==( CommandFrameExceptionCref ) const; // // Accessor methods // // // Mutator methods // protected: /** CommandFrameException must have at least a location.. Default constructor is not allowed. */ CommandFrameException( void ); }; } #endif // !defined __COMMANDFRAMEEXCEPTION_HPP /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/05/03 03:56:47 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/AbstractCommand.hpp0000664000000000000000000000445607103721577016774 0ustar #if !defined(__ABSTRACTCOMMAND_HPP) #define __ABSTRACTCOMMAND_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif namespace corelinux { DECLARE_CLASS( AbstractCommand ); /** AbstractCommand captures the semantics of the capabilities of commands, which is basically to provide a execution context */ class AbstractCommand : public Synchronized { public: // // Constructors and destructor // /// Default Constructor AbstractCommand( void ); /// Copy constructor AbstractCommand( AbstractCommandCref ); /// Virtual Destructor virtual ~AbstractCommand( void ); // // Operator overloads // /// Assignment operator AbstractCommandRef operator=( AbstractCommandCref ); /// Equality operator bool operator==( AbstractCommandCref ) const; // // Abstract methods // /// Execute the command virtual void execute( void ) = 0; /// Execute the reverse command virtual void executeReverse( void ) = 0; protected: private: }; } #endif // if !defined(__ABSTRACTCOMMAND_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/05/03 03:56:47 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Iterator.hpp0000664000000000000000000001203107153560644015510 0ustar #if !defined(__ITERATOR_HPP) #define __ITERATOR_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #include namespace corelinux { DECLARE_CLASS( IteratorBoundsException ); DECLARE_CLASS( InvalidIteratorException ); /** The Iterator provides a way to access the elements of an collection type sequentially without exposing its underlying representation. The implementation requires a template argument that describes the ElementType being iterated over. */ template< class ElementType > class Iterator : public CoreLinuxObject { public: // // Constructors and destructor // /// Default constructor Iterator( void ) : CoreLinuxObject() { ; // do nothing } /** Copy constructor @param Iterator const reference */ Iterator( const Iterator &aRef ) : CoreLinuxObject( aRef ) { ; // do nothing } /// Destructor virtual ~Iterator( void ) { ; // do nothing } // // Operator overloads // /** Assignment operator @param Iterator const reference @return Iterator reference */ Iterator & operator=( const Iterator & ) { return (*this); } /** Equality operator @param Iterator const reference @return bool - true if instances are equal */ bool operator==( const Iterator & aRef ) const { return (this == &aRef); } // // Accessors // /** isValid abstract interface for implementation to determine if the current position points to a valid EntityType instance @return bool true if valid, false otherwise */ virtual bool isValid( void ) const = 0; /** getElement returns the ElementType instance that is currently pointed to by the Iterator @return ElementType @exception IteratorBoundsException if the Iterator is not positioned correctley. */ virtual ElementType getElement( void ) const throw(IteratorBoundsException) = 0; // // Mutators // /// Set iterator to first element virtual void setFirst( void ) = 0; /** Set iterator to next element @exception IteratorBoundsException if attempt to position past end of elements */ virtual void setNext( void ) throw(IteratorBoundsException) = 0; /** Set iterator to previous element @exception IteratorBoundsException if attempt to position before begining of elements */ virtual void setPrevious( void ) throw(IteratorBoundsException) = 0; /** Set iterator to last element @exception IteratorBoundsException if it is the iterator is over an empty collection */ virtual void setLast( void ) throw(IteratorBoundsException) = 0; }; } #endif // if !defined(__ITERATOR_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.2 $ $Date: 2000/08/31 22:52:20 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Stack.hpp0000664000000000000000000000302707153560644014771 0ustar #if !defined(__STACK_HPP) #define __STACK_HPP /* CoreLinux++ Copyright (C) 1999 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include // STL includes #include namespace corelinux { /** STL stack template. This macro generates all the type references and pointers for the collection and respective iterators for a stack. @param name The name you want to give the collection @param type The type to be stacked */ #define CORELINUX_STACK( type, name ) \ DECLARE_TYPE(stack,name) } #endif /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.2 $ $Date: 2000/08/31 22:52:20 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Identifier.hpp0000664000000000000000000001263307100660141015772 0ustar #if !defined (__IDENTIFIER_HPP) #define __IDENTIFIER_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined IN_COMMON_HPP #error Identifier.hpp is included by Common.hpp only. #endif namespace corelinux { DECLARE_CLASS( Identifier ); /** An Identifier is a abstract representation of identity. Derivations implement ConcreteIdentifiers (Strings, Widgets, UUID, whatever). The logical operators call virtual methods which derivations should define.as all the defaults return true. */ class Identifier : public CoreLinuxObject { public: /// Default Constructor Identifier( void ); /** Copy Constructor @param Identifier const reference */ Identifier( IdentifierCref ); /// Virtual Destructor virtual ~Identifier( void ); // // Operator overloads // /** Assignment operator overload @param Identifier const reference @return Identifier reference to self */ IdentifierRef operator=( IdentifierCref ); /** Equality operator overload calls isEqual virtual method. @param Identifier const reference @return true if equal, false otherwise */ bool operator==( IdentifierCref ) const; /** Non-equality operator overload returns !isEqual(aRef) @param Identifier const reference @return false if equal, true otherwise */ bool operator!=( IdentifierCref ) const; /** Less than operator overload. Calls isLessThan virtual method. @param Identifier const reference @return true if less than, false otherwise */ bool operator<( IdentifierCref ) const; /** Less than or equal operator overload. Calls isLessThanOrEqual virtual method. @param Identifier const reference @return true if less than or equal, false otherwise */ bool operator<=( IdentifierCref ) const; /** Greater than operator overload. Calls isGreaterThan virtual method. @param Identifier const reference @return true if greater than, false otherwise */ bool operator>( IdentifierCref ) const; /** Greater than or equal operator overload. Calls isGreaterThanOrEqual virtual method. @param Identifier const reference @return true if greater than or equal, false otherwise */ bool operator>=( IdentifierCref ) const; protected: /** Equality method @param Identifier const reference @return true if equal, false otherwise */ virtual bool isEqual( IdentifierCref ) const ; /** Less than method @param Identifier const reference @return true if less than, false otherwise */ virtual bool isLessThan( IdentifierCref ) const ; /** Less than or equal method. @param Identifier const reference @return true if less than or equal, false otherwise */ virtual bool isLessThanOrEqual( IdentifierCref ) const ; /** Greater than method. @param Identifier const reference @return true if greater than, false otherwise */ virtual bool isGreaterThan( IdentifierCref ) const ; /** Greater than or equal method. @param Identifier const reference @return true if greater than or equal, false otherwise */ virtual bool isGreaterThanOrEqual( IdentifierCref ) const ; }; } #endif // if !defined(__IDENTIFIER_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/AllocatorNotFoundException.hpp0000664000000000000000000001015107100660141021155 0ustar #if !defined (__ALLOCATORNOTFOUNDEXCEPTION_HPP) #define __ALLOCATORNOTFOUNDEXCEPTION_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__ABSTRACTFACTORYEXCEPTION_HPP) #include #endif namespace corelinux { DECLARE_CLASS( AllocatorNotFoundException ); /** AllocatorNotFoundException is an exception that is usually thrown when a AbstractFactory attempts to use a specific Allocator. */ class AllocatorNotFoundException : public AbstractFactoryException { public: /** Default Constructor @param file The source module throwing the exception @param line The line of source throwing the exception @param severity The Exception::Severity of the Exception @param outOfMemory An out of memory indicator */ AllocatorNotFoundException ( CharCptr file, LineNum line, Severity severity = Exception::CONTINUABLE, bool outOfMemory = false ); /** Copy constructor @param AllocatorNotFoundException const reference */ AllocatorNotFoundException ( AllocatorNotFoundExceptionCref ); /// Virtual Destructor virtual ~AllocatorNotFoundException( void ); // // Operator overloads // /** Assignment operator overload @param AllocatorNotFoundException const reference @return AllocatorNotFoundException reference to self */ AllocatorNotFoundExceptionRef operator= ( AllocatorNotFoundExceptionCref ); /** Equality operator overload @param AllocatorNotFoundException const reference @return true if equal, false otherwise */ bool operator== ( AllocatorNotFoundExceptionCref ) const; // // Accessor methods // // // Mutator methods // protected: /** AllocatorNotFoundException must have at least a location.. Default constructor is not allowed. */ AllocatorNotFoundException( void ); }; } #endif // !defined __ALLOCATORNOTFOUNDEXCEPTION_HPP /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/IteratorException.hpp0000664000000000000000000001060307100660141017353 0ustar #if !defined (__ITERATOREXCEPTION_HPP) #define __ITERATOREXCEPTION_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif namespace corelinux { DECLARE_CLASS( IteratorException ); /** IteratorException is the base exception type for Iterator. All Iterator exceptions derive from this. */ class IteratorException : public Exception { public: /** Default Constructor @param file The source module throwing the exception @param line The line of source throwing the exception @param severity The Exception::Severity of the Exception @param outOfMemory An out of memory indicator */ IteratorException ( CharCptr file, LineNum line, Severity severity = Exception::CONTINUABLE, bool outOfMemory = false ); /** Copy constructor @param IteratorException const reference */ IteratorException( IteratorExceptionCref ); /// Virtual Destructor virtual ~IteratorException( void ); // // Operator overloads // /** Assignment operator overload @param IteratorException const reference @return IteratorException reference to self */ IteratorExceptionRef operator=( IteratorExceptionCref ); /** Equality operator overload @param IteratorException const reference @return true if equal, false otherwise */ bool operator==( IteratorExceptionCref ) const; // // Accessor methods // // // Mutator methods // protected: /** Default Constructor @param why describes why the exception was thrown @param file The source module throwing the exception @param line The line of source throwing the exception @param severity The Exception::Severity of the Exception @param outOfMemory An out of memory indicator */ IteratorException ( CharCptr why, CharCptr file, LineNum line, Severity severity = Exception::CONTINUABLE, bool outOfMemory = false ); /** IteratorException must have at least a location.. Default constructor is not allowed. */ IteratorException( void ); private: private: }; } #endif // !defined __ITERATOREXCEPTION_HPP /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/AbstractSemaphore.hpp0000664000000000000000000001616607156357275017352 0ustar #if !defined(__ABSTRACTSEMAPHORE_HPP) #define __ABSTRACTSEMAPHORE_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__SEMAPHOREEXCEPTION_HPP) #include #endif namespace corelinux { /** Semaphore method return enumeration */ enum SemaphoreOperationStatus { /// Kernel error, errno set KERNELERROR=-1, /// Call success SUCCESS=0, /// Semaphore balked request BALKED, /// Semaphore request timed out TIMEDOUT, /// Semaphore unavailable for request UNAVAILABLE }; DECLARE_CLASS( SemaphoreGroup ); DECLARE_CLASS( AbstractSemaphore ); /** A AbstractSemaphore supports the protocol that processes and/or threads agree to follow for the purpose of controlled access to a resource. The resource can be anything that the developer considers to need access controls on such as memory, hardware, methods, computer instructions, and so on. Callers can elect to avoid being put into a blocked state and return immediately without control to the resource. Callers may also request that they are put into a blocked state for a specified amount of time. If, at the end of the specified time, the request has not been satisfied, it is returned with a Timeout indicator. The owner or creator of the AbstractSemaphore can elect to enforce balking behavior on a AbstractSemaphore. When so designated, the AbstractSemaphore can turn back any request until some condition in their solution space is met regardless of the callers blocking options. If a caller access attempt is balked, is it returned with a Balked indicator. */ class AbstractSemaphore : public Synchronized { public: // // Constructors and destructors // /** Default constructor */ AbstractSemaphore ( SemaphoreGroupPtr, SemaphoreIdentifierRef ) throw ( NullPointerException ); /// Virtual Destructor virtual ~AbstractSemaphore( void ); // // Operator overloads // /// Equality operator returns true if identifiers match bool operator==( AbstractSemaphoreCref aRef ) const; // // Accessors // /// Returns true if balking enabled virtual bool isBalkingEnabled( void ) const = 0; /// Returns true if recursion allowed virtual bool isRecursionEnabled( void ) const = 0; /// Return a reference to this AbstractSemaphore identifier SemaphoreIdentifierCref getIdentifier( void ) const ; /// Returns a reference to the SemaphoreGroup identifier SemaphoreGroupIdentifierCref getGroupIdentifier( void ) const; /// Returns the identifier of who currently owns the semaphore virtual ThreadIdentifierCref getOwningThreadIdentifier( void ) const = 0; /// Return the depth of the recursion for the owner virtual CounterCref getRecursionQueueLength( void ) const = 0; /// Returns the current value of the semaphore Int getValue( void ); /// Retrieves the initial value for a semaphore Int getInitialValue( void ); /// Ask if AbstractSemaphore instance is locked virtual bool isLocked( void ) = 0; // // Mutators // /// Request the lock, wait for availability virtual SemaphoreOperationStatus lockWithWait( void ) throw(SemaphoreException) = 0; /// Request the lock without waiting virtual SemaphoreOperationStatus lockWithNoWait( void ) throw(SemaphoreException) = 0; /// Request the AbstractSemaphore but timeout if not available // virtual SemaphoreOperationStatus lockWithTimeOut( Timer ) // throw(SemaphoreException) = 0; /// Release the lock virtual SemaphoreOperationStatus release( void ) throw(SemaphoreException) = 0; protected: // // Constructors // AbstractSemaphore( AbstractSemaphoreCref ) throw(Assertion); // // Operator overloads // AbstractSemaphoreRef operator=( AbstractSemaphoreCref ) throw(Assertion); // // Accessors // /// Returns a reference to the AbstractSemaphore identifier inline SemaphoreIdentifierRef getId( void ) { return theSemIdentifier; } /// Returns a reference to the group identifier inline Int getGroupId( void ) const { return theGroupIdentifier; } /// Returns a reference to the owning thread virtual ThreadIdentifierRef getOwnerId( void ) = 0; // // Mutators // /// Calls kernel lock mechanism SemaphoreOperationStatus setLock( Int ); /// Calls kernel unlock mechanism SemaphoreOperationStatus setUnlock( Int ); /// Calls kernel zero mechanism SemaphoreOperationStatus waitZero( Int ); /// Sets the value for the AbstractSemaphore SemaphoreOperationStatus setValue( Int ); private: /// The group of instance origination SemaphoreGroupPtr theGroup; /// The group instance identifier Int theGroupIdentifier; /// The thread identifier SemaphoreIdentifier theSemIdentifier; }; } #endif // if !defined(__ABSTRACTSEMAPHORE_HPP) /* Common rcs information do not modify $Author: dulimart $ $Revision: 1.5 $ $Date: 2000/09/09 06:54:53 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/CoreLinuxGuardGroup.hpp0000664000000000000000000001511307115717730017631 0ustar #if !defined(__CORELINUXGUARDGROUP_HPP) #define __CORELINUXGUARDGROUP_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__SEMAPHOREGROUP_HPP) #include #endif namespace corelinux { DECLARE_CLASS( CoreLinuxGuardGroup ); /** A CoreLinuxGuardGroup is an extension to the SemaphoreGroup for creating semaphores for the CoreLinuxGuardPool. */ class CoreLinuxGuardGroup : public SemaphoreGroup { public: /** Default constructor creates a private group semaphores with access for OWNER_ALL @param Short Number of semaphores in group @exception Assertion if aCount < 1 @exception SemaphoreException if kernel group create call fails. @see AccessRights */ CoreLinuxGuardGroup( Short ) throw(Assertion,SemaphoreException); /// Virtual destructor virtual ~CoreLinuxGuardGroup( void ); // // Accessors // // // Factory methods // /** Create a default GuardSemaphore @return AbstractSemaphore aSem - pointer to created semaphore @exception SemaphoreException if no sems left in group */ virtual AbstractSemaphorePtr createSemaphore( void ) throw( SemaphoreException ) ; /** Create or open (use) a specific GuardSemaphore @param SemaphoreIdentifier identifies which semphore id to create or attempt to use @param CreateDisposition indicates how to treat the conditions that the group may meet in the request: CREATE_OR_REUSE indicates that the caller doesn't care FAIL_IF_EXISTS indicates the attempt was for a create FAIL_IF_NOTEXISTS indicates the attempt was for a open @param Recursive to allow same thread multiple locks @param Balking to allow the semaphore to balk @return AbstractSemaphore aSem - pointer to created or opened semaphore @exception SemaphoreException if the disposition disagrees with the semaphore state, or if it is a erroneous identifier */ virtual AbstractSemaphorePtr createSemaphore ( SemaphoreIdentifierRef aIdentifier, CreateDisposition disp = CREATE_OR_REUSE, bool Recursive = false, bool Balking = false ) throw( SemaphoreException ) ; /** Create or open (use) a specific GuardSemaphore @param string identifies which semphore id to create or attempt to use @param CreateDisposition indicates how to treat the conditions that the group may meet in the request: CREATE_OR_REUSE indicates that the caller doesn't care FAIL_IF_EXISTS indicates the attempt was for a create FAIL_IF_NOTEXISTS indicates the attempt was for a open @param Recursive to allow same thread multiple locks @param Balking to allow the semaphore to balk @return AbstractSemaphore aSem - pointer to created or opened semaphore @exception SemaphoreException if the disposition disagrees with the semaphore state, or if it is a erroneous identifier */ virtual AbstractSemaphorePtr createSemaphore ( std::string aName, CreateDisposition disp = CREATE_OR_REUSE, bool Recursive=false, bool Balking = false ) throw( SemaphoreException ) ; /** Destroys a created GuardSemaphore @note Reference counting is not enabled so applications should ensure that only one (1) destroy is called per semaphore. @param AbstractSemaphore pointer of semaphore to destroy @exception SemaphoreException if semaphore does not belong to this group or if already destroyed. */ virtual void destroySemaphore( AbstractSemaphorePtr ) throw( SemaphoreException ) ; protected: // // Constructors // /// Default constructor not allowed CoreLinuxGuardGroup( void ) throw( Assertion ); /// Copy constructor not allowed CoreLinuxGuardGroup( CoreLinuxGuardGroupCref ) throw( Assertion ); // // Operator overloads // /// Assignment operator not allowed CoreLinuxGuardGroupRef operator=( CoreLinuxGuardGroupCref ) throw( Assertion ); // // Directed Factory methods // private: /// Temporary registration collection AbstractSemaphorePtr *theUsedMap; }; } #endif // if !defined(__CORELINUXGUARDGROUP_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/06/02 11:51:52 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/AbstractFactoryException.hpp0000664000000000000000000001133407100660141020657 0ustar #if !defined (__ABSTRACTFACTORYEXCEPTION_HPP) #define __ABSTRACTFACTORYEXCEPTION_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif namespace corelinux { DECLARE_CLASS( AbstractFactoryException ); /** AbstractFactoryException is the base exception type for AbstractFactory. */ class AbstractFactoryException : public Exception { public: /** Default Constructor @param file The source module throwing the exception @param line The line of source throwing the exception @param severity The Exception::Severity of the Exception @param outOfMemory An out of memory indicator */ AbstractFactoryException ( CharCptr file, LineNum line, Severity severity = Exception::CONTINUABLE, bool outOfMemory = false ); /** Copy constructor @param AbstractFactoryException const reference */ AbstractFactoryException ( AbstractFactoryExceptionCref ); /// Virtual Destructor virtual ~AbstractFactoryException( void ); // // Operator overloads // /** Assignment operator overload @param AbstractFactoryException const reference @return AbstractFactoryException reference to self */ AbstractFactoryExceptionRef operator= ( AbstractFactoryExceptionCref ); /** Equality operator overload @param AbstractFactoryException const reference @return true if equal, false otherwise */ bool operator== ( AbstractFactoryExceptionCref ) const; // // Accessor methods // // // Mutator methods // protected: /** Default Constructor @param why describes why the exception was thrown @param file The source module throwing the exception @param line The line of source throwing the exception @param severity The Exception::Severity of the Exception @param outOfMemory An out of memory indicator */ AbstractFactoryException ( CharCptr why, CharCptr file, LineNum line, Severity severity = Exception::CONTINUABLE, bool outOfMemory = false ); /** AbstractFactoryException must have at least a location.. Default constructor is not allowed. */ AbstractFactoryException( void ); private: private: }; } #endif // !defined __ABSTRACTFACTORYEXCEPTION_HPP /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Event.hpp0000664000000000000000000001374107105162773015007 0ustar #if !defined(__EVENT_HPP) #define __EVENT_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif namespace corelinux { /** Event provides a type basis for event ontologies */ template < class IdentifierType = Identifier > class Event { public: // // Constructors and destructor // /// Default constructor protected Event( void ) : theIdentifier( NULLPTR ) { ; // do nothing } /// Initializing constructor Event( const IdentifierType & aId ) : theIdentifier( new IdentifierType(aId) ) { ; // do nothing } /// Copy constructor Event( const Event & aEvent ) : theIdentifier( NULLPTR ) { if( aEvent.theIdentifier != NULLPTR ) { theIdentifier = new IdentifierType ( *(aEvent.theIdentifier) ); } } /// Virtual destructor virtual ~Event( void ) { if( theIdentifier != NULLPTR ) { delete theIdentifier; theIdentifier = NULLPTR; } else { ; // do nothing } } // // Operator overloads // /// Assignment operator Event & operator=( const Event & aEvent ) { if( *this == aEvent ) { ; // do nothing } else { if( theIdentifier != NULLPTR ) { delete theIdentifier; theIdentifier = NULLPTR; } else { ; // do nothing } if( aEvent.theIdentifier != NULLPTR ) { theIdentifier = new IdentifierType ( *(aEvent.theIdentifier) ); } else { ; // do nothing } } return (*this); } /// Equality operator bool operator==( const Event & aEvent ) const { bool isSame( false ); if( theIdentifier != NULLPTR && aEvent.theIdentifier != NULLPTR ) { isSame = (*theIdentifier == *(aEvent.theIdentifier) ); } else { isSame = ( this == &aEvent ); } return isSame; } /// Coercion operator for identity operator const IdentifierType &( void ) const throw ( NullPointerException ) { if( theIdentifier == NULLPTR ) { throw NullPointerException(LOCATION); } else { ; // do nothing } return ( *theIdentifier ); } /// Coercion operator for identity operator IdentifierType *( void ) const throw (NullPointerException) { if( theIdentifier == NULLPTR ) { throw NullPointerException(LOCATION); } else { ; // do nothing } return theIdentifier; } protected: private: IdentifierType *theIdentifier; }; } #endif // if !defined(__EVENT_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/05/07 03:41:47 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/String.hpp0000664000000000000000000000350407100660141015153 0ustar #if !defined(__STRING_HPP) #define __STRING_HPP /* CoreLinux++ Copyright (C) 1999 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ // // This is a temporary until String gets analyzed and designed with // the ability to factory create a string with certain properties // (UTF-8 vs. UCS-2 vs UCS-4, etc) // #include #if !defined(__COMMON_HPP) #include #endif namespace corelinux { DEFINE_CLASS(String); class String : public AbstractString, public std::string { public: String( void ) : std::string() { } String( CharCptr aPtr ) : std::string((const Char *)aPtr) { } virtual ~String( void ) { ; // do nothing } protected: private: }; } #endif // #if !defined(__STRING_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/ThreadContext.hpp0000664000000000000000000004367407100660141016475 0ustar #if !defined(__THREADCONTEXT_HPP) #define __THREADCONTEXT_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__THREADEXCEPTION_HPP) #include #endif namespace corelinux { /// Thread state enumeration enum ThreadState { /// The thread is waiting to be started THREAD_WAITING_TO_START = 0, /// The thread is in the process of starting THREAD_STARTING, /// The thread is running THREAD_RUNNING, /// Thread completed without exception THREAD_NORMAL_EXIT, /// Thread never started with exception THREAD_START_EXCEPTION, /// Thread has died with exception THREAD_EXCEPTION, /// Thread never started THREAD_START_FAILED }; DECLARE_CLASS( ThreadContext ); /** Callers function entry point @param ThreadContext object instance pointer @return int return code */ typedef int (*CallerFunctionPtr)(ThreadContextPtr); /** Thread frame entry point function handler @param ThreadContext pointer to managed ThreadContext @return Int return code from caller thread */ typedef Int (*ThreadFrameFunctionPtr)( ThreadContextPtr ); /** Managed ThreadContext creation function. This is declared so that callers may change the allocation routine (to map somewhere or instantiate a derived ThreadContext for example ). The default handler uses the global new operator. @param ThreadContext reference to the callers inital ThreadContext @return ThreadContext pointer to managed ThreadContext */ typedef ThreadContextPtr (*ThreadContextCreatePtr)( ThreadContextRef ); /** Managed ThreadContext deallocate function. This is declared so that callers may change the deallocation of the managed ThreadContext. You would normally do this if you have substituted the ThreadContextCreatePtr as well. @param ThreadContext pointer to managed ThreadContext. @return nothing */ typedef void (*ThreadContextDestroyPtr)( ThreadContextPtr ); /** Managed ThreadContext stack creation function. This is declared so that callers may change the allocation for the threads stack. The default handler uses the global new operator. @param ThreadContext pointer to managed ThreadContext @return Byte pointer to bottom of stack. */ typedef BytePtr (*ThreadStackCreatePtr)( ThreadContextPtr ); /** Managed ThreadContext stack deallocate function. This is declared so that callers may change the deallocation of the threads stack. You would normally do this if you have substituted the ThreadStackCreatePtr as well. @param Byte pointer as contained by ThreadContext. @return nothing */ typedef void (*ThreadStackDestroyPtr)( BytePtr ); /** ThreadContext describes the context in which the thread operates. Included are stack resource, shared address space flags, factory methods, and state indicators. */ class ThreadContext : public Synchronized { public: // // Constructors and destructor // /** Default constructor only requires a caller entry point function. Defaults in effect are 8k stack which is allocated by the system, and all resources of the caller are shared by the new thread. @param CallerFunction pointer to the callers thread routine. @exception Assertion if pointer is null */ ThreadContext( CallerFunctionPtr ) throw ( Assertion ); /** Constructor which allows the caller to define the stack. All resources of the caller are shared by the new thread. @param CallerFunction pointer to the callers thread routine. @param Size Request size for stack in number of bytes. @exception Assertion if routine pointer is null or callers stack size is negative. */ ThreadContext( CallerFunctionPtr, Size ) throw ( Assertion ); /** Copy constructor takes information from the context argument. @param ThreadContext reference to existing context @exception ThreadNotWaitingException if the argument context is not in a THREAD_WAITING_TO_START state. */ ThreadContext( ThreadContextCref ) // throw ( ThreadNotWaitingException, Assertion ); throw ( Assertion ); /// Virtual destructor virtual ~ThreadContext( void ); // // Operator overloads // /** Assignment operator changes the context @param ThreadContext reference to existing context @return ThreadContext reference @exception ThreadNotWaitingException if the argument context is not in a THREAD_WAITING_TO_START state. */ ThreadContextRef operator=( ThreadContextCref ) throw( Assertion ); /** Equality operator compares contexts @param ThreadContext reference to existing context @return bool true if same */ bool operator==( ThreadContextCref ) const; /** Equality matches the thread identifiers @param ThreadIdentifier reference to identifier @return bool true if same */ bool operator==( ThreadIdentifierCref ) const; /** Equality operator matches the callers function @param CallerFunctionPtr a function reference @return bool true if same. */ bool operator==( CallerFunctionPtr ) const; /** Coerces ThreadContext to ThreadIdentifier @return ThreadIdentifier reference */ operator ThreadIdentifierCref( void ) const; // // Accessors // /** Get the state of the thread as reflected in its context @return ThreadState */ const ThreadState & getState( void ) const; /** Get the size of the stack as defined by the context constructor @return Size in bytes */ Size getStackSize( void ) const; /** Get the share mask for the thread which determines VM, FILES, FILESYSTEM, SIGNAL shares. @return Int */ Int getShareMask( void ) const; /** Return the code returned by the callers function. This is only valid if the thread ended normally @return Int return code @see ThreadState */ Int getReturnCode( void ) const; /** Get the identifier for the thread. This is only valid once a thread is started @return ThreadIdentifier the id */ ThreadIdentifierCref getIdentifier( void ) const; /** Get the thread frame function pointer @return ThreadFrameFunctionPtr pointer to instance or default thread frame */ virtual ThreadFrameFunctionPtr getFramePointer( void ); /// Get the stack pointer BytePtr getStack( void ); /// Get the top of stack pointer BytePtr *getStackTop( void ); // // Mutators // /** Change the sharing mask for the thread. This is only effective when set prior to starting the thread. @param Int mask of values for thread resource sharing and signal disposition */ void setShareMask( Int ); /** Allows the caller to substitute the thread frame entry point. @param ThreadFrameFunctionPtr points to the new frame function that is called when starting a thread. If this argument is NULLPTR the default handler is set. */ void setFrameFunction( ThreadFrameFunctionPtr ); /** Allows the caller to substitute the routines which create and destroy the managed ThreadContext object. The call to create the object comes in at the startThread prior to stack allocation, the call to destroy the object comes from startThread exception and error handling, or when requested by the caller. @param ThreadContextCreatePtr the function pointer to set, If this argument is NULLPTR the default handlers are set for create and destroy. @param ThreadContextDestroyPtr to the function pointer to set. If this argument is NULLPTR the default handlers are set for create and destroy. */ void setContextFunctions ( ThreadContextCreatePtr , ThreadContextDestroyPtr ); /** Allows the caller to substitute the routines which create and destroy the managed ThreadContext stack object. The call to create the stack object comes in at the startThread prior to threading, the call to destroy the object comes from startThread exception and error handling, or when the destruction of the ThreadContext is imanent. @param ThreadStackCreatePtr pointer to set. If this argument is NULLPTR the default handlers are set for create and destroy. @param ThreadStackDestroyPtr the function pointer to set. If this argument is NULLPTR the default handlers are set for create and destroy. */ void setStackFunctions ( ThreadStackCreatePtr , ThreadStackDestroyPtr ); /** Set the return code for the thread @param Int return code value */ void setReturnCode( Int ); /** Set the state for the thread @param ThreadState the threads new state */ void setThreadState( ThreadState ); /** The definitive thread frame entry point. This is the address that "clone" gets. @param ThreadContext pointer to a thread context @return Int return code */ static Int cloneFrameFunction( ThreadContextPtr ); // // Factory invocations // /** Create a instance of ourself, we also invoke the create stack method so the instance is ready to be used to run a thread. @return ThreadContext pointer to object. @exception ThreadAllocationException either for Stack or Context */ ThreadContextPtr createContext( void ) throw ( ThreadException ); /** Destroys the context instance. A check is made to insure it is not a suicide. @param ThreadContext pointer to context to destroy @exception Assertion if self referenced */ void destroyContext( ThreadContextPtr ) throw ( Assertion ); protected: // // Constructors // /// Default constructor throws NEVER_GET_HERE ThreadContext( void ) throw ( Assertion ); // // Operator overloads // /** Assignment operator for designating thread identity @param ThreadIdentifier as retrieved from the OS @return ThreadContext reference to self */ ThreadContextRef operator=( ThreadIdentifier ); // // Accessors // /** Return the function pointer of the callers thread routine. @return CallerFunctionPtr */ CallerFunctionPtr getCallerFunction( void ); private: // // Mutators // /** The default thread frame entry point. This is the address that the immutableFrameFunction gets and calls either the defaultFrameFunction or user specified entry point. @param ThreadContext pointer to a thread context @return Int return code */ static Int defaultFrameFunction( ThreadContextPtr ); // // Factory methods // /** The default allocation routine for the managers ThreadContext. The copy constructor is called with the argument reference @param ThreadContext reference to the context supplied in the startThread method. @return The newly allocated managed context */ static ThreadContextPtr defaultContextCreate( ThreadContextRef ); /** The default destroyer of managed ThreadContexts. @param ThreadContext pointer to managed object. */ static void defaultContextDestroy( ThreadContextPtr ); /** The default allocation routine for the threads stack. @param ThreadContext pointer to the managed context. @return Byte pointer to bottom of stack. */ static BytePtr defaultStackCreate( ThreadContextPtr ); /** The default destroyer of managed ThreadContext stacks. @param ThreadContext pointer to managed object */ static void defaultStackDestroy( BytePtr ); private: /// The default thread frame entry point static ThreadFrameFunctionPtr theDefaultFrameFunction; /// The default context create factory method static ThreadContextCreatePtr theDefaultContextCreator; /// The default context destroy factory method static ThreadContextDestroyPtr theDefaultContextDestroyer; /// The default stack create factory method static ThreadStackCreatePtr theDefaultStackCreator; /// The default stack destroy factory method static ThreadStackDestroyPtr theDefaultStackDestroyer; /// The assigned thread frame entry point ThreadFrameFunctionPtr theFrameFunction; /// The assigned context create factory method ThreadContextCreatePtr theContextCreator; /// The assigned context destroy factory method ThreadContextDestroyPtr theContextDestroyer; /// The assigned stack create factory method ThreadStackCreatePtr theStackCreator; /// The assigned stack destroy factory method ThreadStackDestroyPtr theStackDestroyer; /// Non-adjust stack pointer BytePtr theStack; /// Stack size in bytes Size theStackSize; /// Shared resource flags Int theShareMask; /// Unique thread identifier ThreadIdentifier theThreadIdentifier; /// Caller thread entry point CallerFunctionPtr theCallersFunction; /// State of thread ThreadState theThreadState; /// Return code from theCallersFunction Int theReturnCode; }; } #endif // if !defined(__THREADCONTEXT_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/AbstractAllocator.hpp0000664000000000000000000002031407243002375017316 0ustar #if !defined(__ABSTRACTALLOCATOR_HPP) #define __ABSTRACTALLOCATOR_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__ALLOCATOR_HPP) #include #endif namespace corelinux { /** AbstractAllocator is a abstract template which provides for the extension of memory managment on a TypeImpl object by TypeImpl object basis. The derivation needs to implement the allocateObject and deallocateObject mutators for memory management. @see Allocator, AbstractFactory */ template< class TypeImpl > class AbstractAllocator : public Allocator { public: // // Constructors and destructor // /// Default constructor AbstractAllocator( void ) : Allocator( ) { ; // do nothing } /** Copy constructor @param AbstractAllocator const reference */ AbstractAllocator ( const AbstractAllocator & aRef ) : Allocator( aRef ) { ; // do nothing } /// Virtual destructor virtual ~AbstractAllocator( void ) { ; // do nothing } // // Operator overloads // /** Assingment operator overload @param AbstractAllocator const reference @return AbstractAllocator reference to self */ AbstractAllocator & operator= ( const AbstractAllocator & aRef ) { Allocator::operator=(aRef); return (*this); } /** Equality operator overload @param AbstractAllocator const reference @return true if same identity */ bool operator==( const AbstractAllocator & aRef ) const { return Allocator::operator==(aRef); } // // Factory methods // /** Create type will invoke the allocateObject method of the derivation and will increment the number of allocations. In the event of any exception, the allocation count will be adjusted. @return TypeImpl pointer @exception any */ TypeImpl *createType( void ) { TypeImpl *aPtr( NULLPTR ); try { aPtr = allocateObject(); incrementAllocates(); } catch( ... ) { decrementAllocates(); throw; } return aPtr; } /** Destroy type will invoke the deallocateObject method of the derivation and will increment the number of deallocation. In the event of any exception, the deallocation count will be adjusted @param TypeImpl pointer @exception any */ void destroyType( TypeImpl *aPtr ) { try { deallocateObject( aPtr ); incrementDeallocates(); } catch( ... ) { decrementDeallocates(); throw; } } protected: // // Factory virtual declarations // /** allocates a object in the subclass @return TypeImpl pointer */ virtual TypeImpl *allocateObject( void ) = 0; /** de-allocates a object in the subclass @param TypeImpl pointer */ virtual void deallocateObject( TypeImpl * ) = 0; }; } /** CORELINUX_DEFAULT_ALLOCATOR macro defines a class for default allocation, using global 'new' and 'delete'. @param nameTag - the name for the default class @param typeTag - the type class for the template expansion */ #define CORELINUX_DEFAULT_ALLOCATOR( nameTag, typeTag ) \ class nameTag : public CORELINUX(AbstractAllocator) \ { \ public: \ nameTag( void ) \ : \ CORELINUX(AbstractAllocator)()\ { \ ; \ } \ \ virtual ~nameTag( void ) \ { \ ; \ } \ protected: \ \ \ virtual typeTag *allocateObject( void ) \ { \ return ::new typeTag; \ } \ \ virtual void deallocateObject( typeTag *aPtr ) \ { \ ::delete aPtr; \ } \ }; \ typedef nameTag * nameTag ## Ptr; \ typedef const nameTag * nameTag ## Cptr; \ typedef nameTag & nameTag ## Ref; \ typedef const nameTag & nameTag ## Cref; #endif // if !defined(__ABSTRACTALLOCATOR_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.2 $ $Date: 2001/02/15 16:34:05 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/TransparentComponent.hpp0000664000000000000000000001616307153560644020115 0ustar #if !defined (__TRANSPARENTCOMPONENT_HPP) #define __TRANSPARENTCOMPONENT_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__COMPONENT_HPP) #include #endif #if !defined(__ITERATOR_HPP) #include #endif #if !defined(__INVALIDCOMPOSITEEXCEPTION_HPP) #include #endif /* __INVALIDCOMPOSITEEXCEPTION_HPP */ namespace corelinux { DECLARE_CLASS(InvalidCompositeException); /** A TransparentComponent is a templated Component whereas it declares the interface for the objects in a composition, implements default behavior and declares the interface for child operations. */ template class TransparentComponent : public Component { public: /// Default Constructor TransparentComponent( void ) : Component() { ; // do nothing } /** Copy Constructor @param TransparentComponent const reference */ TransparentComponent ( const TransparentComponent & aRef ) : Component( aRef ) { ; // do nothing } /// Virtual Destructor virtual ~TransparentComponent( void ) { ; // do nothing } // // Operator overloads // /** Assignment operator overload @param TransparentComponent const reference @return TransparentComponent reference to self */ TransparentComponent & operator=( const TransparentComponent & ) { return (*this); } /** Equality operator overload @param TransparentComponent const reference @return true if equal, false otherwise */ bool operator== ( const TransparentComponent & aRef ) const { return (*this = aRef); } /** Non-equality operator overload @param TransparentComponent const reference @return false if equal, true otherwise */ bool operator!= ( const TransparentComponent & aRef ) const { return !(*this = aRef); } // // Accessors // // // Mutators // /** Interface for adding component children to a composition. The default implementation throws an exception to insure needless calls are not made to leafs components @param CompImpl - Component instantiated with implementation @exception InvalidCompositeInstance */ virtual void addComponent( CompImpl ) throw(InvalidCompositeException) { throw InvalidCompositeException(LOCATION); } /** Interface for removing component children from a composition. The default implementation throws an exception to insure needless calls are not made to leafs @param CompImpl - Component instantiated with implementation @exception InvalidCompositeInstance */ virtual void removeComponent( CompImpl ) throw(InvalidCompositeException) { throw InvalidCompositeException(LOCATION); } // // Factories // /** Interface for creating an Iterator to iterate through the children of a composition. The default implementation throws an exception to insure needless calls are not made to leafs @param CompImpl - Component instantiated with implementation @exception InvalidCompositeInstance */ virtual Iterator* createIterator( void ) throw(InvalidCompositeException) { throw InvalidCompositeException(LOCATION); } /** Interface for returning a created Iterator. It is up to the Composite implementation to provide accounting of Iterator instances that have been given out. The default implementation throws an exception to insure needless calls are not made to leafs @param CompImpl - Component instantiated with implementation @exception InvalidCompositeInstance */ virtual void destroyIterator( Iterator * ) throw(InvalidCompositeException) { throw InvalidCompositeException(LOCATION); } }; } #endif // if !defined(__TRANSPARENTCOMPONENT_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.2 $ $Date: 2000/08/31 22:52:20 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/BoundsException.hpp0000664000000000000000000001057507100660141017024 0ustar #if !defined (__BOUNDSEXCEPTION_HPP) #define __BOUNDSEXCEPTION_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__STORAGEEXCEPTION_HPP) #include #endif namespace corelinux { DECLARE_CLASS( BoundsException ); /** BoundsException is a type of StorageException, characterized when access to a storage object is invalid. */ class BoundsException : public StorageException { public: /** Default Constructor @param why describes why the exception was thrown @param file The source module throwing the exception @param line The line of source throwing the exception @param severity The Exception::Severity of the Exception @param outOfMemory An out of memory indicator */ BoundsException ( CharCptr why, CharCptr file, LineNum line, Severity severity = Exception::CONTINUABLE, bool outOfMemory = false ); /** Default Constructor @param file The source module throwing the exception @param line The line of source throwing the exception @param severity The Exception::Severity of the Exception @param outOfMemory An out of memory indicator */ BoundsException ( CharCptr file, LineNum line, Severity severity = Exception::CONTINUABLE, bool outOfMemory = false ); /** Copy constructor @param BoundsException const reference */ BoundsException( BoundsExceptionCref ); /// Virtual Destructor virtual ~BoundsException( void ); // // Operator overloads // /** Assignment operator overload @param BoundsException const reference @return BoundsException reference to self */ BoundsExceptionRef operator=( BoundsExceptionCref ); /** Equality operator overload @param BoundsException const reference @return true if equal, false otherwise */ bool operator==( BoundsExceptionCref ) const; // // Accessor methods // // // Mutator methods // protected: /** BoundsException must have at least a location.. Default constructor is not allowed. */ BoundsException( void ); }; } #endif // !defined __BOUNDSEXCEPTION_HPP /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Makefile.am0000664000000000000000000000443107156360050015237 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 10:34:57 # LAST-MOD: $Id: Makefile.am,v 1.14 2000/09/09 07:00:56 dulimart Exp $ # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc include_HEADERS = AbstractAllocator.hpp \ AbstractCommand.hpp \ AbstractFactoryException.hpp \ AbstractFactory.hpp \ AbstractSemaphore.hpp \ AbstractString.hpp \ AccessRights.hpp \ Adapter.hpp \ AllocatorAlreadyExistsException.hpp \ Allocator.hpp \ AllocatorNotFoundException.hpp \ Assertion.hpp \ AssociativeIterator.hpp \ BoundsException.hpp \ Bridge.hpp \ Builder.hpp \ Colleague.hpp \ Command.hpp \ CommandFrame.hpp \ CommandFrameException.hpp \ Common.hpp \ Component.hpp \ CompositeException.hpp \ Context.hpp \ CoreLinuxAssociativeIterator.hpp \ CoreLinuxGuardGroup.hpp \ CoreLinuxGuardPool.hpp \ CoreLinuxIterator.hpp \ CoreLinuxObject.hpp \ Decorator.hpp \ Environment.hpp \ Event.hpp \ EventSemaphore.hpp \ EventSemaphoreGroup.hpp \ Exception.hpp \ Facade.hpp \ Flyweight.hpp \ GatewaySemaphoreGroup.hpp \ GatewaySemaphore.hpp \ GuardSemaphore.hpp \ Handler.hpp \ Identifier.hpp \ InvalidCompositeException.hpp \ InvalidIteratorException.hpp \ InvalidThreadException.hpp \ IteratorBoundsException.hpp \ IteratorException.hpp \ Iterator.hpp \ Limits.hpp \ List.hpp \ Makefile.am \ Makefile.in \ Map.hpp \ Mediator.hpp \ Memento.hpp \ Memory.hpp \ MemoryStorage.hpp \ MutexSemaphoreGroup.hpp \ MutexSemaphore.hpp \ NullPointerException.hpp \ Observer.hpp \ Pair.hpp \ Prototype.hpp \ Proxy.hpp \ Queue.hpp \ Request.hpp \ ScalarIdentifiers.hpp \ SemaphoreCommon.hpp \ SemaphoreException.hpp \ SemaphoreGroup.hpp \ Semaphore.hpp \ Set.hpp \ Singleton.hpp \ Stack.hpp \ State.hpp \ StorageException.hpp \ Storage.hpp \ Strategy.hpp \ String.hpp \ StringUtf8.hpp \ Subject.hpp \ Synchronized.hpp \ ThreadContext.hpp \ ThreadException.hpp \ Thread.hpp \ TransientStorage.hpp \ TransparentComponent.hpp \ Types.hpp \ Vector.hpp \ Visitor.hpp libcorelinux-0.4.32/corelinux/Makefile.in0000664000000000000000000003010707743170743015261 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 10:34:57 # LAST-MOD: $Id: Makefile.am,v 1.14 2000/09/09 07:00:56 dulimart Exp $ # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc include_HEADERS = AbstractAllocator.hpp \ AbstractCommand.hpp \ AbstractFactoryException.hpp \ AbstractFactory.hpp \ AbstractSemaphore.hpp \ AbstractString.hpp \ AccessRights.hpp \ Adapter.hpp \ AllocatorAlreadyExistsException.hpp \ Allocator.hpp \ AllocatorNotFoundException.hpp \ Assertion.hpp \ AssociativeIterator.hpp \ BoundsException.hpp \ Bridge.hpp \ Builder.hpp \ Colleague.hpp \ Command.hpp \ CommandFrame.hpp \ CommandFrameException.hpp \ Common.hpp \ Component.hpp \ CompositeException.hpp \ Context.hpp \ CoreLinuxAssociativeIterator.hpp \ CoreLinuxGuardGroup.hpp \ CoreLinuxGuardPool.hpp \ CoreLinuxIterator.hpp \ CoreLinuxObject.hpp \ Decorator.hpp \ Environment.hpp \ Event.hpp \ EventSemaphore.hpp \ EventSemaphoreGroup.hpp \ Exception.hpp \ Facade.hpp \ Flyweight.hpp \ GatewaySemaphoreGroup.hpp \ GatewaySemaphore.hpp \ GuardSemaphore.hpp \ Handler.hpp \ Identifier.hpp \ InvalidCompositeException.hpp \ InvalidIteratorException.hpp \ InvalidThreadException.hpp \ IteratorBoundsException.hpp \ IteratorException.hpp \ Iterator.hpp \ Limits.hpp \ List.hpp \ Makefile.am \ Makefile.in \ Map.hpp \ Mediator.hpp \ Memento.hpp \ Memory.hpp \ MemoryStorage.hpp \ MutexSemaphoreGroup.hpp \ MutexSemaphore.hpp \ NullPointerException.hpp \ Observer.hpp \ Pair.hpp \ Prototype.hpp \ Proxy.hpp \ Queue.hpp \ Request.hpp \ ScalarIdentifiers.hpp \ SemaphoreCommon.hpp \ SemaphoreException.hpp \ SemaphoreGroup.hpp \ Semaphore.hpp \ Set.hpp \ Singleton.hpp \ Stack.hpp \ State.hpp \ StorageException.hpp \ Storage.hpp \ Strategy.hpp \ String.hpp \ StringUtf8.hpp \ Subject.hpp \ Synchronized.hpp \ ThreadContext.hpp \ ThreadException.hpp \ Thread.hpp \ TransientStorage.hpp \ TransparentComponent.hpp \ Types.hpp \ Vector.hpp \ Visitor.hpp subdir = corelinux ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = DIST_SOURCES = HEADERS = $(include_HEADERS) DIST_COMMON = $(include_HEADERS) $(srcdir)/Makefile.in Makefile.am all: all-am .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu corelinux/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: includeHEADERS_INSTALL = $(INSTALL_HEADER) install-includeHEADERS: $(include_HEADERS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(includedir) @list='$(include_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " $(includeHEADERS_INSTALL) $$d$$p $(DESTDIR)$(includedir)/$$f"; \ $(includeHEADERS_INSTALL) $$d$$p $(DESTDIR)$(includedir)/$$f; \ done uninstall-includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(include_HEADERS)'; for p in $$list; do \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " rm -f $(DESTDIR)$(includedir)/$$f"; \ rm -f $(DESTDIR)$(includedir)/$$f; \ done ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = .. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: $(mkinstalldirs) $(DESTDIR)$(includedir) install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-includeHEADERS install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-includeHEADERS uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am info \ info-am install install-am install-data install-data-am \ install-exec install-exec-am install-includeHEADERS \ install-info install-info-am install-man install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ uninstall-am uninstall-includeHEADERS uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/corelinux/AllocatorAlreadyExistsException.hpp0000664000000000000000000001036107100660141022205 0ustar #if !defined (__ALLOCATORALREADYEXISTSEXCEPTION_HPP) #define __ALLOCATORALREADYEXISTSEXCEPTION_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__ABSTRACTFACTORYEXCEPTION_HPP) #include #endif namespace corelinux { DECLARE_CLASS( AllocatorAlreadyExistsException ); /** AllocatorAlreadyExistsException is an exception that is usually thrown when a add of an Allocator collides in a AbstractFactory implementation. */ class AllocatorAlreadyExistsException : public AbstractFactoryException { public: /** Default Constructor @param file The source module throwing the exception @param line The line of source throwing the exception @param severity The Exception::Severity of the Exception @param outOfMemory An out of memory indicator */ AllocatorAlreadyExistsException ( CharCptr file, LineNum line, Severity severity = Exception::CONTINUABLE, bool outOfMemory = false ); /** Copy constructor @param AllocatorAlreadyExistsException const reference */ AllocatorAlreadyExistsException ( AllocatorAlreadyExistsExceptionCref ); /// Virtual Destructor virtual ~AllocatorAlreadyExistsException( void ); // // Operator overloads // /** Assignment operator overload @param AllocatorAlreadyExistsException const reference @return AllocatorAlreadyExistsException reference to self */ AllocatorAlreadyExistsExceptionRef operator= ( AllocatorAlreadyExistsExceptionCref ); /** Equality operator overload @param AllocatorAlreadyExistsException const reference @return true if equal, false otherwise */ bool operator== ( AllocatorAlreadyExistsExceptionCref ) const; // // Accessor methods // // // Mutator methods // protected: /** AllocatorAlreadyExistsException must have at least a location.. Default constructor is not allowed. */ AllocatorAlreadyExistsException( void ); }; } #endif // !defined __ALLOCATORALREADYEXISTSEXCEPTION_HPP /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Assertion.hpp0000664000000000000000000005014507100660141015657 0ustar #if !defined (__ASSERTION_HPP) #define __ASSERTION_HPP /* CoreLinux++ Copyright (C) 1999 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Assertion is the exception created when an assertion fails. It contains type information so that clients may filter the types of assertion violations that they catch. There are several types of assertion: ASSERT( bool ) Enabled by #define ALL_ASSERTIONS. It is only used inside the INVARIANT clause of a class declaration. REQUIRE( bool ) Enabled by #define ALL_ASSERTIONS or #define ASSERT_REQUIRE. This macro is used to check precondtions for a function. If disabled the macro is compiled away. ENSURE( bool ) Enabled by #define ALL_ASSERTIONS or #define ASSERT_ENSURE. This macro is used to check postconditions. If disabled the macro is compiled away. CHECK( bool ) Enabled by #define ALL_ASSERTIONS or #define ASSERT_CHECK. This macro is used to check assumptions or to check calls to external functions in the OS. Unlike REQUIRE and ENSURE when disabled this macro expands to: if( !( exp )) {;} else This expansion allows calls such as: CHECK( DosSubAllocMem( ... ) == 0 ); to not be compiled away. CHECK_INVARIANT Enabled by #define ALL_ASSERTIONS. This macro is used to validate that the class INVARIANT still holds. The INVARIANT must hold after construction and at the end of any public member function. In order to use this assertion the class must have an INVARIANT ... END_INVARIANT section in the class definition. If ALL_ASSERTIONS is not defined then this macro expands to nothing. NEVER_GET_HERE This macro is always enabled and throws an assertion if it is ever executed. It should be used to make explicit to the reader that all cases have been accounted for in a switch or if ... else if ... else block. Typically the programmer defines ALL_ASSERTIONS during development and reduces assertion levels to ASSERT_REQUIRE at beta and even into release. In addition to the assertions there are several helper macros that allow for class INVARIANTs and the logic predicates "for all" and "there exists". There is also the USES_OLD macro which allows changes in a class to be checked against the original version of the class. BASE_INVARIANT( BaseClass ) Can only be used in the INVARIANT clause of a class definition. This expands to call the INVARIANT of one of the base classes in the current class. Expands to: BaseClass::INVARIANT() INVARIANT Can only be used inside a class definition. This should be the last thing in the class and should state the conditions that hold when the class is correct. The only statements allowed in the INVARIANT are BASE_INVARIANT and ASSERT. For example an ordered array class may look like: class OrderedArray : public Vector { public: Array( int size ) : Vector(), theSize( size ), theArray( new T[ size ] ); { orderTheArray(); CHECK_INVARIANT; } virtual !Array(); // other operations. private: int theSize; T * theArray; INVARIANT BASE_INVARIANT( Vector ); // Array is sorted in ascending order. ASSERT( FORALL(( int i = 1; i < theSize; i++ ), theArray[i-1] <= theArray[i] )); END_INVARIANT }; // end class OrderedArray END_INVARIANT Used to terminate the INVARIANT clause in a class definition. USES_OLD( Type ) Creates a copy of the current object called old which can then be used in assertions to check those attributes between the new object and old. Any function which needs old must declare this at the start of the function. The object must be able to copy itself deeply for this to work correctly. Only creates old if ALL_ASSERTIONS or ASSERT_ENSURE is defined. WARNING: old should only be used by the ENSURE macro. old variable created by the USES_OLD macro. A typical use would be: void List::addItem( item ) { ... ENSURE( size() == old.size() + 1 ); } bool FORALL(( for-specification ), condition ) Only expands if ALL_ASSERITONS is defined, and can only be used in assertions. If ALL_ASSERTIONS is not defined it becomes the value True. If expanded it becomes equivalent to: REQUIRE( FORALL(( int i = 0; i < 10; i++ ), x[i] <= x[0] )); REQUIRE( tempForAll() ); bool tempForAll() { bool result = True; for( int i = 0; i < 10; i++ ) if( !( x[i] <= x[0] )) { result = False; break; } return result; } Be very carefull using this macro since errors in the for specification or condition can be very difficult to find. Also note that the condition can be another FORALL or an EXISTS. bool EXISTS((for-specification), condition ) Only expands if ALL_ASSERTIONS is defined, otherwise becomes the value True. Returns True as soon as the condition is met. If all iterations fail then the macro fails. When expanded it becomes equivalent to: ENSURE( EXISTS((int i = 0; i<10; i++), x[i] == old.x[i] )); ENSURE( tempExists() ); bool tempExists() { bool result; for( int i = 0; i < 10; i++ ) if( x[i] == old.x[i] ) { result = True; break; } return result; } The assertion mechanism also supports two functions; assertionFailed() and assertLoopDebugFunction(). The first is called when an assertion fails and after the assertion exception has been built. The second one is called if FORALL or EXISTS fail. These functions are a handy place to set breakpoints during debugging. They are implemented in Assertion.cpp See also: Object Oriented Software Construction Bertrand Meyer. Prentice Hall, Englewood Cliffs NJ., 1988. C/C++ Users Journal October 1994 pages 21 - 37 */ #if !defined IN_COMMON_HPP #error Assertion.hpp is included by Common.hpp only. #endif namespace corelinux { // Standard class Declarations DECLARE_CLASS( Assertion ); // These macros are called when an assertion fails or a FORALL or EXISTS // test fails respectively. They provide a convienent place to set a // breakpoint during debugging. // Long assertionFailed( AssertionCref rAssertion ); void assertLoopDebugFunction( void ); // // Static variables needed by the assertion macros. // static Long asstInvert = 0; static Long asstResult = 0; static Long asstEval = 0; static Long asstShortCut = 0; static Long asstZero = 0; static struct AssertCt { AssertCt( void ) { asstInvert = asstResult = asstEval = asstShortCut = asstZero = 0; } // empty } asstCt; // // Typedefs and Macros // #define paste(a,b) a##b #define paste3(a,b,c) a##b##c #if defined ALL_ASSERTIONS || defined ASSERT_REQUIRE #define REQUIRE( exp ) \ IGNORE_RETURN ( \ asstResult = asstZero || exp, \ asstResult || assertionFailed( Assertion( Assertion::REQUIRE, \ TEXT( #exp ), \ LOCATION \ )) ) #else #define REQUIRE( exp ) #endif // defined ALL_ASSERTIONS || ASSERT_REQUIRE #if defined ALL_ASSERTIONS || defined ASSERT_ENSURE #define ENSURE( exp ) \ IGNORE_RETURN ( \ asstResult = asstZero || exp, \ asstResult || assertionFailed( Assertion( Assertion::ENSURE, \ TEXT( #exp ), \ LOCATION \ )) ) #else #define ENSURE( exp ) #endif // defined ALL_ASSERTIONS || ASSERT_ENSURE #if defined ALL_ASSERTIONS || defined ASSERT_CHECK #define CHECK( exp ) \ IGNORE_RETURN ( \ asstResult = asstZero || exp, \ asstResult || assertionFailed( Assertion( Assertion::CHECK, \ paste3( \ TEXT("CHECK( "), \ TEXT( #exp ), \ TEXT(" )") \ ), \ LOCATION )) ) #else #define CHECK( exp ) #endif // defined ALL_ASSERTIONS || ASSERT_CHECK #define NEVER_GET_HERE \ assertionFailed( Assertion( Assertion::NEVERGETHERE, \ TEXT("NEVER_GET_HERE"), \ LOCATION )) // // Macros that support class INVARIANTs. // #if defined ALL_ASSERTIONS #define INVARIANT \ protected: \ virtual void invariant(void) const { Short executingInvariant = 1; #define END_INVARIANT } #define CHECK_INVARIANT invariant() #else #define INVARIANT paste(/, *) #define END_INVARIANT #define CHECK_INVARIANT #endif /* paste3( \ TEXT("STDASSERT( "), \ TEXT( #exp ), \ TEXT(" )") \ ), \ */ #if defined ALL_ASSERTIONS #define STDASSERT( exp ) \ if( executingInvariant ) \ { \ asstResult = asstZero || exp, \ asstResult || \ assertionFailed( Assertion( Assertion::ASSERT, \ TEXT( #exp ), \ LOCATION )); \ } \ else \ { \ throw Exception( \ TEXT("STDASSERT used outside of INVARIANT"), LOCATION ); \ } #else #define STDASSERT( exp ) #endif // defined ALL_ASSERTIONS #if defined ALL_ASSERTIONS #define BASE_INVARIANT( ClassType ) \ if( executingInvariant ) \ { \ ClassType::invariant(); \ } \ else \ { \ throw Exception( \ TEXT("BASE_INVARIANT used outside of an INVARIANT"), \ LOCATION, \ Exception::ProcessTerminate); \ } #else #define BASE_INVARIANT( ClassType ) #endif // // Macro that defines "old". // #if defined ALL_ASSERTIONS || defined ASSERT_ENSURE #define USES_OLD( Type ) Type old( clself ) #else #define USES_OLD( Type ) #endif // // Macros for FORALL and EXISTS // #define ASSERT_LOOP( asstFor, asstAll, asstCond ) \ anAssertCt(); \ { \ volatile x = 0; \ Long asstShortCut; \ if( asstDoEval( asstShortCut )) \ { \ Long asstInvert = ::asstInvert; \ asstResult = asstAll; \ for asstFor \ { \ asstResult = x || asstCond; \ if( asstResult != asstAll ) break; \ } \ if(asstInvert) asstResult = !asstResult; \ } \ ::asstShortCut = asstShortCut; \ if( asstResult == 0 ) assertLoopDebugFunction(); \ } \ asstResult = ::asstShortCut ? asstResult : asstResult #if defined ALL_ASSERTIONS #define FORALL(asstFor, asstCond ) ASSERT_LOOP( asstFor, 1, asstCond ) #define EXISTS(asstFor, asstCond ) ASSERT_LOOP( asstFor, 0, asstCond ) #else #define FORALL(asstFor, asstCond ) True #define EXISTS(asstFor, asstCond ) True #endif // // Constants // // // Helper Classes (including exceptions). // /** Assertion is-a Exception created when an assertion fails. It contains type information so that clients may filter the types of assertion violations that they catch. There are several types of assertion macros defined. Refer to the comments at the top of Assertion.hpp for details. */ class Assertion : public Exception { // // Note that a private default constructor is not needed // beause Exception's default constructor is private. // public: /// Assertion Types enum enum Type { REQUIRE, /// REQUIRE pre-condition state ENSURE, /// ENSURE post-condition state CHECK, /// CHECK invariant state ASSERT, /// ASSERT invariant state NEVERGETHERE /// NEVERGETHERE logic state }; public: /** Assertion Constructor @param Type Specifies the state condition for the assertion @param Reason Text describing the assertion @param File The source module the assertion was thrown from @param Line The throw point line in the source module */ Assertion ( Type aType, CharPtr aReason, CharPtr aFile, LineNum aLine ); /** Assertion copy constructor @param Assertion const reference */ Assertion( AssertionCref rExcept ); /// Virtual Destructor virtual ~Assertion( void ); // // Operator overloads // /** Assignment operator overload @param Assertion const reference @return Assertion reference to self */ AssertionRef operator=( AssertionCref ); /** Comparisson operator overload @param Assertion const reference @return true if equal, false otherwise */ bool operator==( AssertionCref ); // // Accessors // /** Accessor @return The Type which caused the assertion */ Assertion::Type getType( void ) const; private: Assertion::Type theType; }; // // Inline Functions // inline AssertCt & anAssertCt( void ) { asstInvert = 0; asstEval = 1; return asstCt; }; inline Long asstDoEval( Long & asstShortCut ) { Long result = asstEval; asstShortCut = !asstEval && asstResult; asstEval = 0; return result; } inline const AssertCt & operator !( const AssertCt & a ) { asstInvert = !asstInvert; return a; } inline Long operator &&( Long left, const AssertCt & ) { asstEval = left; return left; } inline Long operator ||( int left, const AssertCt & ) { asstEval = !left; return left; } } #endif // !defined ASSERT_HPP /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/StringUtf8.hpp0000664000000000000000000000633307100660141015725 0ustar #if !defined(__STRINGUTF8_HPP) #define __STRINGUTF8_HPP /* CoreLinux++ Copyright (C) 1999 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #include namespace corelinux { DECLARE_CLASS(StringUtf8); /** StringUtf8 is a temporary string implementation. This implementation is provided to address a short term requirement stated in AbstractString. */ class StringUtf8 : public AbstractString, public std::string { public: // // Constructors and destructors // // Default constructor StringUtf8( void ); // Char * copy constructor StringUtf8( CharCptr ); // std::string copy constructor StringUtf8( const std::string & ); // Copy constructor StringUtf8( StringUtf8Cref ); // Copy from base constructor, this // allows other Utf8 string implementations // to be copied to StringUtf8 StringUtf8( AbstractStringCref ) throw (Exception); // Destructor virtual ~StringUtf8( void ); // // Accessors // virtual Byte getElementByteCount( void ) const ; virtual bool supportsStandardInterface( void ) const ; virtual bool isUtf8( void ) const ; virtual bool isUcs2( void ) const ; virtual bool isUcs4( void ) const ; // // Mutators // // // Factory methods and conversions // // Default (calls cloneUtf8) virtual AbstractStringPtr clone( void ) const throw ( Exception ); // Clone ones self to a Utf8 implementation virtual AbstractStringPtr cloneUtf8( void ) const throw ( Exception ); // Clone ones self to a Ucs2 implementation virtual AbstractStringPtr cloneUcs2( void ) const throw ( Exception ); // Clone ones self to a Ucs4 implementation virtual AbstractStringPtr cloneUcs4( void ) const throw ( Exception ); protected: private: }; } #endif // #if !defined(__STRINGUTF8_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Prototype.hpp0000664000000000000000000000700707100660141015714 0ustar #if !defined(__PROTOTYPE_HPP) #define __PROTOTYPE_HPP /* CoreLinux++ Copyright (C) 1999 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif namespace corelinux { /** Specify the kinds of objects to create using a prototypical instance, and create new objects by copying (cloning) this prototype. */ template< class TypeImpl > class Prototype : public CoreLinuxObject { public: // // Constructors and destructor // /// Default constructor Prototype( void ) : CoreLinuxObject() { ; // do nothing } /** Copy constructor @param Prototype const reference */ Prototype( const Prototype & aPrototype ) : CoreLinuxObject( aPrototype ) { ; // do nothing } /// Virtual destructor virtual ~Prototype( void ) { ; // do nothing } // // Operator overload // /** Assignment operator @param Prototype const reference @return Prototype reference to this instance */ Prototype & operator=( const Prototype & aPrototype ) { CoreLinuxObject::operator=( aPrototype ); return ( *this ); } /** Equality operator @param Prototype const reference @return bool if instances are same */ bool operator==( const Prototype & aPrototype ) const { return CoreLinuxObject::operator==( aPrototype ); } // // Pure virtual methods // /** clone is used to create a copy of the current prototype instance. @return TypeImpl pointer */ virtual TypeImpl * clone( void ) const = 0 ; }; } #endif // if !defined(__PROTOTYPE_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Handler.hpp0000664000000000000000000001121407102047565015272 0ustar #if !defined(__HANDLER_HPP) #define __HANDLER_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__REQUEST_HPP) #include #endif namespace corelinux { DECLARE_CLASS( Handler ); /** Defines an interface for handling requests, accessing successors, and optionally implements the successor link. The builtin behavior is to allow forward and backward chaining of Handlers. */ class Handler : public Synchronized { public: // // Constructors and destructors // /// Default constructor Handler( void ); /// Copy constructor Handler( HandlerCref ); /// Virtual destructor virtual ~Handler( void ); // // Operator overloads // /// Operator assignment HandlerRef operator=( HandlerCref ); /// Equality operator bool operator==( HandlerCref ) const; // // Accessors // /// Returns successor or NULLPTR if end-of-chain HandlerPtr operator++( void ) ; /// Returns predecessor or NULLPTR if end-of-chain HandlerPtr operator--( void ) ; // // Mutators // /** Have this tie itself as the successor to the argument handler pointer @param Handler pointer to succeed @exception Assertion if HandlerPtr is NULLPTR */ void succeedHandler( HandlerPtr ) throw ( Assertion ); /** Have this tie itself as the predecessor to the argument handler pointer @param Handler pointer to preceed. @exception Assertion if HandlerPtr is NULLPTR */ void precedeHandler( HandlerPtr ) throw ( Assertion ); /// Removes links from self void extractSelf( void ); /** Routine which either invokes the work method or passes along to successor. First calls handleType which determines if work is handled here or passed on. @param Request pointer to request type */ virtual void handleRequest( RequestPtr ) ; protected: /** Implementation required. Respond to type handler requests. @param Request pointer to request object to determine if this handler handles the request. @return bool true if this handler handles type */ virtual bool handlesType( RequestPtr ) = 0; /** Implementation required. Once determined if type is handled, then handle it! @param Request pointer to request object */ virtual void handle( RequestPtr ) = 0; /// Sets the objects theSuccessor member void setSuccessor( HandlerPtr ) ; /// Sets the objects thePredecessor member void setPredecessor( HandlerPtr ) ; /// Sets the object siblings as atomic operation void setSiblings( HandlerPtr, HandlerPtr ); protected: /// Supports chaining of responsibility HandlerPtr theSuccessor; /// Supports chaining of responsibility where HandlerPtr thePredecessor; private: }; } #endif // if !defined(__HANDLER_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/04/27 14:32:21 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Decorator.hpp0000664000000000000000000001365507100660141015637 0ustar #if !defined (__DECORATOR_HPP) #define __DECORATOR_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif namespace corelinux { /** Decorators can attach additional responsibilities to an object dynamically which provide a more flexible alternative to subclassing for extending functionality. */ template class Decorator : public CoreLinuxObject { public: // // Constructors // /** Default Constructor requires a Implementation @param Implementation instance */ Decorator( Implementation aImplementation ) : CoreLinuxObject(), theImplementation(aImplementation) { ; // do nothing } /** Copy Constructor copies theImplementation. @param Decorator const reference */ Decorator( const Decorator &aDecorator ) : CoreLinuxObject(), theImplementation ( aDecorator.getImplementation() ) { ; // do nothing } /// Virtual Destructor virtual ~Decorator( void ) { ; // do nothing } // // Operator overloads // /** Assignment operator overload. This may throw Exception if there is a problem cloning theImplementation. @param Decorator const reference @return Decorator reference to self @exception Exception - implementation defined */ Decorator & operator=( const Decorator & aDecorator ) throw(Exception) { this->setImplementation ( aDecorator.getImplementation() ); return (*this); } /** Equality operator overload @param Decorator const reference @return true if equal, false otherwise */ bool operator==( const Decorator & aDecorator ) const { return ( this == &aDecorator && ( this->getImplementation() == aDecorator.getImplementation() ) ); } // // Accessors // /** Gets current theImplementation @return Implementation instance */ virtual Implementation getImplementation( void ) const { return theImplementation; } // // Mutators // /** Sets current theImplementation to aImplementation @param Implementation - implementation instance @exception Exception - derivation defined */ virtual void setImplementation( Implementation aImplementation ) throw(Exception) { theImplementation = aImplementation; } protected: // // Constructors // /** Default Constructor Because a Decorator requires a implementation to work, you can not construct one without it. @param void @exception NEVER_GET_HERE */ Decorator( void ) throw (Assertion) : CoreLinuxObject() { NEVER_GET_HERE; } protected: /// Storage for theImplementation object Implementation theImplementation; }; } #endif // if !defined(__DECORATOR_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Flyweight.hpp0000664000000000000000000000471107100660141015650 0ustar #if !defined (__FLYWEIGHT_HPP) #define __FLYWEIGHT_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif namespace corelinux { DECLARE_CLASS( Flyweight ); /** Flyweight type is used to support large numbers of fine-grained objects. */ class Flyweight { public: // // Constructors and destructor // /// Default Constructor Flyweight( void ); /** Copy constructor @param Flyweight const reference */ Flyweight( FlyweightCref ); /// Virtual Destructor virtual ~Flyweight( void ); // // Operator overloads // /** Assignment operator overload @param Flyweight const reference @return Flyweight reference to self */ FlyweightRef operator=( FlyweightCref ); /** Equality operator overload @param Flyweight const reference @return true if equal, false otherwise */ bool operator==( FlyweightCref ) const; // // Accessors // // // Mutators // protected: private: }; } #endif // if !defined(__FLYWEIGHT_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/CommandFrame.hpp0000664000000000000000000001700607153560644016257 0ustar #if !defined(__COMMANDFRAME_HPP) #define __COMMANDFRAME_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__ABSTRACTCOMMAND_HPP) #include #endif #if !defined(__VECTOR_HPP) #include #endif #if !defined(__COMMANDFRAMEEXCEPTION_HPP) #include #endif namespace corelinux { CORELINUX_VECTOR( AbstractCommandPtr , Commands ); DECLARE_CLASS( CommandFrame ); /** State of execution */ enum WorkState { /// The state is in building, no work has been performed BUILDING = 0, EXECUTING, COMPLETED, REVERSING, REVERSED, NEVERCOMPLETED }; /** CommandFrame builds a unit of work around one or more Commands. It maintains state and can be flagged to auto recover (reverse) the command effects. */ class CommandFrame : public Synchronized { public: // // Constructors and destructor // /// Default Constructor CommandFrame( bool autoReverse = false ); /** Copy constructor @param CommandFrame another CommandFrame reference @exception CommandFrameException if the state of the argument is not BUILDING, COMPLETED, or REVERSED. The state of this CommandFrame is set to BUILDING */ CommandFrame( CommandFrameCref ) throw( CommandFrameException ); /** Virtual destructor. Clears the colleciton of commands from the list. DOES NOT DESTROY THEM!!! */ virtual ~CommandFrame( void ); // // Operator overloads // /** Operator assignment. The commands from the argument replace the commands in the current CommandFrame. @param CommandFrame const reference @return CommandFrame reference to self @exception CommandFrameException if not building */ CommandFrameRef operator=( CommandFrameCref ) throw( CommandFrameException ); /// Equality operator bool operator==( CommandFrameCref ) const; // // Accessors // /** Retrieves the state of the frame @return WorkState */ WorkState getState( void ) const; /** Retrieves the auto reverse flag @return bool true if autoreverse enabled */ bool getReverseFlag( void ) const; /** Retrieves the commands into a Command collection @param Commands reference */ virtual void getCommands( CommandsRef ) const; // // Mutators // /** Operator overload for adding a command @param AbstractCommand pointer @return CommandFrame reference @exception CommandFrameException if not building or pointer is NULLPTR */ CommandFrameRef operator+=( AbstractCommandPtr ) throw( CommandFrameException ); /** Operator overload for appending commands from another CommandFrame to the current frame @param CommandFrame const reference @return CommandFrame reference to self @exception CommandFrameException if not building */ CommandFrameRef operator+=( CommandFrameCref ) throw( CommandFrameException ); /** Explicit call to add command @param AbstractCommand pointer @exception CommandFrameException if not building or pointer is NULLPTR */ virtual void addCommand( AbstractCommandPtr ) throw( CommandFrameException ); /** Sets the auto reverse flag @param bool true to auto recover from exceptions @exception CommandFrameException if not building */ void setAutoReverse( bool ) throw( CommandFrameException ); /** Run the frame which will iterate through the commands, calling execute for each on. The state must be BUILDING, which will change to COMPLETED if all goes well, REVERSED if auto reverse is true and there was a need to roll-back the commands, or NEVERCOMPLETED if auto reverse if false. @exception CommandFrameException if state not BUILDING */ void execute( void ) throw( CommandFrameException ); /** Run the reverse commands. The state must be COMPLETED for this to work. You can reverse a CommandFrame even if the auto reverse command is off. The state, upon valid completion will be REVERSED or NEVERCOMPLETED in case of error @exception CommandFrameException if state not COMPLETED */ void executeReverse( void ) throw( CommandFrameException ); protected: /** Called from execute AFTER the state is set to EXECUTING and a synchronized monitor is created. @return WorkState indicating the last state of execution. */ virtual WorkState executeCommands( void ); /** Called from executeReverse AFTER the state is set to REVERSING and a synchronized monitor is created. @return WorkState indicating the last state of execution. */ virtual WorkState executeReverseCommands( void ); protected: /// The recovery flag bool theAutoReverseFlag; /// The state of execution WorkState theWorkState; /// The Commands that make up the frame Commands theCommands; }; } #endif // if !defined(__COMMANDFRAME_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.2 $ $Date: 2000/08/31 22:52:20 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Strategy.hpp0000664000000000000000000000506407107245525015526 0ustar #if !defined (__STRATEGY_HPP) #define __STRATEGY_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined( __COMMON_HPP) #include #endif namespace corelinux { DECLARE_CLASS( Strategy ); /** Strategy is a base class for describing families of alogrithms. Strategy lets the alogrithm vary independently from clients that use them. */ class Strategy { public: /// Default Constructor Strategy( void ); /** Copy Constructor @param Strategy const reference */ Strategy( StrategyCref ); /// Virtual Destructor virtual ~Strategy( void ); // // Operator overloads // /** Assignment operator overload @param Strategy const reference @return Strategy reference to self */ StrategyRef operator=( StrategyCref ); /** Equality operator overload @param Strategy const reference @return true if equal, false otherwise */ bool operator==( StrategyCref ) const; /** Non-equality operator overload @param Strategy const reference @return false if equal, true otherwise */ bool operator!=( StrategyCref ) const; }; } #endif // if !defined(__STRATEGY_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/05/13 12:32:21 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Context.hpp0000664000000000000000000000566007110412542015337 0ustar #if !defined (__CONTEXT_HPP) #define __CONTEXT_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif namespace corelinux { DECLARE_CLASS( State ); DECLARE_CLASS( Context ); /** Context defines the interface to clients and maintains an instance of a State subclass. */ class Context { public: /// Default Constructor Context( void ); /** Copy Constructor @param Context const reference */ Context( ContextCref ); /// Virtual Destructor virtual ~Context( void ); // // Operator overloads // /** Assignment operator overload @param Context const reference @return Context reference to self */ ContextRef operator=( ContextCref ); /** Equality operator overload @param Context const reference @return true if equal, false otherwise */ bool operator==( ContextCref ) const; // // Mutators // /// Invoke a context request which is delegated to State virtual void request( void ) throw ( NullPointerException ); /// Change the state of the context virtual void changeState( StatePtr ); protected: // // Accessors // /// Retrieve the state instance StatePtr getState( void ) const; // // Mutators // /// Set the state instance void setState( StatePtr ); private: /// The State instance StatePtr theState; }; } #endif // if !defined(__CONTEXT_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/05/17 03:43:30 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/InvalidIteratorException.hpp0000664000000000000000000001007507100660141020665 0ustar #if !defined (__INVALIDITERATOREXCEPTION_HPP) #define __INVALIDITERATOREXCEPTION_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__ITERATOREXCEPTION_HPP) #include #endif namespace corelinux { DECLARE_CLASS( InvalidIteratorException ); /** InvalidIteratorException is an exception that indicates a Iterator could not be properly formed for some reason. */ class InvalidIteratorException : public IteratorException { public: /** Default Constructor @param file The source module throwing the exception @param line The line of source throwing the exception @param severity The Exception::Severity of the Exception @param outOfMemory An out of memory indicator */ InvalidIteratorException ( CharCptr file, LineNum line, Severity severity = Exception::CONTINUABLE, bool outOfMemory = false ); /** Copy constructor @param IteratorException const reference */ InvalidIteratorException ( InvalidIteratorExceptionCref ); /// Virtual Destructor virtual ~InvalidIteratorException( void ); // // Operator overloads // /** Assignment operator overload @param InvalidIteratorException const reference @return InvalidIteratorException reference to self */ InvalidIteratorExceptionRef operator= ( InvalidIteratorExceptionCref ); /** Equality operator overload @param InvalidIteratorException const reference @return true if equal, false otherwise */ bool operator== ( InvalidIteratorExceptionCref ) const; // // Accessor methods // // // Mutator methods // protected: /** InvalidIteratorException must have at least a location.. Default constructor is not allowed. */ InvalidIteratorException( void ); private: private: }; } #endif // !defined __INVALIDITERATOREXCEPTION_HPP /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Builder.hpp0000664000000000000000000002202707100660141015274 0ustar #if !defined(__BUILDER_HPP) #define __BUILDER_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__ABSTRACTFACTORY_HPP) #include #endif namespace corelinux { /** Builder seperates the construction of a complex object from its representation so that the same construction process can create different representations. This differs from AbstractFactory in that the Factory creates parts and Builder creates Products (assembled parts). @see AbstractFactory, Allocator, AbstractAllocator */ template< class ProductImpl, class UniqueId > class Builder { public: // // Constructors and destructor // /** Default constructor requires a abstract factory for building the product parts @param AbstractFactory */ Builder ( AbstractFactory *aAbstractFactory ) throw( Assertion ) : theCurrentProduct( NULLPTR ), theFactory( NULLPTR ), theProductCreates( 0 ), theProductDestroys( 0 ) { REQUIRE( aAbstractFactory != NULLPTR ); theFactory = aAbstractFactory ; } /** Copy constructor creates a new instance of the reference abstract factory @param Builder const reference */ Builder( const Builder &aBuilder ) throw( Assertion ) : theCurrentProduct( NULLPTR ), theFactory( aBuilder.getFactory() ), theProductCreates( 0 ), theProductDestroys( 0 ) { REQUIRE( theFactory != NULLPTR ); } /// Virtual destructor virtual ~Builder( void ) { ; // do nothing } // // Operator overloads // /** Operation assignment. Uses the same factory as the reference after destroying theCurrentProduct. @param Builder const reference @return Builder reference */ Builder & operator=( const Builder &aRef ) { if( this != &aRef ) { this->destroy( theCurrentProduct ); theFactory = aRef.getFactory(); theCurrentProduct = NULLPTR; theProductCreates = 0; theProductDestroys = 0; } else { ; // do nothing } return ( *this ); } /** Equality operator @param Builder const reference @return bool - true if same Builder instance */ bool operator==( const Builder &aRef ) { return ( this == &aRef ); } // // Accessors // /** Retrieves the current product @return ProductImpl pointer */ virtual ProductImpl * getCurrentProduct( void ) const { return theCurrentProduct; } /// Retrieve the product create counts virtual CountCref getProductCreates( void ) const { return theProductCreates; } /// Retrieve the product destroy counts virtual CountCref getProductDestroys( void ) const { return theProductDestroys; } /// Retrieve the AbstractFactory virtual AbstractFactory * getFactory( void ) const { return theFactory; } // // Builder methods // /** Default create routine invokes the implementation createProduct method @return ProductImpl pointer */ virtual ProductImpl * create( void ) { ProductImpl *aPtr( NULLPTR ); try { aPtr = createProduct(); CHECK( aPtr != NULLPTR ); theCurrentProduct = aPtr; incrementCreates(); } catch( ... ) { throw; } return aPtr; } /** Default destroy routine invokes the implementation destroyProduct method @param ProductImpl pointer */ virtual void destroy( ProductImpl * aPtr ) { REQUIRE( aPtr != NULLPTR ); try { destroyProduct( aPtr ); incrementDestroys(); } catch( ... ) { throw; } if( aPtr == theCurrentProduct ) { theCurrentProduct = NULLPTR; } else { ; // do nothing } } protected: // // Constructor // /// Default constructor not supported Builder( void ) throw(Assertion) : theCurrentProduct( NULLPTR ), theFactory( NULLPTR ), theProductCreates( 0 ), theProductDestroys( 0 ) { NEVER_GET_HERE; } // // Mutators // /// Increment the creates void incrementCreates( void ) { ++theProductCreates; } /// Increment the destroys void incrementDestroys( void ) { ++theProductDestroys; } // // Factory methods // /// Pure virtual createProduct virtual ProductImpl * createProduct( void ) const = 0; /// Pure virtual destroyProduct virtual void destroyProduct( ProductImpl * ) const = 0; protected: // // Data members // /// The product that was most recently built ProductImpl *theCurrentProduct; /// The factory for creating parts AbstractFactory *theFactory; /// The count of creates Count theProductCreates; /// The count of destroys Count theProductDestroys; }; } #endif // if !defined(__BUILDER_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/CoreLinuxGuardPool.hpp0000664000000000000000000002010607153560644017446 0ustar #if !defined(__CORELINUXGUARDPOOL_HPP) #define __CORELINUXGUARDPOOL_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__SINGLETON_HPP) #include #endif #if !defined(__SEMAPHOREGROUP_HPP) #include #endif #if !defined(__VECTOR_HPP) #include #endif #if !defined(__MAP_HPP) #include #endif namespace corelinux { /** PoolDescriptor stores information about the ownership and usage of a semaphore in the pool */ struct PoolDescriptor { /// The number of Synchronized concurrent request Count theQueueLength; /// The SemaphoreGroup that this semaphore belongs to. Index theGroupIndex; }; CORELINUX_VECTOR ( SemaphoreGroupPtr, GroupVector ); CORELINUX_MAP ( AbstractSemaphorePtr, PoolDescriptor, std::less, SemaphoreMap ); CORELINUX_MAP ( SynchronizedPtr, AbstractSemaphorePtr, std::less, MonitorMap ); DECLARE_CLASS( CoreLinuxGuardPool ); DECLARE_TYPE( Singleton, GuardPool ); /** The CoreLinuxGuardPool is a private SemaphoreGroup resource for class objects that require synchronization capability. @see corelinux::Synchronized, corelinux::PoolDescriptor */ class CoreLinuxGuardPool { public: // // Constructors and destructor // /** Default constructor @param Short number of base semaphores to use in pool @param Short number of semaphores to increment by when going into extents. If 0, no extents are allowed. @exception Assertion if Singleton already established. */ CoreLinuxGuardPool( Short numInit=8, Short numExt=0 ) throw( Assertion ); /// Virtual destructor virtual ~CoreLinuxGuardPool( void ); // // Operator overloads // // // Accessors // /** isLocked determines if the object is currently locked. Calls singleton instance isSynchronizedLocked. @param Synchronized pointer of guard owner. @return bool true if locked */ static bool isLocked( SynchronizedPtr ) throw( SemaphoreException ); /// Return the initial guard count in the pool static Short getInitialPoolSize( void ); /// Return the current grow by count for the pool static Short getExtentSize( void ); /// Return the current guard pool size static Short getTotalCurrentSize( void ); // // Mutators // /** lock is called by a guard when control is needed over a objects resource access. Calls singleton instance lockedSynchronized. @param Synchronized pointer of guard owner. @exception SemaphoreException if out of pool resources */ static void lock( SynchronizedPtr ) throw( SemaphoreException ); /** release is called by a guard object during its destruction. @param Synchronized pointer of guard owner.Calls singleton instance releaseSynchronized. @exception SemaphoreException if Synchronized object held no resource. */ static void release( SynchronizedPtr ) throw( SemaphoreException ); /** Run time interface for changing the extent size. The next time the pool goes into extent processing, this will be used. @param short the new extent size @exception Assertion if size < 0 */ static void setExtentSize( Short aExtentSize ) throw( Assertion ); protected: // // Accessors // /** isSynchronizedLocked resolves whether Synchronized is in a locked state. @param Synchronized pointer of guard owner. @return bool true if locked @exception SemaphoreException if not of set. */ bool isSynchronizedLocked( SynchronizedPtr ) throw( SemaphoreException ); // // Mutators // /** lockSynchronized manages the associations of objects to the semaphore in the pool in establishing the guard. @param Synchronized pointer of guard owner. */ void lockSynchronized( SynchronizedPtr ) throw( SemaphoreException ); /** releaseSynchronized manages the associations of objects to the semaphore in the pool when releasing a guard. @param Synchronized pointer of guard owner. */ void releaseSynchronized( SynchronizedPtr ) throw( SemaphoreException ); /** createPoolGroup creates a semaphore set with the requested number of semaphores in the group and will add the semaphores to theSemaphores with initial count and index set properly @param Short the semaphore count @param Short the number to insert into theSemaphores If the default is used, all go into theSemaphores */ void createPoolGroup( Short numSems, Short initSize=0 ); /** destroyPoolGroup validates that all the semaphores in the extent are not being used and then destroys the extent and all the semaphores associated with it. The method assumes that the group is the last in the vector. @param Index the group index */ void destroyPoolGroup( Index aGroup ); protected: /// Singleton instance static GuardPool theGuard; /// Describes the inital pool size static Short theInitialSize; /// Describes the size to add when going into extents static Short theExtentSize; private: /// Vector of base and extents GroupVector theGroups; /// Map of semaphores to reference counts SemaphoreMap theSemaphores; /// Map of Synchronized objects to semaphores MonitorMap theCallers; /// A internal mutex semaphore AbstractSemaphorePtr theControlSem; }; } #endif // if !defined(__CORELINUXGUARDPOOL_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.3 $ $Date: 2000/08/31 22:52:20 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Adapter.hpp0000664000000000000000000000540307100660141015265 0ustar #if !defined (__ADAPTER_HPP) #define __ADAPTER_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif namespace corelinux { DECLARE_CLASS( Adapter ); /** An Adapter converts the interface of a class into another interface that clients expect. This allows classes work together that couldn't otherwise because of the incompatible interfaces. Sometimes a toolkit class that's designed for reuse isn't reusable only because its interface doesn't match the domain specific interface an application requires. */ class Adapter { public: /// Default Constructor Adapter( void ); /** Copy Constructor @param Adapter const reference */ Adapter( AdapterCref ); /// Virtual Destructor virtual ~Adapter( void ); // // Operator overloads // /** Assignment operator overload @param Adapter const reference @return Adapter reference to self */ AdapterRef operator=( AdapterCref ); /** Equality operator overload @param Adapter const reference @return true if equal, false otherwise */ bool operator==( AdapterCref ) const; /** Non-equality operator overload @param Adapter const reference @return false if equal, true otherwise */ bool operator!=( AdapterCref ) const; }; } #endif // if !defined(__ADAPTER_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Limits.hpp0000664000000000000000000000633107100660141015147 0ustar #if !defined (__LIMITS_HPP) #define __LIMITS_HPP /* CoreLinux++ Copyright (C) 1999 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined IN_COMMON_HPP #error Limits.hpp is included by Common.hpp only. #endif namespace corelinux { DECLARE_CLASS( Limits ); /** Limits is to provide information regarding CoreLinux++ scalar types */ class Limits { public: enum CharLimits { CHARBITS = 8, CHARMIN = -128, CHARMAX = 127 }; enum ByteLimits { BYTEBITS = 8, BYTEMIN = 0, BYTEMAX = 255 }; enum ShortLimits { SHORTBITS = 16, SHORTMIN = (-32768), SHORTMAX = 32767 }; enum WordLimits { WORDBITS = 16, WORDMIN = 0, WORDMAX = 65535 }; enum LongLimits { LONGBITS = 32, LONGMIN = (-2147483647 - 1), LONGMAX = 2147483647 }; enum DwordLimits { DWORDBITS = 32, DWORDMIN = 0, DWORDMAX = -1 // 4294967295U USE DWORD(DWORDMAX) IN CAST }; enum SizeLimits { SIZEBITS = DWORDBITS, SIZEMIN = DWORDMIN, SIZEMAX = DWORDMAX }; enum IndexLimits { INDEXBITS = DWORDBITS, INDEXMIN = DWORDMIN, INDEXMAX = DWORDMAX }; enum CounterLimits { COUNTERBITS = LONGBITS, COUNTERMIN = LONGMIN, COUNTERMAX = LONGMAX }; enum IdLimits { IDBITS = WORDBITS, IDMIN = WORDMIN, IDMAX = WORDMAX }; // ******************************************* // Real Limits // ******************************************* static Word RealBits; static Word RealPrecision; static Real RealMin; static Real RealMax; // ******************************************* // Smallest number such that 1.0 + RealEpsilon != 1.0 // ******************************************* static Real RealEpsilon; }; } #endif // !defined HEADER_HPP /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/CoreLinuxIterator.hpp0000664000000000000000000001736507100660141017341 0ustar #if !defined(__CORELINUXITERATOR_HPP) #define __CORELINUXITERATOR_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__ITERATOR_HPP) #include #endif #if !defined(__INVALIDITERATOREXCEPTION_HPP) #include #endif #if !defined(__ITERATORBOUNDSEXCEPTION_HPP) #include #endif namespace corelinux { /** The CoreLinuxIterator provides a way to access the elements of any of the non-associative STL collections. By defining a CoreLinuxIterator with a CORELINUX_COLLECTION nameIterator definition and the Element Type. */ template< class TraverseType, class ElementType > class CoreLinuxIterator : public Iterator { public: // // Constructors and destructor // /** Default constructor @exception InvalidIteratorException - the CoreLinuxIterator requires being constructed with a valid collection */ CoreLinuxIterator( void ) throw(InvalidIteratorException) : Iterator() { throw InvalidIteratorException(LOCATION); } /** Initializing constructor @param TraverseType aBegin first position @param TraverseType aEnd last position */ CoreLinuxIterator( TraverseType aBegin, TraverseType aEnd ) : Iterator(), theBegin( aBegin ), theEnd( aEnd ), theCurrent( theBegin ) { ; // do nothing } /** Copy constructor @param CoreLinuxIterator const reference */ CoreLinuxIterator( const CoreLinuxIterator &aRef ) : Iterator( aRef ), theBegin( aRef.theBegin ), theEnd( aRef.theEnd ), theCurrent( aRef.theBegin ) { ; // do nothing } /// Destructor virtual ~CoreLinuxIterator( void ) { theBegin = theEnd; theCurrent = theEnd; } // // Operator overloads // /** Assignment operator @param CoreLinuxIterator const reference @return CoreLinuxIterator reference */ CoreLinuxIterator & operator= ( const CoreLinuxIterator & aRef ) { theBegin = aRef.theBegin; theEnd = aRef.theEnd; theCurrent = theBegin; return (*this); } /** Equality operator @param CoreLinuxIterator const reference @return bool - true if the respective positions are equal. */ bool operator==( const CoreLinuxIterator & aRef ) const { return (theBegin == aRef.theBegin && theEnd == aRef.theEnd); } // // Accessors // /** isValid implementation for determining if the current position points to a valid EntityType instance @return bool true if valid, false otherwise */ virtual bool isValid( void ) const { return !(theCurrent == theEnd); } /** getElement returns the ElementType instance that is currently managed by the CoreLinuxIterator @return ElementType @exception IteratorBoundsException if the Iterator is not positioned correctley. */ virtual ElementType getElement( void ) const throw(IteratorBoundsException) { if( this->isValid() == false ) { throw IteratorBoundsException(LOCATION); } else { ; // do nothing } return (*theCurrent); } // // Mutators // /// Set iterator to first element virtual void setFirst( void ) { theCurrent = theBegin; } /** Set iterator to next element @exception IteratorBoundsException if attempt to position past end of elements */ virtual void setNext( void ) throw(IteratorBoundsException) { if( theCurrent != theEnd ) { ++theCurrent; } else { throw IteratorBoundsException(LOCATION); } } /** Set iterator to previous element @exception IteratorBoundsException if attempt to position before begining of elements */ virtual void setPrevious( void ) throw(IteratorBoundsException) { if( theCurrent != theBegin && theBegin != theEnd ) { --theCurrent; } else { throw IteratorBoundsException(LOCATION); } } /// Set iterator to last element virtual void setLast( void ) throw(IteratorBoundsException) { theCurrent = theEnd; setPrevious(); } // // Protected methods // protected: // // Protected members // protected: /// The first position TraverseType theBegin; /// The last position TraverseType theEnd; /// The current position TraverseType theCurrent; }; } #endif // if !defined(__CORELINUXITERATOR_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/CoreLinuxObject.hpp0000664000000000000000000000525707106675063016772 0ustar #if !defined (__CORELINUXOBJECT_HPP) #define __CORELINUXOBJECT_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined IN_COMMON_HPP #error except.hpp is included by common.hpp only. #endif namespace corelinux { DECLARE_CLASS( CoreLinuxObject ); /** An CoreLinuxObject is a base class for the library. It is used to provide coherence in other implementations. */ class CoreLinuxObject { public: /// Default Constructor CoreLinuxObject( void ); /** Copy Constructor @param CoreLinuxObject const reference */ CoreLinuxObject( CoreLinuxObjectCref ); /// Virtual Destructor virtual ~CoreLinuxObject( void ); // // Operator overloads // /** Assignment operator overload @param CoreLinuxObject const reference @return CoreLinuxObject reference to self */ CoreLinuxObjectRef operator=( CoreLinuxObjectCref ); /** Equality operator overload @param CoreLinuxObject const reference @return true if equal, false otherwise */ bool operator==( CoreLinuxObjectCref ) const; /** Non-equality operator overload @param CoreLinuxObject const reference @return false if equal, true otherwise */ bool operator!=( CoreLinuxObjectCref ) const; }; } #endif // if !defined(__CORELINUXOBJECT_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/05/12 03:27:47 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Facade.hpp0000664000000000000000000000533507100660141015054 0ustar #if !defined (__FACADE_HPP) #define __FACADE_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif namespace corelinux { DECLARE_CLASS( Facade ); /** Structuring a system into subsystems helps reduce complexity. A common design goal is to minimize the communication and dependencies between subsystems. A Facade defines a higher-level interface that makes the subsystem easier to use. This is also called a fat interface in some cases, and delegation model. */ class Facade : public CoreLinuxObject { public: /// Default Constructor Facade( void ); /** Copy Constructor @param Facade const reference */ Facade( FacadeCref ); /// Virtual Destructor virtual ~Facade( void ); // // Operator overloads // /** Assignment operator overload @param Facade const reference @return Facade reference to self */ FacadeRef operator=( FacadeCref ); /** Equality operator overload @param Facade const reference @return true if equal, false otherwise */ bool operator==( FacadeCref ) const; /** Non-equality operator overload @param Facade const reference @return false if equal, true otherwise */ bool operator!=( FacadeCref ) const; }; } #endif // if !defined(__FACADE_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/MemoryStorage.hpp0000664000000000000000000002002207120315241016474 0ustar #if !defined(__MEMORYSTORAGE_HPP) #define __MEMORYSTORAGE_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__TRANSIENTSTORAGE_HPP) #include #endif #if !defined(__BOUNDSEXCEPTION_HPP) #include #endif namespace corelinux { DECLARE_CLASS( MemoryStorage ); /** MemoryStorage is type of Storage characterized as transient and high speed. The interface provides pointer semantics with the addition of bounds error checking. */ class MemoryStorage : public TransientStorage, Synchronized { public: // // Constructors and destructor // /** Constructor for storage object @param MemoryIdentifier a unique id @param Int size of region in bytes @param void * to base address of region */ MemoryStorage( MemoryIdentifierCref , IntCref , VoidPtr ); // // Operator overloads // /// Compares identifier bool operator==( MemoryStorageCref ) const; /// Returns identifier operator MemoryIdentifierCref( void ) const; // // Accessors // /// Increment current pointer void operator+( Int ) throw( BoundsException ); /// Decrement current pointer void operator-( Int ) throw( BoundsException ); /// Reads current location as type template< class T > operator T( void ) throw( BoundsException ) { // Bounds check first if( Dword( ( BytePtr(theCurrentPointer) + sizeof(T) ) - BytePtr(theBasePointer)) > Dword(theSize) ) { throw BoundsException( LOCATION ); } else { ; // do nothing } return ((T *)theCurrentPointer)[0]; } /// Reads current location as type pointer template< class T > operator T*( void ) throw( BoundsException ) { // Bounds check first if( Dword( ( BytePtr(theCurrentPointer) + sizeof(T) ) - BytePtr(theBasePointer)) > Dword(theSize) ) { throw BoundsException( LOCATION ); } else { ; // do nothing } return ((T *)theCurrentPointer); } // // Mutators // /// Data assignment template< class T > T & operator=( T & aT ) throw( BoundsException ) { if( Dword( ( BytePtr(theCurrentPointer) + sizeof(T) ) - BytePtr(theBasePointer)) > Dword(theSize) ) { throw BoundsException( LOCATION ); } else { ; // do nothing } GUARD; std::memmove( theCurrentPointer, &aT, sizeof(T) ); return aT; } /// Subscript offset operator MemoryStorageRef operator[]( Int offset ) throw( BoundsException ); // // Traversal operations // /** forEach invokes the callers method to perform whatever operation they want on the type reference in the segment space. @param Xexec call to templated type */ template < class Type, class Xexec > void forEach( Xexec aExec ) throw ( Assertion ) { REQUIRE( aExec != NULLPTR ); GUARD; Type *pType( (Type *)theBasePointer ); Int maxCount( theSize / sizeof( Type ) ); for( Int x = 0; x < maxCount; ++x, ++pType ) { (*aExec)(pType); } } /** forEach that invokes the callers method if the callers test method returns true @param Xexec call to templated type @param Test call to templated type */ template < class Type, class Xexec, class Test > void forEach( Xexec aExec, Test aTest ) throw ( Assertion ) { REQUIRE( aExec != NULLPTR ); REQUIRE( aTest != NULLPTR ); GUARD; Type *pType( (Type *)theBasePointer ); Int maxCount( theSize / sizeof( Type ) ); for( Int x = 0; x < maxCount; ++x, ++pType ) { if( (*aTest)(pType) == true ) { (*aExec)(pType); } else { ; // do nothing } } } protected: friend class Memory; /// Default is never called MemoryStorage( void ) throw( Assertion ); /// Copy called by Memory MemoryStorage( MemoryStorageCref ); /// Virtual destructor virtual ~MemoryStorage( void ); /// Assignment called by Memory MemoryStorageRef operator=( MemoryStorageCref ); /// Internal reference to base VoidPtr getBasePointer( void ); private: /// Unique identifier MemoryIdentifier theIdentifier; /// The size of region in bytes Int theSize; /// The base pointer of the region VoidPtr theBasePointer; /// The current pointer into the region VoidPtr theCurrentPointer; }; } #endif // if !defined(__MEMORYSTORAGE_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.4 $ $Date: 2000/06/10 01:32:17 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/CompositeException.hpp0000664000000000000000000001061107100660141017523 0ustar #if !defined (__COMPOSITEEXCEPTION_HPP) #define __COMPOSITEEXCEPTION_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif namespace corelinux { DECLARE_CLASS( CompositeException ); /** CompositeException is the base exception type for Composite. All Composite exceptions derive from this. */ class CompositeException : public Exception { public: /** Default Constructor @param file The source module throwing the exception @param line The line of source throwing the exception @param severity The Exception::Severity of the Exception @param outOfMemory An out of memory indicator */ CompositeException ( CharCptr file, LineNum line, Severity severity = Exception::CONTINUABLE, bool outOfMemory = false ); /** Copy constructor @param CompositeException const reference */ CompositeException( CompositeExceptionCref ); /// Virtual Destructor virtual ~CompositeException( void ); // // Operator overloads // /** Assignment operator overload @param CompositeException const reference @return CompositeException reference to self */ CompositeExceptionRef operator=( CompositeExceptionCref ); /** Equality operator overload @param CompositeException const reference @return true if equal, false otherwise */ bool operator==( CompositeExceptionCref ) const; // // Accessor methods // // // Mutator methods // protected: /** Default Constructor @param why describes why the exception was thrown @param file The source module throwing the exception @param line The line of source throwing the exception @param severity The Exception::Severity of the Exception @param outOfMemory An out of memory indicator */ CompositeException ( CharCptr why, CharCptr file, LineNum line, Severity severity = Exception::CONTINUABLE, bool outOfMemory = false ); /** CompositeException must have at least a location.. Default constructor is not allowed. */ CompositeException( void ); private: private: }; } #endif // !defined __COMPOSITEEXCEPTION_HPP /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Thread.hpp0000664000000000000000000002211707255553532015135 0ustar #if !defined(__THREAD_HPP) #define __THREAD_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined IN_COMMON_HPP #error Thread.hpp is included by Common.hpp only. #endif #if !defined(__SINGLETON_HPP) #include #endif #if !defined(__MAP_HPP) #include #endif #if !defined(__INVALIDTHREADEXCEPTION_HPP) #include #endif namespace corelinux { DECLARE_CLASS( ThreadContext ); CORELINUX_MAP ( ThreadIdentifier, ThreadContextPtr, std::less, ThreadMap ); // // Start of class declaration // DECLARE_CLASS( Thread ); DECLARE_TYPE( Singleton, ThreadManager ); /** Thread is a framework for the creation, management, and destruction of caller threads. It accomplishes this by allowing the caller to setup a context for execution and calling their defined entry point. There is still much work to be done such as:

  • Thread completion notification and processing
  • Signal handling and masking
  • Subject/Observer relationships
  • Instrumentation
  • Testing...testing...testing!
*/ class Thread : public Synchronized { public: // // Constructors and destructor // /// Default constructor Thread( void ) throw( Assertion ); /// Virtual destructor virtual ~Thread( void ); // // Operator overloads // // // Accessors (class) // /** getKernelError returns the thread instance errno for the last kernel call the thread made @return Int errno for thread function */ static Int getKernelError( void ); /** getThreadIdentifier retrieves the kernel process id for the caller thread @return ThreadIdentifier identifies the caller */ static ThreadIdentifier getThreadIdentifier( void ); /** getParentThreadIdentifier retrieves the parent thread of the current thread. @return ThreadIdentifier identifies the parent */ static ThreadIdentifier getParentThreadIdentifier( void ); /** getThreadManagerIdentifier retrieves the thread that Thread was instantiated from @return ThreadIdentifier identifies the owner */ static ThreadIdentifierCref getThreadManagerIdentifier( void ); /** Retrieve a ThreadContext given a identifier @param ThreadIdentifier unique id @return ThreadContext const reference @exception InvalidThreadException if it does not exist. */ static ThreadContextCref getThreadContext( ThreadIdentifierCref ) throw ( InvalidThreadException ) ; /** Retrieve the number of created threads @return Count number of active threads */ static Count getCreatedThreadCount( void ); /** Retrieve the number of threads that are starting or running @return Count number of active threads */ static Count getActiveThreadCount( void ); /** Retrieve the number of threads that are waiting ro tun @return Count number of active threads */ static Count getBlockedThreadCount( void ); /** Retrieve the number of threads that are not starting or running or waiting to run. @return Count number of completed threads */ static Count getCompletedThreadCount( void ); /// Debugging method for the moment static void dump( void ); // // Mutators // /** Start a thread as described by the context @param ThreadContext reference to thread context object. This object is copied into a managed context. @return ThreadIdentifier identifies the process/thread id as assigned by the operating system. */ static ThreadIdentifier startThread( ThreadContextRef ) ; /** Blocks the caller until the thread has ended execution, retrieving the return code from the associated thread context @param ThreadIdentifier unique thread id @return Int return code from thread context @exception InvalidThreadException if not a valid thread identifier. */ static Int waitForThread( ThreadIdentifierCref ) throw ( InvalidThreadException ); /** Destroys the managed context for the given identifier @param ThreadIdentifier unique thread id @exception InvalidThreadException if the thread id is not one in the managed store. @exception Assertion if the thread is in a running state. */ static void destroyThreadContext( ThreadIdentifierCref ) throw ( InvalidThreadException, Assertion ); /** Get thread priority for the given indentifier @param ThreadIdentifier unique thread id @exception InvalidThreadException if the thread id is not one in the managed store. @exception Assertion if the thread is in a running state. */ static Int getThreadPriority( ThreadIdentifierCref ) throw ( InvalidThreadException, Assertion ); /** Set thread priority for the given indentifier @param ThreadIdentifier unique thread id @param prio priority value @exception InvalidThreadException if the thread id is not one in the managed store. @exception Assertion if the thread is in a running state. */ static void setThreadPriority( ThreadIdentifierCref, Int ) throw ( InvalidThreadException, Assertion ); protected: // // Constructor // /** Copy constructor won't do, its a singleton @param Thread reference to another Thread @exception Assertion NEVER_GET_HERE */ Thread( ThreadCref ) throw ( Assertion ); // // Operator overloads // /** Assignment operator won't do, we should never get here anyway but the compiler will generate the missing method. @param Thread reference to another Thread @return Thread reference to self @exception Assertion NEVER_GET_HERE */ ThreadRef operator=( ThreadCref ) throw ( Assertion ); /** Equality operator not valid for class utility @param Thread reference to Thread @return bool True if equal @exception Assertion NEVER_GET_HERE */ bool operator==( ThreadCref ) const throw ( Assertion ) ; // // Thread terminate // static void threadTerminated( Int, VoidPtr, VoidPtr ); protected: /// The singleton instance of Thread for synchronization static ThreadManager theThreadManager; private: /// Associative map of ThreadContexts by id static ThreadMap theThreadMap; static ThreadIdentifier theThreadManagerId; static Count theThreadCount; }; } #endif // if !defined(__THREAD_HPP) /* Common rcs information do not modify $Author: dulimart $ $Revision: 1.5 $ $Date: 2001/03/20 04:06:50 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Singleton.hpp0000664000000000000000000001357407100660141015657 0ustar #if !defined(__SINGLETON_HPP) #define __SINGLETON_HPP /* CoreLinux++ Copyright (C) 1999 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif namespace corelinux { /** Ensure a class only has one instance, and provide a global point of access to it. This is easier said than done outside of the solution domain. While we can declare a protocol by which the use of this type will prevent multiple applications, we can't insure that the implementor won't violate said protocol. */ template< class TypeImpl > class Singleton : public CoreLinuxObject { public: // // Constructors and destructor // /** Default constructor sets theSingleton and theType after insuring that they are not already instantiated @exception Assertion */ Singleton( void ) throw( Assertion ) : CoreLinuxObject() { REQUIRE( theSingleton == NULLPTR ); REQUIRE( theType == NULLPTR ); theSingleton = this; theType = new TypeImpl; } /** Initializing constructor */ Singleton( TypeImpl *aTypePtr ) throw( Assertion ) : CoreLinuxObject() { ENSURE( aTypePtr != NULLPTR ); REQUIRE( theSingleton == NULLPTR ); REQUIRE( theType == NULLPTR ); theSingleton = this; theType = aTypePtr; } /// Virtual destructor virtual ~Singleton( void ) { if( theSingleton == this ) { theSingleton = NULLPTR; if( theType != NULLPTR ) { delete theType; theType = NULLPTR; } else { ; // do nothing } } else { ; // do nothing } } // // Operator overload // /** Equality operator tests that theSingleton instances are equal @param Singleton const reference @return bool true if equal */ bool operator==( const Singleton & aSingleton ) const { return ( &aSingleton == theSingleton ); } // // Accessor // /** Returns the instance of the TypeImpl @return TypeImpl pointer */ static TypeImpl * instance( void ) { return theType; } private: // // Constructor // /** Copy constructor is not allowed @exception Assertion - NEVER_GET_HERE */ Singleton( const Singleton & ) throw( Assertion ) : CoreLinuxObject() { NEVER_GET_HERE; } // // Operator overload // /** Assignment operator is not allowed @exception Assertion - NEVER_GET_HERE */ Singleton & operator=( const Singleton & ) throw( Assertion ) { NEVER_GET_HERE; return (*this); } private: /// The singleton instance static Singleton *theSingleton; /// The type instance static TypeImpl *theType; }; /// Static definition for theSingleton template< class TypeImpl > Singleton *Singleton::theSingleton( NULLPTR ); /// Static definition for theType template< class TypeImpl > TypeImpl *Singleton::theType( NULLPTR ); } #endif // if !defined(__SINGLETON_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Bridge.hpp0000664000000000000000000001540310771017615015114 0ustar #if !defined (__BRIDGE_HPP) #define __BRIDGE_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif namespace corelinux { /** When an abstraction can have one of several possible implementations, the usual way to accommodate them is to use inheritance. An abstract class defines the interface to the abstraction, and concrete subclasses implement it in different ways. But this approach isn't always flexible enough. Inheritance binds an implementation to the abstraction permanently, which makes it difficult to modify, extend, and reuse abstractions and implementations independently. A Bridge decouples an abstraction from its implementation so that the two can vary independently. */ template class Bridge : public CoreLinuxObject { public: /** Default Constructor requires a Implementation @param Implementation instance */ Bridge( Implementation aImplementation ) : CoreLinuxObject(), theImplementation(aImplementation) { ; // do nothing } /// Virtual Destructor virtual ~Bridge( void ) { ; // do nothing } // // Operator overloads // /** Assignment operator overload. This may throw Exception if there is a problem cloning theImplementation. @param Bridge const reference @return Bridge reference to self @exception Exception - implementation defined */ Bridge & operator=( const Bridge & aRef ) throw(Exception) { this->setImplementation( aRef.getImplementation() ); return (*this); } /** Equality operator overload @param Bridge const reference @return true if equal, false otherwise */ bool operator==( const Bridge & ) const { return (this == &aRef); } /** Non-equality operator overload @param Bridge const reference @return false if equal, true otherwise */ bool operator!=( const Bridge & ) const { return !(*this == aRef); } protected: /** Default Constructor Because a Bridge requires a implementation to work, you can not construct one without it. @param void @exception NEVER_GET_HERE */ Bridge( void ) throw (Assertion) { NEVER_GET_HERE; } /** Copy Constructor Because theImplementation is owned by the Bridge, only the assignment operator insures that the derivation is constructed and can be invoked for object management. @param Bridge const reference @exception NEVER_GET_HERE */ Bridge( const Bridge & ) throw (Assertion) { NEVER_GET_HERE; } // // Accessors // /** Gets current theImplementation @return Implementation instance */ Implementation getImplementation( void ) const { return theImplementation; } // // Mutators // /** Set theImplementation. This in turn calls the pure-virtual method cloneImplementation so that a pointer unique to this object, or one which is referencable can be managed @param Implementation instance @exception Exception - implementation defined */ void setImplementation( Implementation aImpl ) throw(Exception) { theImplementation = cloneImplementation(aImpl); } /** Pure virtual method to have the derivation contain theImplementation.by ownership. @param Implementation instance @return Implementation instance @exception Exception - implementation defined */ virtual Implementation cloneImplementation ( Implementation ) throw(Exception) = 0; private: /// Storage for theImplementation object Implementation theImplementation; }; } #endif // if !defined(__BRIDGE_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/CoreLinuxAssociativeIterator.hpp0000664000000000000000000002230107100660141021516 0ustar #if !defined(__CORELINUXASSOCIATIVEITERATOR_HPP) #define __CORELINUXASSOCIATIVEITERATOR_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__ASSOCIATIVEITERATOR_HPP) #include #endif #if !defined(__INVALIDITERATOREXCEPTION_HPP) #include #endif #if !defined(__ITERATORBOUNDSEXCEPTION_HPP) #include #endif namespace corelinux { /** The CoreLinuxAssociativeIterator provides a way to access the elements of any of the associative STL collections, by defining a CoreLinuxAssociativeIterator with a CORELINUX_COLLECTION nameAssociativeIterator definition, the KeyType and the Element Type. */ template< class TraverseType, class KeyType, class ElementType > class CoreLinuxAssociativeIterator : public AssociativeIterator { public: // // Constructors and destructor // /** Default constructor @exception InvalidIteratorException - the CoreLinuxAssociativeIterator requires being constructed with a valid collection */ CoreLinuxAssociativeIterator( void ) throw(InvalidIteratorException) : AssociativeIterator() { throw InvalidIteratorException(LOCATION); } /** Initializing constructor @param TraverseType aBegin first position @param TraverseType aEnd last position */ CoreLinuxAssociativeIterator( TraverseType aBegin, TraverseType aEnd ) : AssociativeIterator(), theBegin( aBegin ), theEnd( aEnd ), theCurrent( theBegin ) { ; // do nothing } /** Copy constructor @param CoreLinuxAssociativeIterator const reference */ CoreLinuxAssociativeIterator ( const CoreLinuxAssociativeIterator &aRef ) : AssociativeIterator( aRef ), theBegin( aRef.theBegin ), theEnd( aRef.theEnd ), theCurrent( aRef.theBegin ) { ; // do nothing } /// Destructor virtual ~CoreLinuxAssociativeIterator( void ) { theBegin = theEnd; theCurrent = theEnd; } // // Operator overloads // /** Assignment operator @param CoreLinuxAssociativeIterator const reference @return CoreLinuxAssociativeIterator reference */ CoreLinuxAssociativeIterator & operator= ( const CoreLinuxAssociativeIterator & aRef ) { theBegin = aRef.theBegin; theEnd = aRef.theEnd; theCurrent = theBegin; return (*this); } /** Equality operator @param CoreLinuxAssociativeIterator const reference @return bool - true if the respective positions are equal. */ bool operator== ( const CoreLinuxAssociativeIterator & aRef ) const { return (theBegin == aRef.theBegin && theEnd == aRef.theEnd); } // // Accessors // /** isValid implementation for determining if the current position points to a valid EntityType instance @return bool true if valid, false otherwise */ virtual bool isValid( void ) const { return !(theCurrent == theEnd); } /** getElement returns the ElementType instance that is currently managed by the CoreLinuxAssociativeIterator @return ElementType @exception IteratorBoundsException if the AssociativeIterator is not positioned correctley. */ virtual ElementType getElement( void ) const throw(IteratorBoundsException) { if( this->isValid() == false ) { throw IteratorBoundsException(LOCATION); } else { ; // do nothing } return (*theCurrent).second; } /** getKey returns the KeyType instance that is currently pointed to by the AssociativeIterator @return KeyType @exception IteratorBoundsException if the AssociativeIterator is not positioned correctly. */ virtual KeyType getKey( void ) const throw(IteratorBoundsException) { if( this->isValid() == false ) { throw IteratorBoundsException(LOCATION); } else { ; // do nothing } return (*theCurrent).first; } // // Mutators // /// Set AssociativeIterator to first element virtual void setFirst( void ) { theCurrent = theBegin; } /** Set AssociativeIterator to next element @exception IteratorBoundsException if attempt to position past end of elements */ virtual void setNext( void ) throw(IteratorBoundsException) { if( theCurrent != theEnd ) { ++theCurrent; } else { throw IteratorBoundsException(LOCATION); } } /** Set AssociativeIterator to previous element @exception IteratorBoundsException if attempt to position before begining of elements */ virtual void setPrevious( void ) throw(IteratorBoundsException) { if( theCurrent != theBegin && theBegin != theEnd ) { --theCurrent; } else { throw IteratorBoundsException(LOCATION); } } /// Set AssociativeIterator to last element virtual void setLast( void ) throw(IteratorBoundsException) { theCurrent = theEnd; setPrevious(); } // // Protected methods // protected: // // Protected members // protected: /// The first position TraverseType theBegin; /// The last position TraverseType theEnd; /// The current position TraverseType theCurrent; }; } #endif // if !defined(__CORELINUXASSOCIATIVEITERATOR_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/SemaphoreException.hpp0000664000000000000000000001110407100660141017502 0ustar #if !defined (__SEMAPHOREEXCEPTION_HPP) #define __SEMAPHOREEXCEPTION_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif namespace corelinux { DECLARE_CLASS( SemaphoreException ); /** SemaphoreException is the base exception type for Semaphore. All Semaphore exceptions derive from this. */ class SemaphoreException : public Exception { public: /** Default Constructor @param why describes why the exception was thrown @param file The source module throwing the exception @param line The line of source throwing the exception @param severity The Exception::Severity of the Exception @param outOfMemory An out of memory indicator */ SemaphoreException ( CharCptr why, CharCptr file, LineNum line, Severity severity = Exception::CONTINUABLE, bool outOfMemory = false , Int errNum = 0 ); /** Copy constructor @param SemaphoreException const reference */ SemaphoreException( SemaphoreExceptionCref ); /// Virtual Destructor virtual ~SemaphoreException( void ); // // Operator overloads // /** Assignment operator overload @param SemaphoreException const reference @return SemaphoreException reference to self */ SemaphoreExceptionRef operator=( SemaphoreExceptionCref ); /** Equality operator overload @param SemaphoreException const reference @return true if equal, false otherwise */ bool operator==( SemaphoreExceptionCref ) const; // // Accessor methods // IntCref getErrNum( void ) const; // // Mutator methods // protected: /** Default Constructor @param file The source module throwing the exception @param line The line of source throwing the exception @param severity The Exception::Severity of the Exception @param outOfMemory An out of memory indicator */ SemaphoreException ( CharCptr file, LineNum line, Severity severity = Exception::CONTINUABLE, bool outOfMemory = false , Int errNum = 0 ); /** SemaphoreException must have at least a location.. Default constructor is not allowed. */ SemaphoreException( void ); private: Int theErrorNumberFromKernel; }; } #endif // !defined __SemaphoreEXCEPTION_HPP /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Queue.hpp0000664000000000000000000000416407153560644015013 0ustar #if !defined(__QUEUE_HPP) #define __QUEUE_HPP /* CoreLinux++ Copyright (C) 1999 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif // STL includes #include namespace corelinux { /** STL queue template. This macro generates all the type references and pointers for the collection and respective iterators for a queue. @param name The name you want to give the collection @param type The type to be queued */ #define CORELINUX_QUEUE( type, name ) \ DECLARE_TYPE(std::deque,name); \ typedef name::iterator name ## Iterator; \ typedef name::iterator& name ## IteratorRef; \ typedef name::iterator* name ## IteratorPtr; \ typedef name::const_iterator name ## ConstIterator; \ typedef name::const_iterator& name ## ConstIteratorRef; \ typedef name::const_iterator* name ## ConstIteratorPtr; \ typedef name::reverse_iterator name ## Riterator; \ typedef name::reverse_iterator& name ## RiteratorRef; \ typedef name::reverse_iterator* name ## RiteratorPtr } #endif /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.3 $ $Date: 2000/08/31 22:52:20 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Pair.hpp0000664000000000000000000000330407100660141014576 0ustar #if !defined(__PAIR_HPP) #define __PAIR_HPP /* CoreLinux++ Copyright (C) 1999 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif // STL includes #include namespace corelinux { /** STL pair template. This macro generates all the type references and pointers for the pair. @param name The name you want to give the pair @param pair1 The first type of the pair @param pair2 The second type of the pair */ #define CORELINUX_PAIR(name,pair1,pair2) \ typedef struct pair name; \ typedef name * name ## Ptr; \ typedef const name * name ## Cptr; \ typedef name & name ## Ref; \ typedef const name & name ## Cref; } #endif /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/AccessRights.hpp0000664000000000000000000000460307100660141016270 0ustar #if !defined(__ACCESSRIGHTS_HPP) #define __ACCESSRIGHTS_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined IN_COMMON_HPP #error AccessRights.hpp is included by Common.hpp only. #endif namespace corelinux { /** Access enumeration for various system level classes. */ enum AccessRights { /// Owner has read access OWNER_READ = 0400, /// Owner has write access OWNER_MODIFY = 0200, /// Owner has read/write access OWNER_ALL = 0600, /// Group has read access GROUP_READ = 040, /// Group has write access GROUP_MODIFY = 020, /// Group has read/write access GROUP_ALL = 060, /// Public has read access PUBLIC_READ = 04, /// Public has write access PUBLIC_MODIFY= 02, /// Public has read/write access PUBLIC_ALL = 06 }; /** Creation dispositions for various system utilities */ enum CreateDisposition { /// Will create or open CREATE_OR_REUSE = 0, /// Will throw exception if target exists FAIL_IF_EXISTS = -1, /// Will throw exception if target does NOT exist FAIL_IF_NOTEXISTS = -2 }; /** Addressings constraints */ enum AddressingConstraint { /// read write access (no constraints) READ_WRITE = 0, /// read only access READ_ONLY, /// Execute access EXECUTE }; } #endif /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.1 $ $Date: 2000/04/23 20:43:13 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/SemaphoreGroup.hpp0000664000000000000000000002234107153560644016664 0ustar #if !defined(__SEMAPHOREGROUP_HPP) #define __SEMAPHOREGROUP_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__SEMAPHORECOMMON_HPP) #include #endif #if !defined(__ABSTRACTSEMAPHORE_HPP) #include #endif #if !defined(__MAP_HPP) #include #endif namespace corelinux { const Dword NAMEBUFFERSIZE(254); struct SemaphoreReference { Int theCount; AbstractSemaphorePtr theSem; }; CORELINUX_MAP( Index, SemaphoreReference, std::less , SemaphoreShares ); DECLARE_CLASS( SemaphoreGroup ); /** A SemaphoreGroup is an extension to the Linux semaphore set. This provides a way to logically group semaphores. A SemaphoreGroup acts as a Semaphore factory, creating and destroying Semaphores for the user. */ class SemaphoreGroup : public Synchronized { public: /** Default constructor creates a private group semaphores. @param Short Number of semaphores in group @param AccessRights Specifies access control for group, default is owner only. @exception Assertion if aCount < 1 @exception SemaphoreException if kernel group create call fails. @see corelinux::AccessRights */ SemaphoreGroup( Short , Int Rights = OWNER_ALL ) throw(Assertion,SemaphoreException); /** Constructor to open or create a semaphore group with a specific identifier. @param Short Number of semaphores in group, this only has meaning used if failOnExist = true @param SemaphoreGroupIdentifier valid group identifier either through a system call or via another ipc mechanism @param AccessRights Specifies access control for group @param CreateDisposition indicates how to treat the conditions that the group may meet in the request: CREATE_OR_REUSE indicates that the caller doesn't care FAIL_IF_EXISTS indicates the attempt was for a create FAIL_IF_NOTEXISTS indicates the attempt was for a open @exception Assertion if aCount < 1 @exception SemaphoreException for described states @see corelinux::AccessRights */ SemaphoreGroup ( Short, SemaphoreGroupIdentifierCref, Int , CreateDisposition disp=FAIL_IF_EXISTS ) throw(Assertion,SemaphoreException); /** Constructor to open or create a semaphore group by name. @param Short Number of semaphores in group, this only has meaning used if failOnExist = true @param Char pointer to Group name @param AccessRights Specifies access control for group @param CreateDisposition indicates how to treat the conditions that the group may meet in the request: CREATE_OR_REUSE indicates that the caller doesn't care FAIL_IF_EXISTS indicates the attempt was for a create FAIL_IF_NOTEXISTS indicates the attempt was for a open @exception Assertion if aCount < 1 or aCount > system defined maximum for group @exception SemaphoreException for described states @see corelinux::AccessRights */ SemaphoreGroup ( Short, CharCptr, Int , CreateDisposition disp=FAIL_IF_EXISTS ) throw(Assertion,SemaphoreException); /// Virtual destructor virtual ~SemaphoreGroup( void ); // // Operator overloads // /** Equality operator compares the identifier @param SemaphoreGroup a reference to SemaphoreGroup @return bool True if equal */ bool operator==( SemaphoreGroupCref ) const; // // Accessors // /** Return the number of semaphores in the group @return Short Count */ Short getSemaphoreCount( void ) const; /** Return the SemaphoreGroupIdentifier @return SemaphoreGroupIdentifier */ inline SemaphoreGroupIdentifierCref getIdentifier( void ) const { return theIdentifier; } // // Factory methods // /** Create a default semaphore type from group @return AbstractSemaphore aSem - pointer to created semaphore @exception SemaphoreException if no sems left in group */ virtual AbstractSemaphorePtr createSemaphore( void ) throw( SemaphoreException ) = 0; /** Create or open (use) a specific semphore in the group @param SemaphoreIdentifier identifies which semphore id to create or attempt to use @param CreateDisposition indicates how to treat the conditions that the group may meet in the request: CREATE_OR_REUSE indicates that the caller doesn't care FAIL_IF_EXISTS indicates the attempt was for a create FAIL_IF_NOTEXISTS indicates the attempt was for a open @param Recursive to allow same thread multiple locks @param Balking to allow the semaphore to balk @return AbstractSemaphore aSem - pointer to created or opened semaphore @exception SemaphoreException if the disposition disagrees with the semaphore state, or if it is a erroneous identifier */ virtual AbstractSemaphorePtr createSemaphore ( SemaphoreIdentifierRef aIdentifier, CreateDisposition disp = CREATE_OR_REUSE, bool Recursive=false, bool Balking = false ) throw( SemaphoreException ) = 0; /** Create or open (use) a specific semphore in the group @param string identifies which semphore id to create or attempt to use @param CreateDisposition indicates how to treat the conditions that the group may meet in the request: CREATE_OR_REUSE indicates that the caller doesn't care FAIL_IF_EXISTS indicates the attempt was for a create FAIL_IF_NOTEXISTS indicates the attempt was for a open @param Recursive to allow same thread multiple locks @param Balking to allow the semaphore to balk @return AbstractSemaphore aSem - pointer to created or opened semaphore @exception SemaphoreException if the disposition disagrees with the semaphore state, or if it is a erroneous identifier */ virtual AbstractSemaphorePtr createSemaphore ( std::string aName, CreateDisposition disp = CREATE_OR_REUSE, bool Recursive=false, bool Balking = false ) throw( SemaphoreException ) = 0; /** Destroys a created semaphore from this group. @param AbstractSemaphore pointer of semaphore to destroy @exception SemaphoreException if semaphore does not belong to this group */ virtual void destroySemaphore( AbstractSemaphorePtr ) throw( SemaphoreException ) = 0; protected: // // Constructors // /// Default constructor not allowed SemaphoreGroup( void ) throw( Assertion ); /// Copy constructor not allowed SemaphoreGroup( SemaphoreGroupCref ) throw( Assertion ); // // Operator overloads // /// Assignment operator not allowed SemaphoreGroupRef operator=( SemaphoreGroupCref ) throw( Assertion ); // // Methods for shared control // /** This indirects to CSA for non-private group types @param Int reference to type where 0 = Mutex, 1 = Gateway, 2 = Event, 3-10 reserved. Anything greater than 10 is user defined. */ void setGroupType( IntCref ) const; /** Claim an unused semaphore from the group. This implies that even though the group may be shared, the user has elected to use privately. */ // // Methods for SemaphoreGroup base // /// Internal check for creation visibility inline bool isPrivate( void ) const { return (theGroupCSA == NULLPTR); } protected: private: friend class SemaphoreCommon; /// The group identifier SemaphoreGroupIdentifier theIdentifier; /// The number of semaphores in group Short theNumberOfSemaphores; /// The CSA group descriptor CSAGrpHeaderPtr theGroupCSA; /// The name if created with one, nullptr otherwise Char theName[NAMEBUFFERSIZE]; }; } #endif // if !defined(__SEMAPHOREGROUP_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.9 $ $Date: 2000/08/31 22:52:20 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/GatewaySemaphore.hpp0000664000000000000000000001405207153560644017171 0ustar #if !defined(__GATEWAYSEMAPHORE_HPP) #define __GATEWAYSEMAPHORE_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__SEMAPHORE_HPP) #include #endif #if !defined(__MAP_HPP) #include #endif namespace corelinux { DECLARE_CLASS( GatewaySemaphore ); CORELINUX_MAP ( ThreadIdentifier, Count , std::less, GatewayClient ); /** GatewaySemphore enables a depth of resource indicator. Unlike the tradition boolean semaphore (locked,unlocked), this type assumes a finite number of threads/processes can be granted access up to theResourceMaximum. The semantics regarding semaphore and recursion in relationship to the GatewaySemaphore is as follows:

With recursion enabled:

  • Semaphore::getOwningThreadIdentifier returns the ThreadIdentifier of the thread that pushed the value to zero(0).
  • Semaphore::getRecursionQueueLength returns the depth of recursion by Semaphore::getOwningThreadIdentifier
  • GatewaySemaphore::isAnOwner returns true if the current thread is in the set of threads that own a resource.
  • GatewaySemaphore::getOwnerRecursionQueueLength returns either -1 if the current thread does not control a resource, 0 if the current thread does own a resource, but has not recursed, or returns the depth of recursion for the calling thread.
*/ class GatewaySemaphore : public Semaphore { public: // // Constructors and destructors // /** Default constructor requires the identifier of the semaphore in the semaphore group and a count of resources for control @param SemaphoreGroupPtr The owning SemaphoreGroup @param SemaphoreIdentifier The identifier for the Semaphore from the SemaphoreGroup @param Count number of resources the semaphore controls @param bool true if recursion enabled @param bool true if balking enabled */ GatewaySemaphore ( SemaphoreGroupPtr, SemaphoreIdentifierRef, Count , bool Recursive = false, bool Balking = false ) throw ( NullPointerException ); /// Virtual Destructor virtual ~GatewaySemaphore( void ); // // Accessors // /// Ask if AbstractSemaphore instance is locked virtual bool isLocked( void ); /// Returns true if calling thread owns a resource virtual bool isAnOwner( void ); /** Returns the recursion depth for the calling thread @return Counter -1 if not an owner, 0 if owner but not recursed, or > 0 for recursion depth. */ virtual Counter getOwnerRecursionQueueLength( void ); // // Mutators // /// Request the lock, wait for availability virtual SemaphoreOperationStatus lockWithWait(void) throw( SemaphoreException ); /// Request the lock without waiting virtual SemaphoreOperationStatus lockWithNoWait(void) throw( SemaphoreException ); /// Request the AbstractSemaphore but timeout if not available // virtual SemaphoreOperationStatus lockWithTimeOut( Timer ) // throw(SemaphoreException) = 0; /// Release the lock virtual SemaphoreOperationStatus release(void) throw( SemaphoreException ); protected: // // Constructors // /// Default construct throws assert GatewaySemaphore( void ) throw( Assertion ); /// Copy constructor throws assertion GatewaySemaphore( GatewaySemaphoreCref ) throw( Assertion ); // // Operator overloads // /// Assignment operator throws assertion GatewaySemaphoreRef operator=( GatewaySemaphoreCref ) throw( Assertion ); // // Mutators // SemaphoreOperationStatus lockAndAdd ( ThreadIdentifierRef aTid, Int aFlag = 0 ); private: /// The maximum count value Count theMaxCount; /// Set of threads that hold GatewayClient theClients; }; } #endif // if !defined(__GATEWAYSEMAPHORE_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.4 $ $Date: 2000/08/31 22:52:20 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/EventSemaphoreGroup.hpp0000664000000000000000000003332707204003271017655 0ustar #if !defined(__EVENTSEMAPHOREGROUP_HPP) #define __EVENTSEMAPHOREGROUP_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__SEMAPHOREGROUP_HPP) #include #endif namespace corelinux { DECLARE_CLASS( EventSemaphoreGroup ); /** A EventSemaphoreGroup is an extension to the SemaphoreGroup for creating only EventSemaphore types. Default behavior for creating semaphores via the SemaphoreGroup interface is to create a Event and autolock it. There is no option for not autolocking it. */ class EventSemaphoreGroup : public SemaphoreGroup { public: /** Default constructor creates a private group semaphores with access for OWNER_ALL. Maximum limit of listeners will be set to "infinity" @param aSemCount Number of semaphores in group @param aRightSet access control for group @exception Assertion if aSemCount < 1 @exception SemaphoreException if kernel group create call fails. @see AccessRights */ EventSemaphoreGroup ( Short aSemCount, Int aRightSet = OWNER_ALL ) throw(Assertion,SemaphoreException); /** Constructor to open or create a semaphore group with a specific identifier. Maximum limit of listeners will be set to "infinity". @param aSemCount Number of semaphores in group, this only has meaning used if failOnExist = true @param aGID valid group identifier either through a system call or via another ipc mechanism @param aRightSet Specifies access control for group @param dist indicates how to treat the conditions that the group may meet in the request: @arg CREATE_OR_REUSE indicates that the caller doesn't care @arg FAIL_IF_EXISTS indicates the attempt was for a create @arg FAIL_IF_NOTEXISTS indicates the attempt was for a open @exception Assertion if aCount < 1 @exception SemaphoreException for described states */ EventSemaphoreGroup ( Short aSemCount, SemaphoreGroupIdentifierCref aGID, Int aRightSet, CreateDisposition disp=FAIL_IF_EXISTS ) throw(Assertion,SemaphoreException); /** Constructor to open or create a semaphore group by name. Maximum limit of listeners is set to "infinity" @param aSemCount Short Number of semaphores in group, this only has meaning used if failOnExist = true @param aName pointer to Group name @param aRightSet specifies access control for group @param disp indicates how to treat the conditions that the group may meet in the request: @arg CREATE_OR_REUSE indicates that the caller doesn't care @arg FAIL_IF_EXISTS indicates the attempt was for a create @arg FAIL_IF_NOTEXISTS indicates the attempt was for a open @exception Assertion if aCount < 1 or aCount > system defined maximum for group @exception SemaphoreException for described states */ EventSemaphoreGroup ( Short aSemCount, CharCptr aName, Int aRightSet, CreateDisposition disp=FAIL_IF_EXISTS ) throw(Assertion,SemaphoreException); /// Virtual destructor virtual ~EventSemaphoreGroup( void ); // // Accessors // // // Factory methods // /** Create a default EventSemaphore @return AbstractSemaphore aSem - pointer to created semaphore @exception SemaphoreException if no sems left in group */ virtual AbstractSemaphorePtr createSemaphore( void ) throw( SemaphoreException ) ; /** Create an EventSemaphore and set the maximum number of listeners allowed on this semaphore. @param aLimit maximum number of listeners @return AbstractSemaphore aSem - pointer to created semaphore @exception SemaphoreException if no sems left in group */ virtual AbstractSemaphorePtr createSemaphore( Counter aLimit ) throw( SemaphoreException ) ; /** Create or open (use) a specific EventSemphore @param aIdentifier identifies which semphore id to create or attempt to use @param disp indicates how to treat the conditions that the group may meet in the request: @arg CREATE_OR_REUSE indicates that the caller doesn't care @arg FAIL_IF_EXISTS indicates the attempt was for a create @arg FAIL_IF_NOTEXISTS indicates the attempt was for a open @param Recursive to allow same thread multiple locks @param Recursive allow lock to recurse @param Balking to allow the semaphore to balk @return AbstractSemaphore aSem - pointer to created or opened semaphore @exception SemaphoreException if the disposition disagrees with the semaphore state, or if it is a erroneous identifier */ virtual AbstractSemaphorePtr createSemaphore ( SemaphoreIdentifierRef aIdentifier, CreateDisposition disp = CREATE_OR_REUSE, bool Recursive = false, bool Balking = false ) throw( SemaphoreException ) ; /** Create or open (use) a specific EventSemphore and set the maximum number of listeners to the specified count. @param aIdentifier identifies which semphore id to create or attempt to use @param aLimit maximum number of listeners for EventSemaphore @param disp indicates how to treat the conditions that the group may meet in the request: @arg CREATE_OR_REUSE indicates that the caller doesn't care @arg FAIL_IF_EXISTS indicates the attempt was for a create @arg FAIL_IF_NOTEXISTS indicates the attempt was for a open @param Recursive to allow same thread multiple locks @param Balking to allow the semaphore to balk @return AbstractSemaphore aSem - pointer to created or opened semaphore @exception SemaphoreException if the disposition disagrees with the semaphore state, or if it is a erroneous identifier */ virtual AbstractSemaphorePtr createSemaphore ( SemaphoreIdentifierRef aIdentifier, Counter aLimit, CreateDisposition disp = CREATE_OR_REUSE, bool Recursive = false, bool Balking = false ) throw( SemaphoreException ); /** Create or open (use) a specific EventSemaphore identified by its name @param aName identifies which semphore id to create or attempt to use @param disp indicates how to treat the conditions that the group may meet in the request: @arg CREATE_OR_REUSE indicates that the caller doesn't care @arg FAIL_IF_EXISTS indicates the attempt was for a create @arg FAIL_IF_NOTEXISTS indicates the attempt was for a open @param Recursive to allow same thread multiple locks @param Balking to allow the semaphore to balk @return AbstractSemaphore aSem - pointer to created or opened semaphore @exception SemaphoreException if the disposition disagrees with the semaphore state, or if it is a erroneous identifier */ virtual AbstractSemaphorePtr createSemaphore ( std::string aName, CreateDisposition disp = CREATE_OR_REUSE, bool Recursive=false, bool Balking = false ) throw( SemaphoreException ) ; /** Create or open (use) a specific EventSemaphore @param aName identifies which semphore id to create or attempt to use @param aLimit maximum number of listeners for EventSemaphore @param disp indicates how to treat the conditions that the group may meet in the request: @arg CREATE_OR_REUSE indicates that the caller doesn't care @arg FAIL_IF_EXISTS indicates the attempt was for a create @arg FAIL_IF_NOTEXISTS indicates the attempt was for a open @param Recursive to allow same thread multiple locks @param Balking to allow the semaphore to balk @return AbstractSemaphore aSem - pointer to created or opened semaphore @exception SemaphoreException if the disposition disagrees with the semaphore state, or if it is a erroneous identifier */ virtual AbstractSemaphorePtr createSemaphore ( std::string aName, Counter aLimit, CreateDisposition disp = CREATE_OR_REUSE, bool Recursive=false, bool Balking = false ) throw( SemaphoreException ) ; /** Destroys a previously created EventSemaphore @param aPtr pointer of semaphore to destroy @exception SemaphoreException if semaphore does not belong to this group or if already destroyed. */ virtual void destroySemaphore( AbstractSemaphorePtr aPtr ) throw( SemaphoreException ) ; protected: // // Constructors // /// Default constructor not allowed EventSemaphoreGroup( void ) throw( Assertion ); /// Copy constructor not allowed EventSemaphoreGroup( EventSemaphoreGroupCref ) throw( Assertion ); // // Operator overloadings // // Assignment operator not allowed EventSemaphoreGroupRef operator=( EventSemaphoreGroupCref ) throw( Assertion ); // // EventGroup methods // // Protected method for resolving event between CSA and local AbstractSemaphorePtr resolveSemaphore ( SemaphoreIdentifierRef aIdentifier, Short aSemId, CreateDisposition aDisp, bool aRecurse, bool aBalk, Counter aMaxValue = 1 ) throw( SemaphoreException ) ; private: /// Local share counts SemaphoreShares theUsedMap; }; } #endif // if !defined(__EVENTSEMAPHOREGROUP_HPP) /* Common rcs information do not modify $Author: dulimart $ $Revision: 1.6 $ $Date: 2000/11/13 15:20:25 $ $Locker: $ */ libcorelinux-0.4.32/corelinux/Common.hpp0000664000000000000000000001252610771020371015144 0ustar #if !defined (__COMMON_HPP) #define __COMMON_HPP /* CoreLinux++ Copyright (C) 1999 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** Common header file to libcorelinux. This header declares many helpful macros to enhance the readability of user object declaration and use. This header also pre-includes a number of core class declarations. */ // Used by the component headers to determine // that they are indeed being included by // Common.hpp #define IN_COMMON_HPP // // Some standard information // // TEXT identifies that the following text // string may be either UNICODE or ANSI // // TEXT("The quick brown fox jumped over the lazy dog!") // // will make the string UNICODE charactes if __UNICODE is defined // and ANSI characters if not. #if defined( __UNICODE ) #if defined(__GNUC__) #include #define _STDTEXT(text) L##text #else #define _STDTEXT(text) text #endif #else #define _STDTEXT(text) text #endif #define TEXT(text) _STDTEXT(text) #define __STDFILE__ TEXT( __FILE__ ) /** LOCATION is a shorthand for __FILE__, __LINE__. It is used mainly in exceptions i.e. throw Exception( "some reason", LOCATION ); */ #define LOCATION __STDFILE__, __LINE__ /** IGNORE_RETURN is an indicator that the return value for a function is ignored. i.e IGNORE_RETURN getSomething( ... ); Eliminates a lint warning. */ #define IGNORE_RETURN (void) /** Declare a new type and its pointer, const pointer, reference, and const reference types. For example DECLARE_TYPE( Dword, VeryLongTime ); @param mydecl The base type @param mytype The new type */ #define DECLARE_TYPE( mydecl, mytype ) \ typedef mydecl mytype; \ typedef mytype * mytype ## Ptr; \ typedef const mytype * mytype ## Cptr; \ typedef mytype & mytype ## Ref; \ typedef const mytype & mytype ## Cref; /** Declare class , class pointer , const pointer, class reference and const class reference types for classes. For example DECLARE_CLASS( Exception ); @param tag The class being declared */ #define DECLARE_CLASS( tag ) \ class tag; \ typedef tag * tag ## Ptr; \ typedef const tag * tag ## Cptr; \ typedef tag & tag ## Ref; \ typedef const tag & tag ## Cref; /// Define corelinux namespace macro #define CORELINUX( tag ) \ corelinux::tag /// Forward reference the various common classes. namespace corelinux { DECLARE_CLASS( CoreLinuxObject ); // Base class DECLARE_CLASS( AbstractString ); // Dispatching virtual DECLARE_CLASS( StringUtf8 ); // Utf8 Implementation DECLARE_CLASS( Exception ); // Basic Exception *temporary!!! DECLARE_CLASS( NullPointerException ); // NullPointerException DECLARE_CLASS( Assertion ); // Thank you B. Meyers DECLARE_CLASS( Synchronized ); // DECLARE_CLASS( Thread ); // DECLARE_CLASS( SemaphoreGroup ); // DECLARE_CLASS( AbstractInteger ); // DECLARE_CLASS( AbstractReal ); // } #include // size_t, wchar_t, NULL #include // Non class types. Must be the first // include file in this module. #include // Size and value limits for the types in // types.hpp #include // Common class types. #include // Class Exception #include // Base support class #include // Base Abstraction *temp!!! #include // CoreLinux++ Default String #include // NullPointerException #include // Class Assertion #include // General Access Settings #include // Base Identifier #include // Various identifiers #include #include #include //#include //#include //#include //#include //#include // Pre-included collections (STL) #if defined(__INCLUDE_COLLECTIONS) #include #include #include #include #include #include #include #endif // Do not add code after the next line. #undef IN_COMMON_HPP #endif // !defined __COMMON_HPP /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.7 $ $Date: 2000/08/31 22:52:20 $ $Locker: $ */ libcorelinux-0.4.32/README0000664000000000000000000001202307175340734012057 0ustar ====================================== CoreLinux++ Source Distribution 0.4.30 ====================================== 0. Pre-pre-amble 1. Pre-amble 1.1 Source Code 1.2 Documentation 2. Running 2.1 Best places to start 2.2 Best places to go next 3. Feedback and Contribution ================================================= 0. Pre-pre-amble With the Design Patterns complete, focus is back where we start to justify the name of the library - Linux! That being said, be forwarned, this release is primarily a documentation and packaging enhancement. We have added RPM and DEB packages to the downloads. In addition, welcome to Hans Dulimarta who's immediate contribution was in cleaning up some of the documentation for consistency and correctness. ********** WARNING WARNING WARNING ************************************* Although an attempt has been made to preserve the interfaces, some have changed because of the recent work, and problems found with some C++ standard libraries during initialization. In most places a std::string argument has been replaced with CharCptr. Other stuff ----------- New web design, take a look http://corelinux.sourceforge.net Documentation (Class reference, Analysis, Design, Developers Guide) is packaged seperate from the source. libcorelinux++-x.y.z.tar.gz - Contains all source libcorelinux-x.y.z-1.i386.rpm - Binary RedHat distribution libcorelinux_x.y.z-1.i386.deb - Binary Debian distribution libcorelinux-dev-x.y.z-1.i386.rpm - Developers RedHat distribution libcorelinux-dev_x.y.z-1.i386.deb - Developers Debian distribution CoreLinux++Doc-x.y.z.tex.tar.gz - Contains TeX docs and classref CoreLinux++Doc-x.y.z.pdf.tar.gz - Contains PDF docs and classref CoreLinux++Doc-x.y.z.dvi.tar.gz - Contains DVI docs and classref ********************************************************** * Read INSTALL Read INSTALL Read INSTALL Read INSTALL!!! * ********************************************************** We have moved the build process to the familiar automake, autoconf, libtool. While tested, it is subject to some build problems we didn't anticipate. Your feedback is helpful. And, oh yes, READ INSTALL!!! ================================================= 1. Pre-amble 1.1 Source Code --------------- CoreLinux++ Copyright (C) 1999, 2000 CoreLinux++ Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. see ./COPYING.LIB 1.2 Documentation ----------------- All CoreLinux++ is free documentation and may be distributed only subject to the terms and conditions set forth in the Open Publication License. see ./COPYING.DOC ================================================= 2. The Rest 2.1 Best places to start ------------------------ A. Use your web-browser and load the develop.html file for the CoreLinux++ Developers Guide. Read it! B. Follow all documentation links for the coding and design documentation. C. run make from this directory D. Look at the source code, makefiles, examples, etc. E. Refer to the ChangeLog for history of changes between releases. 2.2 Best places to go next -------------------------- This is probably the only time you will see a 'goto' in CoreLinux++, but goto 3.Feedback and Contribution ================================================= 3. Feedback and Contribution All feedback (discussions, defect reporting) except flames go to: http://corelinux.sourceforge.net follow the project links to the project page. There you will find forums and defect tracking tools. If you want to participate in the CoreLinux++ project, we are looking for consortium members to: Artful stuff ------------ Create a CoreLinux++ image Create a better website Thoughtful stuff ---------------- Contribute and/or discuss and/or maintain the C++ Coding Standards and Guidelines ditto for the Object Oriented Analysis and Design Standards and Guidelines, and process documentation. More Thoughtful stuff --------------------- Put requirements in for libcorelinux++, libcoreframework++, and CoreLinux++ developer utilities forums. Harder working stuff -------------------- Participate in the Analysis and Design of libcorelinux++ and libcoreframework++ and CoreLinux++ utilities. Best for last ------------- Become a developer for the implementation after the design. contact me frankc@users.sourceforge.net libcorelinux-0.4.32/configure0000775000000000000000000240171007743170765013123 0ustar #! /bin/sh # From configure.in Id: configure.in. # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.57. # # Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 # Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi # Support unset when possible. if (FOO=FOO; unset FOO) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # Work around bugs in pre-3.0 UWIN ksh. $as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else as_mkdir_p=false fi as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" # Sed expression to map a string onto a valid variable name. as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','` ;; esac echo=${ECHO-echo} if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then # Yippee, $echo works! : else # Restart under the correct shell. exec $SHELL "$0" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null && echo_test_string="`eval $cmd`" && (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null then break fi done fi if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$echo" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. echo='print -r' elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} else # Try using printf. echo='printf %s\n' if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL echo="$CONFIG_SHELL $0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$CONFIG_SHELL $0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "$0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} else # Oops. We lost completely, so just stick with echo. echo=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. ECHO=$echo if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" fi tagnames=${tagnames+${tagnames},}CXX tagnames=${tagnames+${tagnames},}F77 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` exec 6>&1 # # Initializations. # ac_default_prefix=/usr/local ac_config_libobj_dir=. cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Maximum number of lines to put in a shell here document. # This variable seems obsolete. It should probably be removed, and # only ac_max_sed_lines should be used. : ${ac_max_here_lines=38} # Identity of this package. PACKAGE_NAME= PACKAGE_TARNAME= PACKAGE_VERSION= PACKAGE_STRING= PACKAGE_BUGREPORT= ac_unique_file="Makefile.am" # Factoring default headers for most tests. ac_includes_default="\ #include #if HAVE_SYS_TYPES_H # include #endif #if HAVE_SYS_STAT_H # include #endif #if STDC_HEADERS # include # include #else # if HAVE_STDLIB_H # include # endif #endif #if HAVE_STRING_H # if !STDC_HEADERS && HAVE_MEMORY_H # include # endif # include #endif #if HAVE_STRINGS_H # include #endif #if HAVE_INTTYPES_H # include #else # if HAVE_STDINT_H # include # endif #endif #if HAVE_UNISTD_H # include #endif" ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CORELINUX_MAJOR_VERSION CORELINUX_MINOR_VERSION CORELINUX_MICRO_VERSION CORELINUX_VERSION LIBCORELINUX_SO_VERSION LIBEXMPLSUPP_SO_VERSION INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM AWK SET_MAKE am__leading_dot CXX CXXFLAGS LDFLAGS CPPFLAGS ac_ct_CXX EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE LN_S RANLIB ac_ct_RANLIB build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS ac_ct_CC CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE EGREP ECHO AR ac_ct_AR CPP CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. ac_init_help= ac_init_version=false # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datadir='${prefix}/share' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' libdir='${exec_prefix}/lib' includedir='${prefix}/include' oldincludedir='/usr/include' infodir='${prefix}/info' mandir='${prefix}/man' ac_prev= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval "$ac_prev=\$ac_option" ac_prev= continue fi ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_option in -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad | --data | --dat | --da) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ | --da=*) datadir=$ac_optarg ;; -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` eval "enable_$ac_feature=no" ;; -enable-* | --enable-*) ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "enable_$ac_feature='$ac_optarg'" ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst \ | --locals | --local | --loca | --loc | --lo) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* \ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package| sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "with_$ac_package='$ac_optarg'" ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/-/_/g'` eval "with_$ac_package=no" ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` eval "$ac_envvar='$ac_optarg'" export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute paths. for ac_var in exec_prefix prefix do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* | NONE | '' ) ;; *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac done # Be sure to have absolute paths. for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ localstatedir libdir includedir oldincludedir infodir mandir do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* ) ;; *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then its parent. ac_confdir=`(dirname "$0") 2>/dev/null || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$0" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` srcdir=$ac_confdir if test ! -r $srcdir/$ac_unique_file; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r $srcdir/$ac_unique_file; then if test "$ac_srcdir_defaulted" = yes; then { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 { (exit 1); exit 1; }; } else { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi fi (cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 { (exit 1); exit 1; }; } srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` ac_env_build_alias_set=${build_alias+set} ac_env_build_alias_value=$build_alias ac_cv_env_build_alias_set=${build_alias+set} ac_cv_env_build_alias_value=$build_alias ac_env_host_alias_set=${host_alias+set} ac_env_host_alias_value=$host_alias ac_cv_env_host_alias_set=${host_alias+set} ac_cv_env_host_alias_value=$host_alias ac_env_target_alias_set=${target_alias+set} ac_env_target_alias_value=$target_alias ac_cv_env_target_alias_set=${target_alias+set} ac_cv_env_target_alias_value=$target_alias ac_env_CXX_set=${CXX+set} ac_env_CXX_value=$CXX ac_cv_env_CXX_set=${CXX+set} ac_cv_env_CXX_value=$CXX ac_env_CXXFLAGS_set=${CXXFLAGS+set} ac_env_CXXFLAGS_value=$CXXFLAGS ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set} ac_cv_env_CXXFLAGS_value=$CXXFLAGS ac_env_LDFLAGS_set=${LDFLAGS+set} ac_env_LDFLAGS_value=$LDFLAGS ac_cv_env_LDFLAGS_set=${LDFLAGS+set} ac_cv_env_LDFLAGS_value=$LDFLAGS ac_env_CPPFLAGS_set=${CPPFLAGS+set} ac_env_CPPFLAGS_value=$CPPFLAGS ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} ac_cv_env_CPPFLAGS_value=$CPPFLAGS ac_env_CC_set=${CC+set} ac_env_CC_value=$CC ac_cv_env_CC_set=${CC+set} ac_cv_env_CC_value=$CC ac_env_CFLAGS_set=${CFLAGS+set} ac_env_CFLAGS_value=$CFLAGS ac_cv_env_CFLAGS_set=${CFLAGS+set} ac_cv_env_CFLAGS_value=$CFLAGS ac_env_CPP_set=${CPP+set} ac_env_CPP_value=$CPP ac_cv_env_CPP_set=${CPP+set} ac_cv_env_CPP_value=$CPP ac_env_CXXCPP_set=${CXXCPP+set} ac_env_CXXCPP_value=$CXXCPP ac_cv_env_CXXCPP_set=${CXXCPP+set} ac_cv_env_CXXCPP_value=$CXXCPP ac_env_F77_set=${F77+set} ac_env_F77_value=$F77 ac_cv_env_F77_set=${F77+set} ac_cv_env_F77_value=$F77 ac_env_FFLAGS_set=${FFLAGS+set} ac_env_FFLAGS_value=$FFLAGS ac_cv_env_FFLAGS_set=${FFLAGS+set} ac_cv_env_FFLAGS_value=$FFLAGS # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures this package to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] _ACEOF cat <<_ACEOF Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --datadir=DIR read-only architecture-independent data [PREFIX/share] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --infodir=DIR info documentation [PREFIX/info] --mandir=DIR man documentation [PREFIX/man] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then cat <<\_ACEOF Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-dependency-tracking Speeds up one-time builds --enable-dependency-tracking Do not reject slow dependency extractors --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-pic try to use only PIC/non-PIC objects [default=use both] --with-tags[=TAGS] include additional configurations [automatic] Some influential environment variables: CXX C++ compiler command CXXFLAGS C++ compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CC C compiler command CFLAGS C compiler flags CPP C preprocessor CXXCPP C++ preprocessor F77 Fortran 77 compiler command FFLAGS Fortran 77 compiler flags Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. _ACEOF fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. ac_popdir=`pwd` for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d $ac_dir || continue ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be # absolute. ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` cd $ac_dir # Check for guested configure; otherwise get Cygnus style configure. if test -f $ac_srcdir/configure.gnu; then echo $SHELL $ac_srcdir/configure.gnu --help=recursive elif test -f $ac_srcdir/configure; then echo $SHELL $ac_srcdir/configure --help=recursive elif test -f $ac_srcdir/configure.ac || test -f $ac_srcdir/configure.in; then echo $ac_configure --help else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi cd "$ac_popdir" done fi test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit 0 fi exec 5>config.log cat >&5 <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was generated by GNU Autoconf 2.57. Invocation command line was $ $0 $@ _ACEOF { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` hostinfo = `(hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. echo "PATH: $as_dir" done } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_sep= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" # Get rid of the leading space. ac_sep=" " ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Be sure not to use single quotes in there, as some shells, # such as our DU 5.0 friend, will then `close' the trap. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, { (set) 2>&1 | case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in *ac_space=\ *) sed -n \ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" ;; *) sed -n \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=$`echo $ac_var` echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------- ## ## Output files. ## ## ------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=$`echo $ac_var` echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo sed "/^$/d" confdefs.h | sort echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 rm -f core *.core && rm -rf conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -rf conftest* confdefs.h # AIX cpp loses on an empty file, so make sure it contains at least a newline. echo >confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -z "$CONFIG_SITE"; then if test "x$prefix" != xNONE; then CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" else CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . $cache_file;; *) . ./$cache_file;; esac fi else { echo "$as_me:$LINENO: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in `(set) 2>&1 | sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val="\$ac_cv_env_${ac_var}_value" eval ac_new_val="\$ac_env_${ac_var}_value" case $ac_old_set,$ac_new_set in set,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CORELINUX_MAJOR_VERSION=0 CORELINUX_MINOR_VERSION=4 CORELINUX_MICRO_VERSION=32 CORELINUX_VERSION=$CORELINUX_MAJOR_VERSION.$CORELINUX_MINOR_VERSION.$CORELINUX_MICRO_VERSION # # +1 : ? : +1 == new interface that does not break old one # +1 : ? : 0 == new interface that breaks old one # ? : ? : 0 == no new interfaces, but breaks apps # ? :+1 : ? == just some internal changes, nothing breaks but might work # better # CURRENT: REVISION : AGE LIBCORELINUX_SO_VERSION=2:0:1 LIBEXMPLSUPP_SO_VERSION=1:0:0 PACKAGE=libcorelinux VERSION=$CORELINUX_VERSION ac_aux_dir= for ac_dir in admin $srcdir/admin; do if test -f $ac_dir/install-sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f $ac_dir/install.sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f $ac_dir/shtool; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in admin $srcdir/admin" >&5 echo "$as_me: error: cannot find install-sh or install.sh in admin $srcdir/admin" >&2;} { (exit 1); exit 1; }; } fi ac_config_guess="$SHELL $ac_aux_dir/config.guess" ac_config_sub="$SHELL $ac_aux_dir/config.sub" ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. # init automake am__api_version="1.7" # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. We don't cache a # path for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the path is relative. INSTALL=$ac_install_sh fi fi echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6 # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo "$as_me:$LINENO: checking whether build environment is sane" >&5 echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6 # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} { (exit 1); exit 1; }; } fi test "$2" = conftest.file ) then # Ok. : else { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! Check your system clock" >&5 echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 test "$program_prefix" != NONE && program_transform_name="s,^,$program_prefix,;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s,\$,$program_suffix,;$program_transform_name" # Double any \ or $. echo might interpret backslashes. # By default was `s,x,x', remove it if useless. cat <<\_ACEOF >conftest.sed s/[\\$]/&&/g;s/;s,x,x,$// _ACEOF program_transform_name=`echo $program_transform_name | sed -f conftest.sed` rm conftest.sed # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_AWK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then echo "$as_me:$LINENO: result: $AWK" >&5 echo "${ECHO_T}$AWK" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$AWK" && break done echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF all: @echo 'ac_maketemp="$(MAKE)"' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` if test -n "$ac_maketemp"; then eval ac_cv_prog_make_${ac_make}_set=yes else eval ac_cv_prog_make_${ac_make}_set=no fi rm -f conftest.make fi if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 SET_MAKE= else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null # test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE=${PACKAGE} VERSION=${VERSION} cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} AMTAR=${AMTAR-"${am_missing_run}tar"} install_sh=${install_sh-"$am_aux_dir/install-sh"} # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi STRIP=$ac_ct_STRIP else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" # We need awk for the "check" target. The system "awk" is bad on # some platforms. ac_config_headers="$ac_config_headers config.h" ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then echo "$as_me:$LINENO: result: $CXX" >&5 echo "${ECHO_T}$CXX" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 echo "${ECHO_T}$ac_ct_CXX" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_CXX" && break done test -n "$ac_ct_CXX" || ac_ct_CXX="g++" CXX=$ac_ct_CXX fi # Provide some information about the compiler. echo "$as_me:$LINENO:" \ "checking for C++ compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. echo "$as_me:$LINENO: checking for C++ compiler default output" >&5 echo $ECHO_N "checking for C++ compiler default output... $ECHO_C" >&6 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 (eval $ac_link_default) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Find the output, starting from the most likely. This scheme is # not robust to junk in `.', hence go to wildcards (a.*) only as a last # resort. # Be careful to initialize this variable, since it used to be cached. # Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. ac_cv_exeext= # b.out is created by i960 compilers. for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; conftest.$ac_ext ) # This is the source file. ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` # FIXME: I believe we export ac_cv_exeext for Libtool, # but it would be cool to find out if it's true. Does anybody # maintain Libtool? --akim. export ac_cv_exeext break;; * ) break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C++ compiler cannot create executables See \`config.log' for more details." >&5 echo "$as_me: error: C++ compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext echo "$as_me:$LINENO: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6 # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:$LINENO: checking whether the C++ compiler works" >&5 echo $ECHO_N "checking whether the C++ compiler works... $ECHO_C" >&6 # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C++ compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C++ compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi fi fi echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6 echo "$as_me:$LINENO: checking for suffix of executables" >&5 echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` export ac_cv_exeext break;; * ) break;; esac done else { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6 rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT echo "$as_me:$LINENO: checking for suffix of object files" >&5 echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6 OBJEXT=$ac_cv_objext ac_objext=$OBJEXT echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6 if test "${ac_cv_cxx_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6 GXX=`test $ac_compiler_gnu = yes && echo yes` ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS CXXFLAGS="-g" echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cxx_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cxx_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_cxx_g=no fi rm -f conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6 if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi for ac_declaration in \ '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ 'extern "C" void exit (int);' \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration #include int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 continue fi rm -f conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest.$ac_ext done rm -f conftest* if test -n "$ac_declaration"; then echo '#ifdef __cplusplus' >>confdefs.h echo $ac_declaration >>confdefs.h echo '#endif' >>confdefs.h fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6 am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi echo "$as_me:$LINENO: result: $_am_result" >&5 echo "${ECHO_T}$_am_result" >&6 rm -f confinc confmf # Check whether --enable-dependency-tracking or --disable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then enableval="$enable_dependency_tracking" fi; if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CXX" am_compiler_list= echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c : > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # (even with -Werror). So we grep stderr for any message # that says an option was ignored. if grep 'ignoring option' conftest.err >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6 CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi CORELINUX_CHECK_COMPILERS echo "$as_me:$LINENO: checking whether ln -s works" >&5 echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6 LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no, using $LN_S" >&5 echo "${ECHO_T}no, using $LN_S" >&6 fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then echo "$as_me:$LINENO: result: $RANLIB" >&5 echo "${ECHO_T}$RANLIB" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 echo "${ECHO_T}$ac_ct_RANLIB" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi RANLIB=$ac_ct_RANLIB else RANLIB="$ac_cv_prog_RANLIB" fi echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF all: @echo 'ac_maketemp="$(MAKE)"' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` if test -n "$ac_maketemp"; then eval ac_cv_prog_make_${ac_make}_set=yes else eval ac_cv_prog_make_${ac_make}_set=no fi rm -f conftest.make fi if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 SET_MAKE= else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 SET_MAKE="MAKE=${MAKE-make}" fi # check for install # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. We don't cache a # path for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the path is relative. INSTALL=$ac_install_sh fi fi echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6 # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' # Turn off shared libraries during beta-testing, since they # make the build process take too long. #AC_DISABLE_SHARED # Check whether --enable-shared or --disable-shared was given. if test "${enable_shared+set}" = set; then enableval="$enable_shared" p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi; # Check whether --enable-static or --disable-static was given. if test "${enable_static+set}" = set; then enableval="$enable_static" p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=yes fi; # Check whether --enable-fast-install or --disable-fast-install was given. if test "${enable_fast_install+set}" = set; then enableval="$enable_fast_install" p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi; # Make sure we can run config.sub. $ac_config_sub sun4 >/dev/null 2>&1 || { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5 echo "$as_me: error: cannot run $ac_config_sub" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking build system type" >&5 echo $ECHO_N "checking build system type... $ECHO_C" >&6 if test "${ac_cv_build+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_build_alias=$build_alias test -z "$ac_cv_build_alias" && ac_cv_build_alias=`$ac_config_guess` test -z "$ac_cv_build_alias" && { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: $ac_cv_build" >&5 echo "${ECHO_T}$ac_cv_build" >&6 build=$ac_cv_build build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$as_me:$LINENO: checking host system type" >&5 echo $ECHO_N "checking host system type... $ECHO_C" >&6 if test "${ac_cv_host+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_host_alias=$host_alias test -z "$ac_cv_host_alias" && ac_cv_host_alias=$ac_cv_build_alias ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: $ac_cv_host" >&5 echo "${ECHO_T}$ac_cv_host" >&6 host=$ac_cv_host host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi CC=$ac_ct_CC else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi CC=$ac_ct_CC else CC="$ac_cv_prog_CC" fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_CC" && break done CC=$ac_ct_CC fi fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO:" \ "checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS CFLAGS="-g" echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_cc_g=no fi rm -f conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 if test "${ac_cv_prog_cc_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_stdc=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF # Don't try gcc -ansi; that turns off useful extensions and # breaks some systems' header files. # AIX -qlanglvl=ansi # Ultrix and OSF/1 -std1 # HP-UX 10.20 and later -Ae # HP-UX older versions -Aa -D_HPUX_SOURCE # SVR4 -Xc -D__EXTENSIONS__ for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_stdc=$ac_arg break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext done rm -f conftest.$ac_ext conftest.$ac_objext CC=$ac_save_CC fi case "x$ac_cv_prog_cc_stdc" in x|xno) echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6 ;; *) echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 CC="$CC $ac_cv_prog_cc_stdc" ;; esac # Some people use a C++ compiler to compile C. Since we use `exit', # in C++ we need to declare it. In case someone uses the same compiler # for both compiling C and C++ we need to have the C++ compiler decide # the declaration of exit, since it's the most demanding environment. cat >conftest.$ac_ext <<_ACEOF #ifndef __cplusplus choke me #endif _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then for ac_declaration in \ '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ 'extern "C" void exit (int);' \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration #include int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 continue fi rm -f conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest.$ac_ext done rm -f conftest* if test -n "$ac_declaration"; then echo '#ifdef __cplusplus' >>confdefs.h echo $ac_declaration >>confdefs.h echo '#endif' >>confdefs.h fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c : > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # (even with -Werror). So we grep stderr for any message # that says an option was ignored. if grep 'ignoring option' conftest.err >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6 CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6 if test "${lt_cv_path_SED+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && break cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done SED=$lt_cv_path_SED fi echo "$as_me:$LINENO: result: $SED" >&5 echo "${ECHO_T}$SED" >&6 echo "$as_me:$LINENO: checking for egrep" >&5 echo $ECHO_N "checking for egrep... $ECHO_C" >&6 if test "${ac_cv_prog_egrep+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if echo a | (grep -E '(a|b)') >/dev/null 2>&1 then ac_cv_prog_egrep='grep -E' else ac_cv_prog_egrep='egrep' fi fi echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 echo "${ECHO_T}$ac_cv_prog_egrep" >&6 EGREP=$ac_cv_prog_egrep # Check whether --with-gnu-ld or --without-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval="$with_gnu_ld" test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi; ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo "$as_me:$LINENO: checking for ld used by $CC" >&5 echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 else echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 fi if test "${lt_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 echo "${ECHO_T}$LD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 if test "${lt_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU ld's only accept -v. case `$LD -v 2>&1 &5 echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 with_gnu_ld=$lt_cv_prog_gnu_ld echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6 if test "${lt_cv_ld_reload_flag+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_ld_reload_flag='-r' fi echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6 reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6 if test "${lt_cv_path_NM+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/${ac_tool_prefix}nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac esac fi done IFS="$lt_save_ifs" test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm fi fi echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 echo "${ECHO_T}$lt_cv_path_NM" >&6 NM="$lt_cv_path_NM" echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5 echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6 if test "${lt_cv_deplibs_check_method+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix4* | aix5*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi4*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin* | mingw* | pw32*) # win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='win32_libid' ;; darwin* | rhapsody*) # this will be overwritten by pass_all, but leave it in just in case lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library' lt_cv_file_magic_cmd='/usr/bin/file -L' case "$host_os" in rhapsody* | darwin1.[012]) lt_cv_file_magic_test_file=`/System/Library/Frameworks/System.framework/System` ;; *) # Darwin 1.3 on lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib' ;; esac lt_cv_deplibs_check_method=pass_all ;; freebsd* | kfreebsd*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case "$host_cpu" in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; irix5* | irix6* | nonstopux*) case $host_os in irix5* | nonstopux*) # this will be overridden with pass_all, but let us keep it just in case lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" ;; *) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac # this will be overridden with pass_all, but let us keep it just in case lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1" ;; esac lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*` lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux*) # linux always uses pass_all now, this code is the old way (tm) case $host_cpu in alpha* | hppa* | i*86 | ia64* | m68* | mips* | powerpc* | sparc* | s390* | sh*) lt_cv_deplibs_check_method=pass_all ;; *) # glibc up to 2.1.1 does not perform some relocations on ARM lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; esac lt_cv_deplibs_check_method=pass_all lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; nto-qnx*) lt_cv_deplibs_check_method=unknown ;; openbsd*) lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object' else lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library' fi ;; osf3* | osf4* | osf5*) # this will be overridden with pass_all, but let us keep it just in case lt_cv_deplibs_check_method='file_magic COFF format alpha shared library' lt_cv_file_magic_test_file=/shlib/libc.so lt_cv_deplibs_check_method=pass_all ;; sco3.2v5*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all lt_cv_file_magic_test_file=/lib/libc.so ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; esac ;; sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; esac fi echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6 file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # Allow CC to be a program name with arguments. compiler=$CC # Check whether --enable-libtool-lock or --disable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then enableval="$enable_libtool_lock" fi; test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line 4181 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case "`/usr/bin/file conftest.o`" in *32-bit*) case $host in x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6 if test "${lt_cv_cc_needs_belf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then lt_cv_cc_needs_belf=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 lt_cv_cc_needs_belf=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6 if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; esac need_locks="$enable_libtool_lock" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$CPP" >&6 ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } _ACEOF rm -f conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6 if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc in yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ( cat <<\_ASBOX ## ------------------------------------ ## ## Report this to bug-autoconf@gnu.org. ## ## ------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ( cat <<\_ASBOX ## ------------------------------------ ## ## Report this to bug-autoconf@gnu.org. ## ## ------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6 if test -z "$CXXCPP"; then if test "${ac_cv_prog_CXXCPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi echo "$as_me:$LINENO: result: $CXXCPP" >&5 echo "${ECHO_T}$CXXCPP" >&6 ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_cxx_preproc_warn_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in g77 f77 xlf frt pgf77 fl32 af77 fort77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 lf95 g95 do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$F77"; then ac_cv_prog_F77="$F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_F77="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi F77=$ac_cv_prog_F77 if test -n "$F77"; then echo "$as_me:$LINENO: result: $F77" >&5 echo "${ECHO_T}$F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$F77" && break done fi if test -z "$F77"; then ac_ct_F77=$F77 for ac_prog in g77 f77 xlf frt pgf77 fl32 af77 fort77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 lf95 g95 do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_F77"; then ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_F77="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_F77=$ac_cv_prog_ac_ct_F77 if test -n "$ac_ct_F77"; then echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 echo "${ECHO_T}$ac_ct_F77" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_F77" && break done F77=$ac_ct_F77 fi # Provide some information about the compiler. echo "$as_me:5256:" \ "checking for Fortran 77 compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } # If we don't use `.F' as extension, the preprocessor is not run on the # input file. ac_save_ext=$ac_ext ac_ext=F echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5 echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6 if test "${ac_cv_f77_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF program main #ifndef __GNUC__ choke me #endif end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.$ac_objext conftest.$ac_ext ac_cv_f77_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6 ac_ext=$ac_save_ext G77=`test $ac_compiler_gnu = yes && echo yes` ac_test_FFLAGS=${FFLAGS+set} ac_save_FFLAGS=$FFLAGS FFLAGS= echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5 echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_f77_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else FFLAGS=-g cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_f77_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_f77_g=no fi rm -f conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5 echo "${ECHO_T}$ac_cv_prog_f77_g" >&6 if test "$ac_test_FFLAGS" = set; then FFLAGS=$ac_save_FFLAGS elif test $ac_cv_prog_f77_g = yes; then if test "$G77" = yes; then FFLAGS="-g -O2" else FFLAGS="-g" fi else if test "$G77" = yes; then FFLAGS="-O2" else FFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! # find the maximum length of command line arguments echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6 if test "${lt_cv_sys_max_cmd_len+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else i=0 testring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; *) # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while (test "X"`$CONFIG_SHELL $0 --fallback-echo "X$testring" 2>/dev/null` \ = "XX$testring") >/dev/null 2>&1 && new_result=`expr "X$testring" : ".*" 2>&1` && lt_cv_sys_max_cmd_len=$new_result && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` testring=$testring$testring done testring= # Add a significant safety factor because C++ compilers can tack on massive # amounts of additional arguments before passing them to the linker. # It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6 else echo "$as_me:$LINENO: result: none" >&5 echo "${ECHO_T}none" >&6 fi # Check for command to grab the raw symbol name followed by C symbol from nm. echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6 if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Transform the above into a raw symbol and a C symbol. symxfrm='\1 \2\3 \3' # Transform an extracted symbol line into a proper C declaration lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32*) symcode='[ABCDGISTW]' ;; hpux*) # Its linker distinguishes data from code symbols if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris* | sysv5*) symcode='[BDRT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Try without a prefix undercore, then with it. for ac_symprfx in "" "_"; do # Write the raw and C identifiers. lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Now try to grab the symbols. nlist=conftest.nm if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if grep ' nm_test_var$' "$nlist" >/dev/null; then if grep ' nm_test_func$' "$nlist" >/dev/null; then cat < conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' cat <> conftest.$ac_ext #if defined (__STDC__) && __STDC__ # define lt_ptr_t void * #else # define lt_ptr_t char * # define const #endif /* The mapping between symbol names and symbols. */ const struct { const char *name; lt_ptr_t address; } lt_preloaded_symbols[] = { EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext cat <<\EOF >> conftest.$ac_ext {0, (lt_ptr_t) 0} }; #ifdef __cplusplus } #endif EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -f conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then echo "$as_me:$LINENO: result: failed" >&5 echo "${ECHO_T}failed" >&6 else echo "$as_me:$LINENO: result: ok" >&5 echo "${ECHO_T}ok" >&6 fi echo "$as_me:$LINENO: checking for objdir" >&5 echo $ECHO_N "checking for objdir... $ECHO_C" >&6 if test "${lt_cv_objdir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 echo "${ECHO_T}$lt_cv_objdir" >&6 objdir=$lt_cv_objdir case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='sed -e s/^X//' sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Constants: rm="rm -f" # Global variables: default_ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except M$VC, # which needs '.lib'). libext=a ltmain="$ac_aux_dir/ltmain.sh" ofile="$default_ofile" with_gnu_ld="$lt_cv_prog_gnu_ld" if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="${ac_tool_prefix}ar" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then echo "$as_me:$LINENO: result: $AR" >&5 echo "${ECHO_T}$AR" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="ar" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_AR" && ac_cv_prog_ac_ct_AR="false" fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 echo "${ECHO_T}$ac_ct_AR" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi AR=$ac_ct_AR else AR="$ac_cv_prog_AR" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then echo "$as_me:$LINENO: result: $RANLIB" >&5 echo "${ECHO_T}$RANLIB" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 echo "${ECHO_T}$ac_ct_RANLIB" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi RANLIB=$ac_ct_RANLIB else RANLIB="$ac_cv_prog_RANLIB" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi STRIP=$ac_ct_STRIP else STRIP="$ac_cv_prog_STRIP" fi old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru test -z "$AS" && AS=as test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$LD" && LD=ld test -z "$LN_S" && LN_S="ln -s" test -z "$MAGIC_CMD" && MAGIC_CMD=file test -z "$NM" && NM=nm test -z "$SED" && SED=sed test -z "$OBJDUMP" && OBJDUMP=objdump test -z "$RANLIB" && RANLIB=: test -z "$STRIP" && STRIP=: test -z "$ac_objext" && ac_objext=o # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds" ;; *) old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi # Only perform the check for file, if the check method requires it case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 echo "${ECHO_T}$MAGIC_CMD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then echo "$as_me:$LINENO: checking for file" >&5 echo $ECHO_N "checking for file... $ECHO_C" >&6 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 echo "${ECHO_T}$MAGIC_CMD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi else MAGIC_CMD=: fi fi fi ;; esac enable_dlopen=yes enable_win32_dll=no # Check whether --enable-libtool-lock or --disable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then enableval="$enable_libtool_lock" fi; test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Check whether --with-pic or --without-pic was given. if test "${with_pic+set}" = set; then withval="$with_pic" pic_mode="$withval" else pic_mode=default fi; test -z "$pic_mode" && pic_mode=default # Use C for the default configuration in the libtool script tagname= lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}\n' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # Allow CC to be a program name with arguments. compiler=$CC # # Check for any special shared library compilation flags. # lt_prog_cc_shlib= if test "$GCC" = no; then case $host_os in sco3.2v5*) lt_prog_cc_shlib='-belf' ;; esac fi if test -n "$lt_prog_cc_shlib"; then { echo "$as_me:$LINENO: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build shared libraries" >&5 echo "$as_me: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build shared libraries" >&2;} if echo "$old_CC $old_CFLAGS " | grep "[ ]$lt_prog_cc_shlib[ ]" >/dev/null; then : else { echo "$as_me:$LINENO: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&5 echo "$as_me: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&2;} lt_cv_prog_cc_can_build_shared=no fi fi # # Check to make sure the static flag actually works. # echo "$as_me:$LINENO: checking if $compiler static flag $lt_prog_compiler_static works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_prog_compiler_static works... $ECHO_C" >&6 if test "${lt_prog_compiler_static_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_prog_compiler_static" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 else lt_prog_compiler_static_works=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works" >&6 if test x"$lt_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:6268: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:6272: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test ! -s conftest.err; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6 if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case "$host_cpu" in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; *) lt_prog_compiler_pic='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case "$host_cpu" in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; linux*) case $CC in icc* | ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; sco3.2v5*) lt_prog_compiler_pic='-Kpic' lt_prog_compiler_static='-dn' ;; solaris*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 echo "${ECHO_T}$lt_prog_compiler_pic" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:6501: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:6505: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test ! -s conftest.err; then lt_prog_compiler_pic_works=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6 if test x"$lt_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi case "$host_os" in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext # According to Tom Tromey, Ian Lance Taylor reported there are C compilers # that will create temporary files in the current directory regardless of # the output directory. Thus, making CWD read-only will cause this test # to fail, enabling locking or at least warning the user not to do parallel # builds. chmod -w . lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:6568: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:6572: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test ! -s out/conftest.err; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 runpath_var= allow_undefined_flag= enable_shared_with_static_runtimes=no archive_cmds= archive_expsym_cmds= old_archive_From_new_cmds= old_archive_from_expsyms_cmds= export_dynamic_flag_spec= whole_archive_flag_spec= thread_safe_flag_spec= hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no hardcode_shlibpath_var=unsupported link_all_deplibs=unknown hardcode_automatic=no module_cmds= module_expsym_cmds= always_export_symbols=no export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris* | sysv5*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; linux*) if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_cmds="$tmp_archive_cmds" supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ 01.* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac if test $supports_anon_versioning = yes; then archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' else archive_expsym_cmds="$tmp_archive_cmds" fi else ld_shlibs=no fi ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = yes; then runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$link_static_flag"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_libdir_separator=':' link_all_deplibs=yes if test "$GCC" = yes; then case $host_os in aix4.012|aix4.012.*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct=yes else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi esac shared_flag='-shared' else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' # -bexpall does not export symbols beginning with underscore (_) always_export_symbols=yes # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec=' ' archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds it's shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # see comment about different semantics on the GNU ld section ld_shlibs=no ;; bsdi4*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes=yes ;; darwin* | rhapsody*) if test "$GXX" = yes ; then archive_cmds_need_lc=no case "$host_os" in rhapsody* | darwin1.[012]) allow_undefined_flag='-undefined suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag='-flat_namespace -undefined suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag='-flat_namespace -undefined suppress' ;; 10.*) allow_undefined_flag='-undefined dynamic_lookup' ;; esac fi ;; esac lt_int_apple_cc_single_mod=no output_verbose_link_cmd='echo' if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then lt_int_apple_cc_single_mod=yes fi if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_cmds='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' else archive_cmds='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' fi module_cmds='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' fi module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported whole_archive_flag_spec='-all_load $convenience' link_all_deplibs=yes else ld_shlibs=no fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; freebsd1*) ld_shlibs=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu) archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10* | hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case "$host_cpu" in hppa*64*|ia64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case "$host_cpu" in hppa*64*|ia64*) archive_cmds='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' ;; *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;; esac fi if test "$with_gnu_ld" = no; then case "$host_cpu" in hppa*64*) hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_libdir_separator=: hardcode_direct=no hardcode_shlibpath_var=no ;; ia64*) hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=no hardcode_shlibpath_var=no # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; *) hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld='-rpath $libdir' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: link_all_deplibs=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; openbsd*) hardcode_direct=yes hardcode_shlibpath_var=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; sco3.2v5*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='${wl}-Bexport' runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ;; solaris*) no_undefined_flag=' -z text' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4.2uw2*) archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=no hardcode_shlibpath_var=no hardcode_runpath_var=yes runpath_var=LD_RUN_PATH ;; sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) no_undefined_flag='${wl}-z ${wl}text' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' fi runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv5*) no_undefined_flag=' -z text' # $CC -shared without GNU ld will not create a library from C++ # object files and a static libstdc++, better avoid it by now archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' hardcode_libdir_flag_spec= hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac fi echo "$as_me:$LINENO: result: $ld_shlibs" >&5 echo "${ECHO_T}$ld_shlibs" >&6 test "$ld_shlibs" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc=no else archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 echo "${ECHO_T}$archive_cmds_need_lc" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi4*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext='$(test .$module = .yes && echo .so || echo .dylib)' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd*) objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.01* | freebsdelf3.01*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; *) # from 3.2 on shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case "$host_cpu" in ia64*) shrext='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; sco3.2v5*) version_type=osf soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action= if test -n "$hardcode_libdir_flag_spec" || \ test -n "$runpath_var " || \ test "X$hardcode_automatic"="Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action" >&5 echo "${ECHO_T}$hardcode_action" >&6 if test "$hardcode_action" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi striplib= old_striplib= echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6 if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi ;; *) echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 ;; esac fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) echo "$as_me:$LINENO: checking for shl_load" >&5 echo $ECHO_N "checking for shl_load... $ECHO_C" >&6 if test "${ac_cv_func_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* System header to define __stub macros and hopefully few prototypes, which can conflict with char shl_load (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char shl_load (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_shl_load) || defined (__stub___shl_load) choke me #else char (*f) () = shl_load; #endif #ifdef __cplusplus } #endif int main () { return f != shl_load; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_shl_load=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 echo "${ECHO_T}$ac_cv_func_shl_load" >&6 if test $ac_cv_func_shl_load = yes; then lt_cv_dlopen="shl_load" else echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6 if test "${ac_cv_lib_dld_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char shl_load (); int main () { shl_load (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dld_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_shl_load=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6 if test $ac_cv_lib_dld_shl_load = yes; then lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" else echo "$as_me:$LINENO: checking for dlopen" >&5 echo $ECHO_N "checking for dlopen... $ECHO_C" >&6 if test "${ac_cv_func_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* System header to define __stub macros and hopefully few prototypes, which can conflict with char dlopen (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_dlopen) || defined (__stub___dlopen) choke me #else char (*f) () = dlopen; #endif #ifdef __cplusplus } #endif int main () { return f != dlopen; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_dlopen=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 echo "${ECHO_T}$ac_cv_func_dlopen" >&6 if test $ac_cv_func_dlopen = yes; then lt_cv_dlopen="dlopen" else echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6 if test "${ac_cv_lib_svld_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_svld_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_svld_dlopen=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6 if test $ac_cv_lib_svld_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6 if test "${ac_cv_lib_dld_dld_link+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dld_link (); int main () { dld_link (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dld_dld_link=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_dld_link=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6 if test $ac_cv_lib_dld_dld_link = yes; then lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6 if test "${lt_cv_dlopen_self+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_unknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 echo "${ECHO_T}$lt_cv_dlopen_self" >&6 if test "x$lt_cv_dlopen_self" = xyes; then LDFLAGS="$LDFLAGS $link_static_flag" echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6 if test "${lt_cv_dlopen_self_static+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6 fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi # Report which librarie types wil actually be built echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $can_build_shared" >&5 echo "${ECHO_T}$can_build_shared" >&6 echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6 test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case "$host_os" in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; darwin* | rhapsody*) if test "$GCC" = yes; then archive_cmds_need_lc=no case "$host_os" in rhapsody* | darwin1.[012]) allow_undefined_flag='-undefined suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag='-flat_namespace -undefined suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag='-flat_namespace -undefined suppress' ;; 10.*) allow_undefined_flag='-undefined dynamic_lookup' ;; esac fi ;; esac output_verbose_link_cmd='echo' archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring' module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported whole_archive_flag_spec='-all_load $convenience' link_all_deplibs=yes else ld_shlibs=no fi ;; esac echo "$as_me:$LINENO: result: $enable_shared" >&5 echo "${ECHO_T}$enable_shared" >&6 echo "$as_me:$LINENO: checking whether to build static libraries" >&5 echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes echo "$as_me:$LINENO: result: $enable_static" >&5 echo "${ECHO_T}$enable_static" >&6 # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler \ CC \ LD \ lt_prog_compiler_wl \ lt_prog_compiler_pic \ lt_prog_compiler_static \ lt_prog_compiler_no_builtin_flag \ export_dynamic_flag_spec \ thread_safe_flag_spec \ whole_archive_flag_spec \ enable_shared_with_static_runtimes \ old_archive_cmds \ old_archive_from_new_cmds \ predep_objects \ postdep_objects \ predeps \ postdeps \ compiler_lib_search_path \ archive_cmds \ archive_expsym_cmds \ postinstall_cmds \ postuninstall_cmds \ old_archive_from_expsyms_cmds \ allow_undefined_flag \ no_undefined_flag \ export_symbols_cmds \ hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ hardcode_automatic \ module_cmds \ module_expsym_cmds \ lt_cv_prog_compiler_c_o \ exclude_expsyms \ include_expsyms; do case $var in old_archive_cmds | \ old_archive_from_new_cmds | \ archive_cmds | \ archive_expsym_cmds | \ module_cmds | \ module_expsym_cmds | \ old_archive_from_expsyms_cmds | \ export_symbols_cmds | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="${ofile}T" trap "$rm \"$cfgfile\"; exit 1" 1 2 15 $rm -f "$cfgfile" { echo "$as_me:$LINENO: creating $ofile" >&5 echo "$as_me: creating $ofile" >&6;} cat <<__EOF__ >> "$cfgfile" #! $SHELL # `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # # This file is part of GNU Libtool: # Originally by Gordon Matzigkeit , 1996 # # This program 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 of the License, or # (at your option) any later version. # # This program 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 this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="$SED -e s/^X//" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi # The names of the tagged configurations supported by this script. available_tags= # ### BEGIN LIBTOOL CONFIG # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # A language-specific compiler. CC=$lt_compiler # Is the compiler the GNU C compiler? with_gcc=$GCC # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext='$shrext' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Must we lock files when doing compilation ? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # ### END LIBTOOL CONFIG __EOF__ case $host_os in aix3*) cat <<\EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi EOF ;; esac # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || \ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" # Check whether --with-tags or --without-tags was given. if test "${with_tags+set}" = set; then withval="$with_tags" tagnames="$withval" fi; if test -f "$ltmain" && test -n "$tagnames"; then if test ! -f "${ofile}"; then { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5 echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;} fi if test -z "$LTCC"; then eval "`$SHELL ${ofile} --config | grep '^LTCC='`" if test -z "$LTCC"; then { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5 echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;} else { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5 echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} fi fi # Extract list of available tagged configurations in $ofile. # Note that this assumes the entire list is on one line. available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for tagname in $tagnames; do IFS="$lt_save_ifs" # Check whether tagname contains only valid characters case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in "") ;; *) { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5 echo "$as_me: error: invalid tag name: $tagname" >&2;} { (exit 1); exit 1; }; } ;; esac if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null then { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5 echo "$as_me: error: tag name \"$tagname\" already exists" >&2;} { (exit 1); exit 1; }; } fi # Update the list of available tags. if test -n "$tagname"; then echo appending configuration tag \"$tagname\" to $ofile case $tagname in CXX) if test -n "$CXX" && test "X$CXX" != "Xno"; then ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu archive_cmds_need_lc_CXX=no allow_undefined_flag_CXX= always_export_symbols_CXX=no archive_expsym_cmds_CXX= export_dynamic_flag_spec_CXX= hardcode_direct_CXX=no hardcode_libdir_flag_spec_CXX= hardcode_libdir_flag_spec_ld_CXX= hardcode_libdir_separator_CXX= hardcode_minus_L_CXX=no hardcode_automatic_CXX=no module_cmds_CXX= module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no # Dependencies to place before and after the object being linked: predep_objects_CXX= postdep_objects_CXX= predeps_CXX= postdeps_CXX= compiler_lib_search_path_CXX= # Source file extension for C++ test sources. ac_ext=cc # Object file extension for compiled C++ test sources. objext=o objext_CXX=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *) { return(0); }\n' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # Allow CC to be a program name with arguments. compiler=$CC # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC compiler_CXX=$CC cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` # We don't want -fno-exception wen compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' else lt_prog_compiler_no_builtin_flag_CXX= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration # Check whether --with-gnu-ld or --without-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval="$with_gnu_ld" test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi; ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo "$as_me:$LINENO: checking for ld used by $CC" >&5 echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 else echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 fi if test "${lt_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 echo "${ECHO_T}$LD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 if test "${lt_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU ld's only accept -v. case `$LD -v 2>&1 &5 echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 with_gnu_ld=$lt_cv_prog_gnu_ld # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_CXX= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 ld_shlibs_CXX=yes case $host_os in aix3*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_CXX='' hardcode_direct_CXX=yes hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes if test "$GXX" = yes; then case $host_os in aix4.012|aix4.012.*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct_CXX=yes else # We have old collect2 hardcode_direct_CXX=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_CXX=yes hardcode_libdir_flag_spec_CXX='-L$libdir' hardcode_libdir_separator_CXX= fi esac shared_flag='-shared' else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_CXX=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_CXX='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_CXX="-z nodefs" archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_CXX=' ${wl}-bernotok' allow_undefined_flag_CXX=' ${wl}-berok' # -bexpall does not export symbols beginning with underscore (_) always_export_symbols_CXX=yes # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_CXX=' ' archive_cmds_need_lc_CXX=yes # This is similar to how AIX traditionally builds it's shared libraries. archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_CXX='-L$libdir' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=no enable_shared_with_static_runtimes_CXX=yes if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' else ld_shlibs_CXX=no fi ;; darwin* | rhapsody*) if test "$GXX" = yes; then archive_cmds_need_lc_CXX=no case "$host_os" in rhapsody* | darwin1.[012]) allow_undefined_flag_CXX='-undefined suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_CXX='-flat_namespace -undefined suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_CXX='-flat_namespace -undefined suppress' ;; 10.*) allow_undefined_flag_CXX='-undefined dynamic_lookup' ;; esac fi ;; esac lt_int_apple_cc_single_mod=no output_verbose_link_cmd='echo' if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then lt_int_apple_cc_single_mod=yes fi if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' else archive_cmds_CXX='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' fi module_cmds_CXX='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' fi module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported whole_archive_flag_spec_CXX='-all_load $convenience' link_all_deplibs_CXX=yes else ld_shlibs_CXX=no fi ;; dgux*) case $cc_basename in ec++) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; ghcx) # Green Hills C++ Compiler # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; freebsd12*) # C++ shared libraries reported to be fairly broken before switch to ELF ld_shlibs_CXX=no ;; freebsd-elf*) archive_cmds_need_lc_CXX=no ;; freebsd* | kfreebsd*-gnu) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions ld_shlibs_CXX=yes ;; gnu*) ;; hpux9*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: export_dynamic_flag_spec_CXX='${wl}-E' hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC) archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | egrep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then case "$host_cpu" in hppa*64*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_flag_spec_ld_CXX='+b $libdir' hardcode_libdir_separator_CXX=: ;; ia64*) hardcode_libdir_flag_spec_CXX='-L$libdir' ;; *) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: export_dynamic_flag_spec_CXX='${wl}-E' ;; esac fi case "$host_cpu" in hppa*64*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no ;; ia64*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. ;; *) hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC) case "$host_cpu" in hppa*64*|ia64*) archive_cmds_CXX='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' ;; *) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case "$host_cpu" in ia64*|hppa*64*) archive_cmds_CXX='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' ;; *) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; irix5* | irix6*) case $cc_basename in CC) # SGI C++ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' else archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' fi fi link_all_deplibs_CXX=yes ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: ;; linux*) case $cc_basename in KCC) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc) # Intel C++ with_gnu_ld=yes archive_cmds_need_lc_CXX=no archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; cxx) # Compaq C++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; esac ;; lynxos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; m88k*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; mvs*) case $cc_basename in cxx) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; osf3*) case $cc_basename in KCC) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; RCC) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx) allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; osf4* | osf5*) case $cc_basename in KCC) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # the KAI C++ compiler. old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; RCC) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx) allow_undefined_flag_CXX=' -expect_unresolved \*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry $objdir/so_locations -o $lib~ $rm $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; sco*) archive_cmds_need_lc_CXX=no case $cc_basename in CC) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; sunos4*) case $cc_basename in CC) # Sun C++ 4.x # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; lcc) # Lucid # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; solaris*) case $cc_basename in CC) # Sun C++ 4.2, 5.x and Centerline C++ no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_shlibpath_var_CXX=no case $host_os in solaris2.0-5 | solaris2.0-5.*) ;; *) # The C++ compiler is used as linker so we must use $wl # flag to pass the commands to the underlying system # linker. # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac link_all_deplibs_CXX=yes # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[LR]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; gcx) # Green Hills C++ Compiler archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then no_undefined_flag_CXX=' ${wl}-z ${wl}defs' if $CC --version | grep -v '^2\.7' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" fi hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' fi ;; esac ;; sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) archive_cmds_need_lc_CXX=no ;; tandem*) case $cc_basename in NCC) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 echo "${ECHO_T}$ld_shlibs_CXX" >&6 test "$ld_shlibs_CXX" = no && can_build_shared=no GCC_CXX="$GXX" LD_CXX="$LD" cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no # The `*' in the case matches for architectures that use `case' in # $output_verbose_cmd can trigger glob expansion during the loop # eval without this substitution. output_verbose_link_cmd="`$echo \"X$output_verbose_link_cmd\" | $Xsed -e \"$no_glob_subst\"`" for p in `eval $output_verbose_link_cmd`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" \ || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$compiler_lib_search_path_CXX"; then compiler_lib_search_path_CXX="${prev}${p}" else compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$postdeps_CXX"; then postdeps_CXX="${prev}${p}" else postdeps_CXX="${postdeps_CXX} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$predep_objects_CXX"; then predep_objects_CXX="$p" else predep_objects_CXX="$predep_objects_CXX $p" fi else if test -z "$postdep_objects_CXX"; then postdep_objects_CXX="$p" else postdep_objects_CXX="$postdep_objects_CXX $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling CXX test program" fi $rm -f confest.$objext case " $postdeps_CXX " in *" -lc "*) archive_cmds_need_lc_CXX=no ;; esac lt_prog_compiler_wl_CXX= lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | os2* | pw32*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_CXX='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_CXX=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case "$host_cpu" in hppa*64*|ia64*) ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac else case $host_os in aix4* | aix5*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' else lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68) # Green Hills C++ Compiler # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; dgux*) case $cc_basename in ec++) lt_prog_compiler_pic_CXX='-KPIC' ;; ghcx) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; freebsd* | kfreebsd*-gnu) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" if test "$host_cpu" != ia64; then lt_prog_compiler_pic_CXX='+Z' fi ;; aCC) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" case "$host_cpu" in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_CXX='+Z' ;; esac ;; *) ;; esac ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux*) case $cc_basename in KCC) # KAI C++ Compiler lt_prog_compiler_wl_CXX='--backend -Wl,' lt_prog_compiler_pic_CXX='-fPIC' ;; icpc) # Intel C++ lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-static' ;; cxx) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx) lt_prog_compiler_pic_CXX='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; osf3* | osf4* | osf5*) case $cc_basename in KCC) lt_prog_compiler_wl_CXX='--backend -Wl,' ;; RCC) # Rational C++ 2.4.1 lt_prog_compiler_pic_CXX='-pic' ;; cxx) # Digital/Compaq C++ lt_prog_compiler_wl_CXX='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; psos*) ;; sco*) case $cc_basename in CC) lt_prog_compiler_pic_CXX='-fPIC' ;; *) ;; esac ;; solaris*) case $cc_basename in CC) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; gcx) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC) # Sun C++ 4.x lt_prog_compiler_pic_CXX='-pic' lt_prog_compiler_static_CXX='-Bstatic' ;; lcc) # Lucid lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; tandem*) case $cc_basename in NCC) # NonStop-UX NCC 3.20 lt_prog_compiler_pic_CXX='-KPIC' ;; *) ;; esac ;; unixware*) ;; vxworks*) ;; *) lt_prog_compiler_can_build_shared_CXX=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_CXX"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:10885: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:10889: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test ! -s conftest.err; then lt_prog_compiler_pic_works_CXX=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6 if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then case $lt_prog_compiler_pic_CXX in "" | " "*) ;; *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; esac else lt_prog_compiler_pic_CXX= lt_prog_compiler_can_build_shared_CXX=no fi fi case "$host_os" in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_CXX= ;; *) lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_CXX=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext # According to Tom Tromey, Ian Lance Taylor reported there are C compilers # that will create temporary files in the current directory regardless of # the output directory. Thus, making CWD read-only will cause this test # to fail, enabling locking or at least warning the user not to do parallel # builds. chmod -w . lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:10952: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:10956: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test ! -s out/conftest.err; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix4* | aix5*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX="$ltdll_cmds" ;; cygwin* | mingw*) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 echo "${ECHO_T}$ld_shlibs_CXX" >&6 test "$ld_shlibs_CXX" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_CXX" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_CXX=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_CXX in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_CXX compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_CXX allow_undefined_flag_CXX= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_CXX=no else archive_cmds_need_lc_CXX=yes fi allow_undefined_flag_CXX=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5 echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi4*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext='$(test .$module = .yes && echo .so || echo .dylib)' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd*) objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.01* | freebsdelf3.01*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; *) # from 3.2 on shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case "$host_cpu" in ia64*) shrext='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; sco3.2v5*) version_type=osf soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_CXX= if test -n "$hardcode_libdir_flag_spec_CXX" || \ test -n "$runpath_var CXX" || \ test "X$hardcode_automatic_CXX"="Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_CXX" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no && test "$hardcode_minus_L_CXX" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_CXX=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_CXX=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_CXX=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5 echo "${ECHO_T}$hardcode_action_CXX" >&6 if test "$hardcode_action_CXX" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi striplib= old_striplib= echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6 if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi ;; *) echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 ;; esac fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) echo "$as_me:$LINENO: checking for shl_load" >&5 echo $ECHO_N "checking for shl_load... $ECHO_C" >&6 if test "${ac_cv_func_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* System header to define __stub macros and hopefully few prototypes, which can conflict with char shl_load (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char shl_load (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_shl_load) || defined (__stub___shl_load) choke me #else char (*f) () = shl_load; #endif #ifdef __cplusplus } #endif int main () { return f != shl_load; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_shl_load=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 echo "${ECHO_T}$ac_cv_func_shl_load" >&6 if test $ac_cv_func_shl_load = yes; then lt_cv_dlopen="shl_load" else echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6 if test "${ac_cv_lib_dld_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char shl_load (); int main () { shl_load (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dld_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_shl_load=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6 if test $ac_cv_lib_dld_shl_load = yes; then lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" else echo "$as_me:$LINENO: checking for dlopen" >&5 echo $ECHO_N "checking for dlopen... $ECHO_C" >&6 if test "${ac_cv_func_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* System header to define __stub macros and hopefully few prototypes, which can conflict with char dlopen (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_dlopen) || defined (__stub___dlopen) choke me #else char (*f) () = dlopen; #endif #ifdef __cplusplus } #endif int main () { return f != dlopen; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_dlopen=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 echo "${ECHO_T}$ac_cv_func_dlopen" >&6 if test $ac_cv_func_dlopen = yes; then lt_cv_dlopen="dlopen" else echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6 if test "${ac_cv_lib_svld_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_svld_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_svld_dlopen=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6 if test $ac_cv_lib_svld_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6 if test "${ac_cv_lib_dld_dld_link+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dld_link (); int main () { dld_link (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dld_dld_link=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_dld_link=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6 if test $ac_cv_lib_dld_dld_link = yes; then lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6 if test "${lt_cv_dlopen_self+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_unknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 echo "${ECHO_T}$lt_cv_dlopen_self" >&6 if test "x$lt_cv_dlopen_self" = xyes; then LDFLAGS="$LDFLAGS $link_static_flag" echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6 if test "${lt_cv_dlopen_self_static+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6 fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_CXX \ CC_CXX \ LD_CXX \ lt_prog_compiler_wl_CXX \ lt_prog_compiler_pic_CXX \ lt_prog_compiler_static_CXX \ lt_prog_compiler_no_builtin_flag_CXX \ export_dynamic_flag_spec_CXX \ thread_safe_flag_spec_CXX \ whole_archive_flag_spec_CXX \ enable_shared_with_static_runtimes_CXX \ old_archive_cmds_CXX \ old_archive_from_new_cmds_CXX \ predep_objects_CXX \ postdep_objects_CXX \ predeps_CXX \ postdeps_CXX \ compiler_lib_search_path_CXX \ archive_cmds_CXX \ archive_expsym_cmds_CXX \ postinstall_cmds_CXX \ postuninstall_cmds_CXX \ old_archive_from_expsyms_cmds_CXX \ allow_undefined_flag_CXX \ no_undefined_flag_CXX \ export_symbols_cmds_CXX \ hardcode_libdir_flag_spec_CXX \ hardcode_libdir_flag_spec_ld_CXX \ hardcode_libdir_separator_CXX \ hardcode_automatic_CXX \ module_cmds_CXX \ module_expsym_cmds_CXX \ lt_cv_prog_compiler_c_o_CXX \ exclude_expsyms_CXX \ include_expsyms_CXX; do case $var in old_archive_cmds_CXX | \ old_archive_from_new_cmds_CXX | \ archive_cmds_CXX | \ archive_expsym_cmds_CXX | \ module_cmds_CXX | \ module_expsym_cmds_CXX | \ old_archive_from_expsyms_cmds_CXX | \ export_symbols_cmds_CXX | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_CXX # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # A language-specific compiler. CC=$lt_compiler_CXX # Is the compiler the GNU C compiler? with_gcc=$GCC_CXX # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_CXX # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_CXX # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext='$shrext' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX # Must we lock files when doing compilation ? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_CXX old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_CXX archive_expsym_cmds=$lt_archive_expsym_cmds_CXX postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_CXX module_expsym_cmds=$lt_module_expsym_cmds_CXX # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_CXX # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_CXX # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_CXX # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_CXX # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_CXX # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_CXX # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_CXX # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_CXX # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_CXX # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_CXX # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_CXX # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_CXX # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_CXX" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_CXX # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_CXX # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_CXX # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_CXX # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ldcxx=$with_gnu_ld with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld else tagname="" fi ;; F77) if test -n "$F77" && test "X$F77" != "Xno"; then ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu archive_cmds_need_lc_F77=no allow_undefined_flag_F77= always_export_symbols_F77=no archive_expsym_cmds_F77= export_dynamic_flag_spec_F77= hardcode_direct_F77=no hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77= hardcode_libdir_separator_F77= hardcode_minus_L_F77=no hardcode_automatic_F77=no module_cmds_F77= module_expsym_cmds_F77= link_all_deplibs_F77=unknown old_archive_cmds_F77=$old_archive_cmds no_undefined_flag_F77= whole_archive_flag_spec_F77= enable_shared_with_static_runtimes_F77=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o objext_F77=$objext # Code to be used in simple compile tests lt_simple_compile_test_code=" subroutine t\n return\n end\n" # Code to be used in simple link tests lt_simple_link_test_code=" program t\n end\n" # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # Allow CC to be a program name with arguments. compiler=$CC # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${F77-"f77"} compiler=$CC compiler_F77=$CC cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $can_build_shared" >&5 echo "${ECHO_T}$can_build_shared" >&6 echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6 test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case "$host_os" in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4*) test "$enable_shared" = yes && enable_static=no ;; esac echo "$as_me:$LINENO: result: $enable_shared" >&5 echo "${ECHO_T}$enable_shared" >&6 echo "$as_me:$LINENO: checking whether to build static libraries" >&5 echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes echo "$as_me:$LINENO: result: $enable_static" >&5 echo "${ECHO_T}$enable_static" >&6 test "$ld_shlibs_F77" = no && can_build_shared=no GCC_F77="$G77" LD_F77="$LD" lt_prog_compiler_wl_F77= lt_prog_compiler_pic_F77= lt_prog_compiler_static_F77= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "$GCC" = yes; then lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_static_F77='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_F77='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_F77='-fno-common' ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared_F77=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_F77=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case "$host_cpu" in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_F77='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_F77='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_F77='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' else lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_F77='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_F77='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case "$host_cpu" in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_F77='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_F77='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_F77='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_F77='-non_shared' ;; newsos6) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; linux*) case $CC in icc* | ecc*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-static' ;; ccc*) lt_prog_compiler_wl_F77='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_F77='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; sco3.2v5*) lt_prog_compiler_pic_F77='-Kpic' lt_prog_compiler_static_F77='-dn' ;; solaris*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; sunos4*) lt_prog_compiler_wl_F77='-Qoption ld ' lt_prog_compiler_pic_F77='-PIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic_F77='-Kconform_pic' lt_prog_compiler_static_F77='-Bstatic' fi ;; uts4*) lt_prog_compiler_pic_F77='-pic' lt_prog_compiler_static_F77='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_F77=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_F77"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_F77=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_F77" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:13134: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:13138: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test ! -s conftest.err; then lt_prog_compiler_pic_works_F77=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6 if test x"$lt_prog_compiler_pic_works_F77" = xyes; then case $lt_prog_compiler_pic_F77 in "" | " "*) ;; *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;; esac else lt_prog_compiler_pic_F77= lt_prog_compiler_can_build_shared_F77=no fi fi case "$host_os" in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_F77= ;; *) lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77" ;; esac echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_F77=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext # According to Tom Tromey, Ian Lance Taylor reported there are C compilers # that will create temporary files in the current directory regardless of # the output directory. Thus, making CWD read-only will cause this test # to fail, enabling locking or at least warning the user not to do parallel # builds. chmod -w . lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:13201: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:13205: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test ! -s out/conftest.err; then lt_cv_prog_compiler_c_o_F77=yes fi fi chmod u+w . $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 runpath_var= allow_undefined_flag_F77= enable_shared_with_static_runtimes_F77=no archive_cmds_F77= archive_expsym_cmds_F77= old_archive_From_new_cmds_F77= old_archive_from_expsyms_cmds_F77= export_dynamic_flag_spec_F77= whole_archive_flag_spec_F77= thread_safe_flag_spec_F77= hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77= hardcode_libdir_separator_F77= hardcode_direct_F77=no hardcode_minus_L_F77=no hardcode_shlibpath_var_F77=unsupported link_all_deplibs_F77=unknown hardcode_automatic_F77=no module_cmds_F77= module_expsym_cmds_F77= always_export_symbols_F77=no export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms_F77= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms_F77="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs_F77=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs_F77=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs_F77=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_F77=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_F77=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_F77='-L$libdir' allow_undefined_flag_F77=unsupported always_export_symbols_F77=no enable_shared_with_static_runtimes_F77=yes export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris* | sysv5*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs_F77=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; sunos4*) archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; linux*) if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_cmds_F77="$tmp_archive_cmds" supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ 01.* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac if test $supports_anon_versioning = yes; then archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' else archive_expsym_cmds_F77="$tmp_archive_cmds" fi else ld_shlibs_F77=no fi ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; esac if test "$ld_shlibs_F77" = yes; then runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_F77='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_F77= fi fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag_F77=unsupported always_export_symbols_F77=yes archive_expsym_cmds_F77='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L_F77=yes if test "$GCC" = yes && test -z "$link_static_flag"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct_F77=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_F77='' hardcode_direct_F77=yes hardcode_libdir_separator_F77=':' link_all_deplibs_F77=yes if test "$GCC" = yes; then case $host_os in aix4.012|aix4.012.*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct_F77=yes else # We have old collect2 hardcode_direct_F77=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_F77=yes hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_libdir_separator_F77= fi esac shared_flag='-shared' else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_F77=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_F77='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_F77="-z nodefs" archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_F77=' ${wl}-bernotok' allow_undefined_flag_F77=' ${wl}-berok' # -bexpall does not export symbols beginning with underscore (_) always_export_symbols_F77=yes # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_F77=' ' archive_cmds_need_lc_F77=yes # This is similar to how AIX traditionally builds it's shared libraries. archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes # see comment about different semantics on the GNU ld section ld_shlibs_F77=no ;; bsdi4*) export_dynamic_flag_spec_F77=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_F77=' ' allow_undefined_flag_F77=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds_F77='true' # FIXME: Should let the user specify the lib program. old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes_F77=yes ;; darwin* | rhapsody*) if test "$GXX" = yes ; then archive_cmds_need_lc_F77=no case "$host_os" in rhapsody* | darwin1.[012]) allow_undefined_flag_F77='-undefined suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_F77='-flat_namespace -undefined suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_F77='-flat_namespace -undefined suppress' ;; 10.*) allow_undefined_flag_F77='-undefined dynamic_lookup' ;; esac fi ;; esac lt_int_apple_cc_single_mod=no output_verbose_link_cmd='echo' if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then lt_int_apple_cc_single_mod=yes fi if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_cmds_F77='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' else archive_cmds_F77='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' fi module_cmds_F77='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' fi module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' hardcode_direct_F77=no hardcode_automatic_F77=yes hardcode_shlibpath_var_F77=unsupported whole_archive_flag_spec_F77='-all_load $convenience' link_all_deplibs_F77=yes else ld_shlibs_F77=no fi ;; dgux*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_shlibpath_var_F77=no ;; freebsd1*) ld_shlibs_F77=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_minus_L_F77=yes hardcode_shlibpath_var_F77=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu) archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes export_dynamic_flag_spec_F77='${wl}-E' ;; hpux10* | hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case "$host_cpu" in hppa*64*|ia64*) archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case "$host_cpu" in hppa*64*|ia64*) archive_cmds_F77='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' ;; *) archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;; esac fi if test "$with_gnu_ld" = no; then case "$host_cpu" in hppa*64*) hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_flag_spec_ld_F77='+b $libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=no hardcode_shlibpath_var_F77=no ;; ia64*) hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_direct_F77=no hardcode_shlibpath_var_F77=no # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes ;; *) hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=yes export_dynamic_flag_spec_F77='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld_F77='-rpath $libdir' fi hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: link_all_deplibs_F77=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; newsos6) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_shlibpath_var_F77=no ;; openbsd*) hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' export_dynamic_flag_spec_F77='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-R$libdir' ;; *) archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes allow_undefined_flag_F77=unsupported archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_F77=' -expect_unresolved \*' archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_F77=' -expect_unresolved \*' archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec_F77='-rpath $libdir' fi hardcode_libdir_separator_F77=: ;; sco3.2v5*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no export_dynamic_flag_spec_F77='${wl}-Bexport' runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ;; solaris*) no_undefined_flag_F77=' -z text' if test "$GCC" = yes; then archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_shlibpath_var_F77=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;; esac link_all_deplibs_F77=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_direct_F77=yes hardcode_minus_L_F77=yes hardcode_shlibpath_var_F77=no ;; sysv4) case $host_vendor in sni) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds_F77='$CC -r -o $output$reload_objs' hardcode_direct_F77=no ;; motorola) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_F77=no ;; sysv4.3*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no export_dynamic_flag_spec_F77='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs_F77=yes fi ;; sysv4.2uw2*) archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_minus_L_F77=no hardcode_shlibpath_var_F77=no hardcode_runpath_var=yes runpath_var=LD_RUN_PATH ;; sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) no_undefined_flag_F77='${wl}-z ${wl}text' if test "$GCC" = yes; then archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' fi runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_F77=no ;; sysv5*) no_undefined_flag_F77=' -z text' # $CC -shared without GNU ld will not create a library from C++ # object files and a static libstdc++, better avoid it by now archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' hardcode_libdir_flag_spec_F77= hardcode_shlibpath_var_F77=no runpath_var='LD_RUN_PATH' ;; uts4*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_shlibpath_var_F77=no ;; *) ld_shlibs_F77=no ;; esac fi echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5 echo "${ECHO_T}$ld_shlibs_F77" >&6 test "$ld_shlibs_F77" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_F77" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_F77=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_F77 in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_F77 compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_F77 allow_undefined_flag_F77= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_F77=no else archive_cmds_need_lc_F77=yes fi allow_undefined_flag_F77=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5 echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi4*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext='$(test .$module = .yes && echo .so || echo .dylib)' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd*) objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.01* | freebsdelf3.01*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; *) # from 3.2 on shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case "$host_cpu" in ia64*) shrext='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; sco3.2v5*) version_type=osf soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_F77= if test -n "$hardcode_libdir_flag_spec_F77" || \ test -n "$runpath_var F77" || \ test "X$hardcode_automatic_F77"="Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_F77" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no && test "$hardcode_minus_L_F77" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_F77=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_F77=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_F77=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5 echo "${ECHO_T}$hardcode_action_F77" >&6 if test "$hardcode_action_F77" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi striplib= old_striplib= echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6 if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi ;; *) echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 ;; esac fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_F77 \ CC_F77 \ LD_F77 \ lt_prog_compiler_wl_F77 \ lt_prog_compiler_pic_F77 \ lt_prog_compiler_static_F77 \ lt_prog_compiler_no_builtin_flag_F77 \ export_dynamic_flag_spec_F77 \ thread_safe_flag_spec_F77 \ whole_archive_flag_spec_F77 \ enable_shared_with_static_runtimes_F77 \ old_archive_cmds_F77 \ old_archive_from_new_cmds_F77 \ predep_objects_F77 \ postdep_objects_F77 \ predeps_F77 \ postdeps_F77 \ compiler_lib_search_path_F77 \ archive_cmds_F77 \ archive_expsym_cmds_F77 \ postinstall_cmds_F77 \ postuninstall_cmds_F77 \ old_archive_from_expsyms_cmds_F77 \ allow_undefined_flag_F77 \ no_undefined_flag_F77 \ export_symbols_cmds_F77 \ hardcode_libdir_flag_spec_F77 \ hardcode_libdir_flag_spec_ld_F77 \ hardcode_libdir_separator_F77 \ hardcode_automatic_F77 \ module_cmds_F77 \ module_expsym_cmds_F77 \ lt_cv_prog_compiler_c_o_F77 \ exclude_expsyms_F77 \ include_expsyms_F77; do case $var in old_archive_cmds_F77 | \ old_archive_from_new_cmds_F77 | \ archive_cmds_F77 | \ archive_expsym_cmds_F77 | \ module_cmds_F77 | \ module_expsym_cmds_F77 | \ old_archive_from_expsyms_cmds_F77 | \ export_symbols_cmds_F77 | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_F77 # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77 # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # A language-specific compiler. CC=$lt_compiler_F77 # Is the compiler the GNU C compiler? with_gcc=$GCC_F77 # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_F77 # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_F77 # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext='$shrext' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_F77 pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77 # Must we lock files when doing compilation ? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_F77 # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77 # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77 # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77 # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77 # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_F77 old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77 # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77 # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_F77 archive_expsym_cmds=$lt_archive_expsym_cmds_F77 postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_F77 module_expsym_cmds=$lt_module_expsym_cmds_F77 # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_F77 # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_F77 # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_F77 # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_F77 # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_F77 # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_F77 # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_F77 # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_F77 # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77 # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77 # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77 # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_F77 # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_F77 # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_F77 # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_F77 # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_F77 # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_F77" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_F77 # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_F77 # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_F77 # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_F77 # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" else tagname="" fi ;; GCJ) if test -n "$GCJ" && test "X$GCJ" != "Xno"; then # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o objext_GCJ=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}\n" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String argv) {}; }\n' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # Allow CC to be a program name with arguments. compiler=$CC # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${GCJ-"gcj"} compiler=$CC compiler_GCJ=$CC # GCJ did not exist at the time GCC didn't implicitly link libc in. archive_cmds_need_lc_GCJ=no lt_prog_compiler_no_builtin_flag_GCJ= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin' echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:15195: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:15199: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test ! -s conftest.err; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6 if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl_GCJ= lt_prog_compiler_pic_GCJ= lt_prog_compiler_static_GCJ= echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "$GCC" = yes; then lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_static_GCJ='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_GCJ='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_GCJ='-fno-common' ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared_GCJ=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_GCJ=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case "$host_cpu" in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_GCJ='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_GCJ='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_GCJ='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_GCJ='-Bstatic' else lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_GCJ='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case "$host_cpu" in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_GCJ='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_GCJ='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_GCJ='-non_shared' ;; newsos6) lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; linux*) case $CC in icc* | ecc*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-static' ;; ccc*) lt_prog_compiler_wl_GCJ='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_GCJ='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_GCJ='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_GCJ='-non_shared' ;; sco3.2v5*) lt_prog_compiler_pic_GCJ='-Kpic' lt_prog_compiler_static_GCJ='-dn' ;; solaris*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; sunos4*) lt_prog_compiler_wl_GCJ='-Qoption ld ' lt_prog_compiler_pic_GCJ='-PIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic_GCJ='-Kconform_pic' lt_prog_compiler_static_GCJ='-Bstatic' fi ;; uts4*) lt_prog_compiler_pic_GCJ='-pic' lt_prog_compiler_static_GCJ='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_GCJ=no ;; esac fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_GCJ"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6 if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_GCJ=no ac_outfile=conftest.$ac_objext printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_GCJ" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:15428: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:15432: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test ! -s conftest.err; then lt_prog_compiler_pic_works_GCJ=yes fi fi $rm conftest* fi echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6 if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then case $lt_prog_compiler_pic_GCJ in "" | " "*) ;; *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;; esac else lt_prog_compiler_pic_GCJ= lt_prog_compiler_can_build_shared_GCJ=no fi fi case "$host_os" in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_GCJ= ;; *) lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ" ;; esac echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_GCJ=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext # According to Tom Tromey, Ian Lance Taylor reported there are C compilers # that will create temporary files in the current directory regardless of # the output directory. Thus, making CWD read-only will cause this test # to fail, enabling locking or at least warning the user not to do parallel # builds. chmod -w . lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:15495: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:15499: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test ! -s out/conftest.err; then lt_cv_prog_compiler_c_o_GCJ=yes fi fi chmod u+w . $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* fi echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6 hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6 if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 runpath_var= allow_undefined_flag_GCJ= enable_shared_with_static_runtimes_GCJ=no archive_cmds_GCJ= archive_expsym_cmds_GCJ= old_archive_From_new_cmds_GCJ= old_archive_from_expsyms_cmds_GCJ= export_dynamic_flag_spec_GCJ= whole_archive_flag_spec_GCJ= thread_safe_flag_spec_GCJ= hardcode_libdir_flag_spec_GCJ= hardcode_libdir_flag_spec_ld_GCJ= hardcode_libdir_separator_GCJ= hardcode_direct_GCJ=no hardcode_minus_L_GCJ=no hardcode_shlibpath_var_GCJ=unsupported link_all_deplibs_GCJ=unknown hardcode_automatic_GCJ=no module_cmds_GCJ= module_expsym_cmds_GCJ= always_export_symbols_GCJ=no export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms_GCJ= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms_GCJ="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs_GCJ=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs_GCJ=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs_GCJ=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_GCJ=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_GCJ=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_GCJ='-L$libdir' allow_undefined_flag_GCJ=unsupported always_export_symbols_GCJ=no enable_shared_with_static_runtimes_GCJ=yes export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris* | sysv5*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs_GCJ=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; sunos4*) archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; linux*) if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_cmds_GCJ="$tmp_archive_cmds" supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ 01.* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac if test $supports_anon_versioning = yes; then archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' else archive_expsym_cmds_GCJ="$tmp_archive_cmds" fi else ld_shlibs_GCJ=no fi ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; esac if test "$ld_shlibs_GCJ" = yes; then runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_GCJ='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_GCJ= fi fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag_GCJ=unsupported always_export_symbols_GCJ=yes archive_expsym_cmds_GCJ='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L_GCJ=yes if test "$GCC" = yes && test -z "$link_static_flag"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct_GCJ=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_GCJ='' hardcode_direct_GCJ=yes hardcode_libdir_separator_GCJ=':' link_all_deplibs_GCJ=yes if test "$GCC" = yes; then case $host_os in aix4.012|aix4.012.*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct_GCJ=yes else # We have old collect2 hardcode_direct_GCJ=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_GCJ=yes hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_libdir_separator_GCJ= fi esac shared_flag='-shared' else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_GCJ=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_GCJ='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_GCJ="-z nodefs" archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_GCJ=' ${wl}-bernotok' allow_undefined_flag_GCJ=' ${wl}-berok' # -bexpall does not export symbols beginning with underscore (_) always_export_symbols_GCJ=yes # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_GCJ=' ' archive_cmds_need_lc_GCJ=yes # This is similar to how AIX traditionally builds it's shared libraries. archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes # see comment about different semantics on the GNU ld section ld_shlibs_GCJ=no ;; bsdi4*) export_dynamic_flag_spec_GCJ=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_GCJ=' ' allow_undefined_flag_GCJ=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds_GCJ='true' # FIXME: Should let the user specify the lib program. old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes_GCJ=yes ;; darwin* | rhapsody*) if test "$GXX" = yes ; then archive_cmds_need_lc_GCJ=no case "$host_os" in rhapsody* | darwin1.[012]) allow_undefined_flag_GCJ='-undefined suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_GCJ='-flat_namespace -undefined suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_GCJ='-flat_namespace -undefined suppress' ;; 10.*) allow_undefined_flag_GCJ='-undefined dynamic_lookup' ;; esac fi ;; esac lt_int_apple_cc_single_mod=no output_verbose_link_cmd='echo' if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then lt_int_apple_cc_single_mod=yes fi if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_cmds_GCJ='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' else archive_cmds_GCJ='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' fi module_cmds_GCJ='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' fi module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' hardcode_direct_GCJ=no hardcode_automatic_GCJ=yes hardcode_shlibpath_var_GCJ=unsupported whole_archive_flag_spec_GCJ='-all_load $convenience' link_all_deplibs_GCJ=yes else ld_shlibs_GCJ=no fi ;; dgux*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_shlibpath_var_GCJ=no ;; freebsd1*) ld_shlibs_GCJ=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes hardcode_minus_L_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu) archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' ;; hpux10* | hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case "$host_cpu" in hppa*64*|ia64*) archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case "$host_cpu" in hppa*64*|ia64*) archive_cmds_GCJ='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' ;; *) archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;; esac fi if test "$with_gnu_ld" = no; then case "$host_cpu" in hppa*64*) hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_flag_spec_ld_GCJ='+b $libdir' hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=no hardcode_shlibpath_var_GCJ=no ;; ia64*) hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_direct_GCJ=no hardcode_shlibpath_var_GCJ=no # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes ;; *) hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir' fi hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: link_all_deplibs_GCJ=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; newsos6) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_shlibpath_var_GCJ=no ;; openbsd*) hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' export_dynamic_flag_spec_GCJ='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-R$libdir' ;; *) archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes allow_undefined_flag_GCJ=unsupported archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_GCJ=' -expect_unresolved \*' archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_GCJ=' -expect_unresolved \*' archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec_GCJ='-rpath $libdir' fi hardcode_libdir_separator_GCJ=: ;; sco3.2v5*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_GCJ=no export_dynamic_flag_spec_GCJ='${wl}-Bexport' runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ;; solaris*) no_undefined_flag_GCJ=' -z text' if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_shlibpath_var_GCJ=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;; esac link_all_deplibs_GCJ=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_direct_GCJ=yes hardcode_minus_L_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; sysv4) case $host_vendor in sni) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds_GCJ='$CC -r -o $output$reload_objs' hardcode_direct_GCJ=no ;; motorola) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_GCJ=no ;; sysv4.3*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_GCJ=no export_dynamic_flag_spec_GCJ='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_GCJ=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs_GCJ=yes fi ;; sysv4.2uw2*) archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes hardcode_minus_L_GCJ=no hardcode_shlibpath_var_GCJ=no hardcode_runpath_var=yes runpath_var=LD_RUN_PATH ;; sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) no_undefined_flag_GCJ='${wl}-z ${wl}text' if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' fi runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_GCJ=no ;; sysv5*) no_undefined_flag_GCJ=' -z text' # $CC -shared without GNU ld will not create a library from C++ # object files and a static libstdc++, better avoid it by now archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' hardcode_libdir_flag_spec_GCJ= hardcode_shlibpath_var_GCJ=no runpath_var='LD_RUN_PATH' ;; uts4*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_shlibpath_var_GCJ=no ;; *) ld_shlibs_GCJ=no ;; esac fi echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5 echo "${ECHO_T}$ld_shlibs_GCJ" >&6 test "$ld_shlibs_GCJ" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_GCJ" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_GCJ=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_GCJ in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_GCJ compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ allow_undefined_flag_GCJ= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_GCJ=no else archive_cmds_need_lc_GCJ=yes fi allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5 echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6 ;; esac fi ;; esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= shrext=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi4*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext='$(test .$module = .yes && echo .so || echo .dylib)' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd*) objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.01* | freebsdelf3.01*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; *) # from 3.2 on shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case "$host_cpu" in ia64*) shrext='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; sco3.2v5*) version_type=osf soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action_GCJ= if test -n "$hardcode_libdir_flag_spec_GCJ" || \ test -n "$runpath_var GCJ" || \ test "X$hardcode_automatic_GCJ"="Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_GCJ" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no && test "$hardcode_minus_L_GCJ" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_GCJ=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_GCJ=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_GCJ=unsupported fi echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5 echo "${ECHO_T}$hardcode_action_GCJ" >&6 if test "$hardcode_action_GCJ" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi striplib= old_striplib= echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6 if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi ;; *) echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 ;; esac fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) echo "$as_me:$LINENO: checking for shl_load" >&5 echo $ECHO_N "checking for shl_load... $ECHO_C" >&6 if test "${ac_cv_func_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* System header to define __stub macros and hopefully few prototypes, which can conflict with char shl_load (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char shl_load (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_shl_load) || defined (__stub___shl_load) choke me #else char (*f) () = shl_load; #endif #ifdef __cplusplus } #endif int main () { return f != shl_load; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_shl_load=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 echo "${ECHO_T}$ac_cv_func_shl_load" >&6 if test $ac_cv_func_shl_load = yes; then lt_cv_dlopen="shl_load" else echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6 if test "${ac_cv_lib_dld_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char shl_load (); int main () { shl_load (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dld_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_shl_load=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6 if test $ac_cv_lib_dld_shl_load = yes; then lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" else echo "$as_me:$LINENO: checking for dlopen" >&5 echo $ECHO_N "checking for dlopen... $ECHO_C" >&6 if test "${ac_cv_func_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* System header to define __stub macros and hopefully few prototypes, which can conflict with char dlopen (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_dlopen) || defined (__stub___dlopen) choke me #else char (*f) () = dlopen; #endif #ifdef __cplusplus } #endif int main () { return f != dlopen; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_dlopen=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 echo "${ECHO_T}$ac_cv_func_dlopen" >&6 if test $ac_cv_func_dlopen = yes; then lt_cv_dlopen="dlopen" else echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6 if test "${ac_cv_lib_svld_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dlopen (); int main () { dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_svld_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_svld_dlopen=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6 if test $ac_cv_lib_svld_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6 if test "${ac_cv_lib_dld_dld_link+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char dld_link (); int main () { dld_link (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dld_dld_link=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_dld_link=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6 if test $ac_cv_lib_dld_dld_link = yes; then lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6 if test "${lt_cv_dlopen_self+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_unknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 echo "${ECHO_T}$lt_cv_dlopen_self" >&6 if test "x$lt_cv_dlopen_self" = xyes; then LDFLAGS="$LDFLAGS $link_static_flag" echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6 if test "${lt_cv_dlopen_self_static+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6 fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_GCJ \ CC_GCJ \ LD_GCJ \ lt_prog_compiler_wl_GCJ \ lt_prog_compiler_pic_GCJ \ lt_prog_compiler_static_GCJ \ lt_prog_compiler_no_builtin_flag_GCJ \ export_dynamic_flag_spec_GCJ \ thread_safe_flag_spec_GCJ \ whole_archive_flag_spec_GCJ \ enable_shared_with_static_runtimes_GCJ \ old_archive_cmds_GCJ \ old_archive_from_new_cmds_GCJ \ predep_objects_GCJ \ postdep_objects_GCJ \ predeps_GCJ \ postdeps_GCJ \ compiler_lib_search_path_GCJ \ archive_cmds_GCJ \ archive_expsym_cmds_GCJ \ postinstall_cmds_GCJ \ postuninstall_cmds_GCJ \ old_archive_from_expsyms_cmds_GCJ \ allow_undefined_flag_GCJ \ no_undefined_flag_GCJ \ export_symbols_cmds_GCJ \ hardcode_libdir_flag_spec_GCJ \ hardcode_libdir_flag_spec_ld_GCJ \ hardcode_libdir_separator_GCJ \ hardcode_automatic_GCJ \ module_cmds_GCJ \ module_expsym_cmds_GCJ \ lt_cv_prog_compiler_c_o_GCJ \ exclude_expsyms_GCJ \ include_expsyms_GCJ; do case $var in old_archive_cmds_GCJ | \ old_archive_from_new_cmds_GCJ | \ archive_cmds_GCJ | \ archive_expsym_cmds_GCJ | \ module_cmds_GCJ | \ module_expsym_cmds_GCJ | \ old_archive_from_expsyms_cmds_GCJ | \ export_symbols_cmds_GCJ | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_GCJ # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # A language-specific compiler. CC=$lt_compiler_GCJ # Is the compiler the GNU C compiler? with_gcc=$GCC_GCJ # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_GCJ # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_GCJ # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext='$shrext' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_GCJ pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ # Must we lock files when doing compilation ? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_GCJ # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_GCJ old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_GCJ archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_GCJ module_expsym_cmds=$lt_module_expsym_cmds_GCJ # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_GCJ # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_GCJ # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_GCJ # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_GCJ # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_GCJ # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_GCJ # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_GCJ # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_GCJ # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_GCJ # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_GCJ # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_GCJ # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_GCJ" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_GCJ # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_GCJ # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_GCJ # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_GCJ # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" else tagname="" fi ;; RC) # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o objext_RC=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # Allow CC to be a program name with arguments. compiler=$CC # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${RC-"windres"} compiler=$CC compiler_RC=$CC lt_cv_prog_compiler_c_o_RC=yes # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_RC \ CC_RC \ LD_RC \ lt_prog_compiler_wl_RC \ lt_prog_compiler_pic_RC \ lt_prog_compiler_static_RC \ lt_prog_compiler_no_builtin_flag_RC \ export_dynamic_flag_spec_RC \ thread_safe_flag_spec_RC \ whole_archive_flag_spec_RC \ enable_shared_with_static_runtimes_RC \ old_archive_cmds_RC \ old_archive_from_new_cmds_RC \ predep_objects_RC \ postdep_objects_RC \ predeps_RC \ postdeps_RC \ compiler_lib_search_path_RC \ archive_cmds_RC \ archive_expsym_cmds_RC \ postinstall_cmds_RC \ postuninstall_cmds_RC \ old_archive_from_expsyms_cmds_RC \ allow_undefined_flag_RC \ no_undefined_flag_RC \ export_symbols_cmds_RC \ hardcode_libdir_flag_spec_RC \ hardcode_libdir_flag_spec_ld_RC \ hardcode_libdir_separator_RC \ hardcode_automatic_RC \ module_cmds_RC \ module_expsym_cmds_RC \ lt_cv_prog_compiler_c_o_RC \ exclude_expsyms_RC \ include_expsyms_RC; do case $var in old_archive_cmds_RC | \ old_archive_from_new_cmds_RC | \ archive_cmds_RC | \ archive_expsym_cmds_RC | \ module_cmds_RC | \ module_expsym_cmds_RC | \ old_archive_from_expsyms_cmds_RC | \ export_symbols_cmds_RC | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_RC # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # A language-specific compiler. CC=$lt_compiler_RC # Is the compiler the GNU C compiler? with_gcc=$GCC_RC # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_RC # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_RC # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext='$shrext' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_RC pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC # Must we lock files when doing compilation ? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_RC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_RC old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_RC archive_expsym_cmds=$lt_archive_expsym_cmds_RC postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_RC module_expsym_cmds=$lt_module_expsym_cmds_RC # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_RC # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_RC # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_RC # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_RC # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_RC # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_RC # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_RC # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_RC # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_RC # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_RC # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_RC # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$hardcode_automatic_RC # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_RC # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$fix_srcfile_path_RC" # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_RC # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_RC # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_RC # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_RC # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" ;; *) { { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5 echo "$as_me: error: Unsupported tag name: $tagname" >&2;} { (exit 1); exit 1; }; } ;; esac # Append the new tag name to the list of available tags. if test -n "$tagname" ; then available_tags="$available_tags $tagname" fi fi done IFS="$lt_save_ifs" # Now substitute the updated list of available tags. if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then mv "${ofile}T" "$ofile" chmod +x "$ofile" else rm -f "${ofile}T" { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5 echo "$as_me: error: unable to update list of available tagged configurations." >&2;} { (exit 1); exit 1; }; } fi fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' # Prevent multiple expansion echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } _ACEOF rm -f conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6 if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi CPPFLAGS="${CPPFLAGS} -I\$(top_srcdir)/corelinux/ -I\$(top_srcdir)/ -I\$(top_srcdir)/src/testdrivers/include -I\$(srcdir)/include " ac_config_files="$ac_config_files Makefile corelinux.spec admin/Makefile debian/Makefile doc/Makefile doc/corelinux.cfg corelinux/Makefile src/Makefile src/classlibs/Makefile src/classlibs/corelinux/Makefile src/utils/Makefile src/utils/csamon/Makefile src/testdrivers/Makefile src/testdrivers/include/Makefile src/testdrivers/exmplsupport/Makefile src/testdrivers/ex1/Makefile src/testdrivers/ex1/include/Makefile src/testdrivers/ex2/Makefile src/testdrivers/ex3/Makefile src/testdrivers/ex3/include/Makefile src/testdrivers/ex4/Makefile src/testdrivers/ex4/include/Makefile src/testdrivers/ex5/Makefile src/testdrivers/ex6/Makefile src/testdrivers/ex6/include/Makefile src/testdrivers/ex7/Makefile src/testdrivers/ex7/include/Makefile src/testdrivers/ex8/Makefile src/testdrivers/ex8/include/Makefile src/testdrivers/ex9/Makefile src/testdrivers/ex10/Makefile src/testdrivers/ex11/Makefile src/testdrivers/ex11/include/Makefile src/testdrivers/ex12/Makefile src/testdrivers/ex12/include/Makefile src/testdrivers/ex13/Makefile src/testdrivers/ex14/Makefile src/testdrivers/ex15/Makefile src/testdrivers/ex15/include/Makefile src/testdrivers/ex16/Makefile src/testdrivers/ex17/Makefile src/testdrivers/ex17/include/Makefile src/testdrivers/ex18/Makefile src/testdrivers/ex18/include/Makefile src/testdrivers/ex19/Makefile src/testdrivers/ex19/include/Makefile src/testdrivers/ex20/Makefile src/testdrivers/ex20/include/Makefile src/testdrivers/ex21/Makefile src/testdrivers/ex21/include/Makefile src/testdrivers/ex22/Makefile src/testdrivers/ex22/include/Makefile" ac_config_commands="$ac_config_commands default" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, don't put newlines in cache variables' values. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. { (set) 2>&1 | case `(ac_space=' '; set | grep ac_space) 2>&1` in *ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } | sed ' t clear : clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ : end' >>confcache if diff $cache_file confcache >/dev/null 2>&1; then :; else if test -w $cache_file; then test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" cat confcache >$cache_file else echo "not updating unwritable cache $cache_file" fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/; s/:*\${srcdir}:*/:/; s/:*@srcdir@:*/:/; s/^\([^=]*=[ ]*\):*/\1/; s/:*$//; s/^[^=]*=[ ]*$//; }' fi DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_i=`echo "$ac_i" | sed 's/\$U\././;s/\.o$//;s/\.obj$//'` # 2. Add them. ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi # Support unset when possible. if (FOO=FOO; unset FOO) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # Work around bugs in pre-3.0 UWIN ksh. $as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else as_mkdir_p=false fi as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" # Sed expression to map a string onto a valid variable name. as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH exec 6>&1 # Open the log real soon, to keep \$[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. Logging --version etc. is OK. exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX } >&5 cat >&5 <<_CSEOF This file was extended by $as_me, which was generated by GNU Autoconf 2.57. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ _CSEOF echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 echo >&5 _ACEOF # Files that config.status was made for. if test -n "$ac_config_files"; then echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS fi if test -n "$ac_config_headers"; then echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS fi if test -n "$ac_config_links"; then echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS fi if test -n "$ac_config_commands"; then echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS fi cat >>$CONFIG_STATUS <<\_ACEOF ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ config.status configured by $0, generated by GNU Autoconf 2.57, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." srcdir=$srcdir INSTALL="$INSTALL" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "x$1" : 'x\([^=]*\)='` ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` ac_shift=: ;; -*) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; *) # This is not an option, so the user has probably given explicit # arguments. ac_option=$1 ac_need_defaults=false;; esac case $ac_option in # Handling of the options. _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --vers* | -V ) echo "$ac_cs_version"; exit 0 ;; --he | --h) # Conflict between --help and --header { { echo "$as_me:$LINENO: error: ambiguous option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; };; --help | --hel | -h ) echo "$ac_cs_usage"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ac_need_defaults=false;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF if \$ac_cs_recheck; then echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # INIT-COMMANDS section. # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_config_target in $ac_config_targets do case "$ac_config_target" in # Handling of arguments. "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; "corelinux.spec" ) CONFIG_FILES="$CONFIG_FILES corelinux.spec" ;; "admin/Makefile" ) CONFIG_FILES="$CONFIG_FILES admin/Makefile" ;; "debian/Makefile" ) CONFIG_FILES="$CONFIG_FILES debian/Makefile" ;; "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; "doc/corelinux.cfg" ) CONFIG_FILES="$CONFIG_FILES doc/corelinux.cfg" ;; "corelinux/Makefile" ) CONFIG_FILES="$CONFIG_FILES corelinux/Makefile" ;; "src/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "src/classlibs/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/classlibs/Makefile" ;; "src/classlibs/corelinux/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/classlibs/corelinux/Makefile" ;; "src/utils/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/utils/Makefile" ;; "src/utils/csamon/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/utils/csamon/Makefile" ;; "src/testdrivers/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/Makefile" ;; "src/testdrivers/include/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/include/Makefile" ;; "src/testdrivers/exmplsupport/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/exmplsupport/Makefile" ;; "src/testdrivers/ex1/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex1/Makefile" ;; "src/testdrivers/ex1/include/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex1/include/Makefile" ;; "src/testdrivers/ex2/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex2/Makefile" ;; "src/testdrivers/ex3/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex3/Makefile" ;; "src/testdrivers/ex3/include/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex3/include/Makefile" ;; "src/testdrivers/ex4/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex4/Makefile" ;; "src/testdrivers/ex4/include/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex4/include/Makefile" ;; "src/testdrivers/ex5/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex5/Makefile" ;; "src/testdrivers/ex6/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex6/Makefile" ;; "src/testdrivers/ex6/include/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex6/include/Makefile" ;; "src/testdrivers/ex7/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex7/Makefile" ;; "src/testdrivers/ex7/include/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex7/include/Makefile" ;; "src/testdrivers/ex8/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex8/Makefile" ;; "src/testdrivers/ex8/include/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex8/include/Makefile" ;; "src/testdrivers/ex9/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex9/Makefile" ;; "src/testdrivers/ex10/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex10/Makefile" ;; "src/testdrivers/ex11/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex11/Makefile" ;; "src/testdrivers/ex11/include/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex11/include/Makefile" ;; "src/testdrivers/ex12/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex12/Makefile" ;; "src/testdrivers/ex12/include/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex12/include/Makefile" ;; "src/testdrivers/ex13/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex13/Makefile" ;; "src/testdrivers/ex14/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex14/Makefile" ;; "src/testdrivers/ex15/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex15/Makefile" ;; "src/testdrivers/ex15/include/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex15/include/Makefile" ;; "src/testdrivers/ex16/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex16/Makefile" ;; "src/testdrivers/ex17/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex17/Makefile" ;; "src/testdrivers/ex17/include/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex17/include/Makefile" ;; "src/testdrivers/ex18/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex18/Makefile" ;; "src/testdrivers/ex18/include/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex18/include/Makefile" ;; "src/testdrivers/ex19/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex19/Makefile" ;; "src/testdrivers/ex19/include/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex19/include/Makefile" ;; "src/testdrivers/ex20/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex20/Makefile" ;; "src/testdrivers/ex20/include/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex20/include/Makefile" ;; "src/testdrivers/ex21/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex21/Makefile" ;; "src/testdrivers/ex21/include/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex21/include/Makefile" ;; "src/testdrivers/ex22/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex22/Makefile" ;; "src/testdrivers/ex22/include/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/testdrivers/ex22/include/Makefile" ;; "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason to put it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Create a temporary directory, and hook for its removal unless debugging. $debug || { trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./confstat$$-$RANDOM (umask 077 && mkdir $tmp) } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "\$CONFIG_FILES"; then # Protect against being on the right side of a sed subst in config.status. sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF s,@SHELL@,$SHELL,;t t s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t s,@exec_prefix@,$exec_prefix,;t t s,@prefix@,$prefix,;t t s,@program_transform_name@,$program_transform_name,;t t s,@bindir@,$bindir,;t t s,@sbindir@,$sbindir,;t t s,@libexecdir@,$libexecdir,;t t s,@datadir@,$datadir,;t t s,@sysconfdir@,$sysconfdir,;t t s,@sharedstatedir@,$sharedstatedir,;t t s,@localstatedir@,$localstatedir,;t t s,@libdir@,$libdir,;t t s,@includedir@,$includedir,;t t s,@oldincludedir@,$oldincludedir,;t t s,@infodir@,$infodir,;t t s,@mandir@,$mandir,;t t s,@build_alias@,$build_alias,;t t s,@host_alias@,$host_alias,;t t s,@target_alias@,$target_alias,;t t s,@DEFS@,$DEFS,;t t s,@ECHO_C@,$ECHO_C,;t t s,@ECHO_N@,$ECHO_N,;t t s,@ECHO_T@,$ECHO_T,;t t s,@LIBS@,$LIBS,;t t s,@CORELINUX_MAJOR_VERSION@,$CORELINUX_MAJOR_VERSION,;t t s,@CORELINUX_MINOR_VERSION@,$CORELINUX_MINOR_VERSION,;t t s,@CORELINUX_MICRO_VERSION@,$CORELINUX_MICRO_VERSION,;t t s,@CORELINUX_VERSION@,$CORELINUX_VERSION,;t t s,@LIBCORELINUX_SO_VERSION@,$LIBCORELINUX_SO_VERSION,;t t s,@LIBEXMPLSUPP_SO_VERSION@,$LIBEXMPLSUPP_SO_VERSION,;t t s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t s,@INSTALL_DATA@,$INSTALL_DATA,;t t s,@CYGPATH_W@,$CYGPATH_W,;t t s,@PACKAGE@,$PACKAGE,;t t s,@VERSION@,$VERSION,;t t s,@ACLOCAL@,$ACLOCAL,;t t s,@AUTOCONF@,$AUTOCONF,;t t s,@AUTOMAKE@,$AUTOMAKE,;t t s,@AUTOHEADER@,$AUTOHEADER,;t t s,@MAKEINFO@,$MAKEINFO,;t t s,@AMTAR@,$AMTAR,;t t s,@install_sh@,$install_sh,;t t s,@STRIP@,$STRIP,;t t s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t s,@AWK@,$AWK,;t t s,@SET_MAKE@,$SET_MAKE,;t t s,@am__leading_dot@,$am__leading_dot,;t t s,@CXX@,$CXX,;t t s,@CXXFLAGS@,$CXXFLAGS,;t t s,@LDFLAGS@,$LDFLAGS,;t t s,@CPPFLAGS@,$CPPFLAGS,;t t s,@ac_ct_CXX@,$ac_ct_CXX,;t t s,@EXEEXT@,$EXEEXT,;t t s,@OBJEXT@,$OBJEXT,;t t s,@DEPDIR@,$DEPDIR,;t t s,@am__include@,$am__include,;t t s,@am__quote@,$am__quote,;t t s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t s,@CXXDEPMODE@,$CXXDEPMODE,;t t s,@am__fastdepCXX_TRUE@,$am__fastdepCXX_TRUE,;t t s,@am__fastdepCXX_FALSE@,$am__fastdepCXX_FALSE,;t t s,@LN_S@,$LN_S,;t t s,@RANLIB@,$RANLIB,;t t s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t s,@build@,$build,;t t s,@build_cpu@,$build_cpu,;t t s,@build_vendor@,$build_vendor,;t t s,@build_os@,$build_os,;t t s,@host@,$host,;t t s,@host_cpu@,$host_cpu,;t t s,@host_vendor@,$host_vendor,;t t s,@host_os@,$host_os,;t t s,@CC@,$CC,;t t s,@CFLAGS@,$CFLAGS,;t t s,@ac_ct_CC@,$ac_ct_CC,;t t s,@CCDEPMODE@,$CCDEPMODE,;t t s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t s,@EGREP@,$EGREP,;t t s,@ECHO@,$ECHO,;t t s,@AR@,$AR,;t t s,@ac_ct_AR@,$ac_ct_AR,;t t s,@CPP@,$CPP,;t t s,@CXXCPP@,$CXXCPP,;t t s,@F77@,$F77,;t t s,@FFLAGS@,$FFLAGS,;t t s,@ac_ct_F77@,$ac_ct_F77,;t t s,@LIBTOOL@,$LIBTOOL,;t t s,@LIBOBJS@,$LIBOBJS,;t t s,@LTLIBOBJS@,$LTLIBOBJS,;t t CEOF _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Split the substitutions into bite-sized pieces for seds with # small command number limits, like on Digital OSF/1 and HP-UX. ac_max_sed_lines=48 ac_sed_frag=1 # Number of current file. ac_beg=1 # First line for current file. ac_end=$ac_max_sed_lines # Line after last line for current file. ac_more_lines=: ac_sed_cmds= while $ac_more_lines; do if test $ac_beg -gt 1; then sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag else sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag fi if test ! -s $tmp/subs.frag; then ac_more_lines=false else # The purpose of the label and of the branching condition is to # speed up the sed processing (if there are no `@' at all, there # is no need to browse any of the substitutions). # These are the two extra sed commands mentioned above. (echo ':t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed if test -z "$ac_sed_cmds"; then ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" else ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" fi ac_sed_frag=`expr $ac_sed_frag + 1` ac_beg=$ac_end ac_end=`expr $ac_end + $ac_max_sed_lines` fi done if test -z "$ac_sed_cmds"; then ac_sed_cmds=cat fi fi # test -n "$CONFIG_FILES" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin cat >$tmp/stdin ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be # absolute. ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_builddir$INSTALL ;; esac if test x"$ac_file" != x-; then { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} rm -f "$ac_file" fi # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ if test x"$ac_file" = x-; then configure_input= else configure_input="$ac_file. " fi configure_input=$configure_input"Generated from `echo $ac_file_in | sed 's,.*/,,'` by configure." # First look for the input files in the build tree, otherwise in the # src tree. ac_file_inputs=`IFS=: for f in $ac_file_in; do case $f in -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } echo $f;; *) # Relative if test -f "$f"; then # Build tree echo $f elif test -f "$srcdir/$f"; then # Source tree echo $srcdir/$f else # /dev/null tree { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; esac done` || { (exit 1); exit 1; } _ACEOF cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s,@configure_input@,$configure_input,;t t s,@srcdir@,$ac_srcdir,;t t s,@abs_srcdir@,$ac_abs_srcdir,;t t s,@top_srcdir@,$ac_top_srcdir,;t t s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t s,@builddir@,$ac_builddir,;t t s,@abs_builddir@,$ac_abs_builddir,;t t s,@top_builddir@,$ac_top_builddir,;t t s,@abs_top_builddir@,$ac_abs_top_builddir,;t t s,@INSTALL@,$ac_INSTALL,;t t " $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out rm -f $tmp/stdin if test x"$ac_file" != x-; then mv $tmp/out $ac_file else cat $tmp/out rm -f $tmp/out fi done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # # CONFIG_HEADER section. # # These sed commands are passed to sed as "A NAME B NAME C VALUE D", where # NAME is the cpp macro being defined and VALUE is the value it is being given. # # ac_d sets the value in "#define NAME VALUE" lines. ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' ac_dB='[ ].*$,\1#\2' ac_dC=' ' ac_dD=',;t' # ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ac_uB='$,\1#\2define\3' ac_uC=' ' ac_uD=',;t' for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin cat >$tmp/stdin ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} # First look for the input files in the build tree, otherwise in the # src tree. ac_file_inputs=`IFS=: for f in $ac_file_in; do case $f in -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } echo $f;; *) # Relative if test -f "$f"; then # Build tree echo $f elif test -f "$srcdir/$f"; then # Source tree echo $srcdir/$f else # /dev/null tree { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; esac done` || { (exit 1); exit 1; } # Remove the trailing spaces. sed 's/[ ]*$//' $ac_file_inputs >$tmp/in _ACEOF # Transform confdefs.h into two sed scripts, `conftest.defines' and # `conftest.undefs', that substitutes the proper values into # config.h.in to produce config.h. The first handles `#define' # templates, and the second `#undef' templates. # And first: Protect against being on the right side of a sed subst in # config.status. Protect against being in an unquoted here document # in config.status. rm -f conftest.defines conftest.undefs # Using a here document instead of a string reduces the quoting nightmare. # Putting comments in sed scripts is not portable. # # `end' is used to avoid that the second main sed command (meant for # 0-ary CPP macros) applies to n-ary macro definitions. # See the Autoconf documentation for `clear'. cat >confdef2sed.sed <<\_ACEOF s/[\\&,]/\\&/g s,[\\$`],\\&,g t clear : clear s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp t end s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp : end _ACEOF # If some macros were called several times there might be several times # the same #defines, which is useless. Nevertheless, we may not want to # sort them, since we want the *last* AC-DEFINE to be honored. uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs rm -f confdef2sed.sed # This sed command replaces #undef with comments. This is necessary, for # example, in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. cat >>conftest.undefs <<\_ACEOF s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, _ACEOF # Break up conftest.defines because some shells have a limit on the size # of here documents, and old seds have small limits too (100 cmds). echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS echo ' :' >>$CONFIG_STATUS rm -f conftest.tail while grep . conftest.defines >/dev/null do # Write a limited-size here document to $tmp/defines.sed. echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS # Speed up: don't consider the non `#define' lines. echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS # Work around the forget-to-reset-the-flag bug. echo 't clr' >>$CONFIG_STATUS echo ': clr' >>$CONFIG_STATUS sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS echo 'CEOF sed -f $tmp/defines.sed $tmp/in >$tmp/out rm -f $tmp/in mv $tmp/out $tmp/in ' >>$CONFIG_STATUS sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail rm -f conftest.defines mv conftest.tail conftest.defines done rm -f conftest.defines echo ' fi # grep' >>$CONFIG_STATUS echo >>$CONFIG_STATUS # Break up conftest.undefs because some shells have a limit on the size # of here documents, and old seds have small limits too (100 cmds). echo ' # Handle all the #undef templates' >>$CONFIG_STATUS rm -f conftest.tail while grep . conftest.undefs >/dev/null do # Write a limited-size here document to $tmp/undefs.sed. echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS # Speed up: don't consider the non `#undef' echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS # Work around the forget-to-reset-the-flag bug. echo 't clr' >>$CONFIG_STATUS echo ': clr' >>$CONFIG_STATUS sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS echo 'CEOF sed -f $tmp/undefs.sed $tmp/in >$tmp/out rm -f $tmp/in mv $tmp/out $tmp/in ' >>$CONFIG_STATUS sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail rm -f conftest.undefs mv conftest.tail conftest.undefs done rm -f conftest.undefs cat >>$CONFIG_STATUS <<\_ACEOF # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ if test x"$ac_file" = x-; then echo "/* Generated by configure. */" >$tmp/config.h else echo "/* $ac_file. Generated by configure. */" >$tmp/config.h fi cat $tmp/in >>$tmp/config.h rm -f $tmp/in if test x"$ac_file" != x-; then if diff $ac_file $tmp/config.h >/dev/null 2>&1; then { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 echo "$as_me: $ac_file is unchanged" >&6;} else ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } rm -f $ac_file mv $tmp/config.h $ac_file fi else cat $tmp/config.h rm -f $tmp/config.h fi # Compute $ac_file's index in $config_headers. _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $ac_file | $ac_file:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $ac_file" >`(dirname $ac_file) 2>/dev/null || $as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X$ac_file : 'X\(//\)[^/]' \| \ X$ac_file : 'X\(//\)$' \| \ X$ac_file : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X$ac_file | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'`/stamp-h$_am_stamp_count done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # # CONFIG_COMMANDS section. # for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue ac_dest=`echo "$ac_file" | sed 's,:.*,,'` ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_dir=`(dirname "$ac_dest") 2>/dev/null || $as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_dest" : 'X\(//\)[^/]' \| \ X"$ac_dest" : 'X\(//\)$' \| \ X"$ac_dest" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_dest" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac # Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be # absolute. ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 echo "$as_me: executing $ac_dest commands" >&6;} case $ac_dest in depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # So let's grep whole file. if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then dirpart=`(dirname "$mf") 2>/dev/null || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` else continue fi grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue # Extract the definition of DEP_FILES from the Makefile without # running `make'. DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"` test -z "$DEPDIR" && continue # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n -e '/^U = / s///p' < "$mf"` test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR" # We invoke sed twice because it is the simplest approach to # changing $(DEPDIR) to its actual value in the expansion. for file in `sed -n -e ' /^DEP_FILES = .*\\\\$/ { s/^DEP_FILES = // :loop s/\\\\$// p n /\\\\$/ b loop p } /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`(dirname "$file") 2>/dev/null || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p $dirpart/$fdir else as_dir=$dirpart/$fdir as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5 echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;} { (exit 1); exit 1; }; }; } # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ;; default ) chmod +x debian/rules ;; esac done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi libcorelinux-0.4.32/COPYING0000664000000000000000000006126107077056103012235 0ustar GNU LIBRARY GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the library GPL. It is numbered 2 because it goes with version 2 of the ordinary GPL.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Library General Public License, applies to some specially designated Free Software Foundation software, and to any other libraries whose authors decide to use it. You can use it for your libraries, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library, or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link a program with the library, you must provide complete object files to the recipients so that they can relink them with the library, after making changes to the library and recompiling it. And you must show them these terms so they know their rights. Our method of protecting your rights has two steps: (1) copyright the library, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the library. Also, for each distributor's protection, we want to make certain that everyone understands that there is no warranty for this free library. If the library is modified by someone else and passed on, we want its recipients to know that what they have is not the original version, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that companies distributing free software will individually obtain patent licenses, thus in effect transforming the program into proprietary software. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License, which was designed for utility programs. This license, the GNU Library General Public License, applies to certain designated libraries. This license is quite different from the ordinary one; be sure to read it in full, and don't assume that anything in it is the same as in the ordinary license. The reason we have a separate public license for some libraries is that they blur the distinction we usually make between modifying or adding to a program and simply using it. Linking a program with a library, without changing the library, is in some sense simply using the library, and is analogous to running a utility program or application program. However, in a textual and legal sense, the linked executable is a combined work, a derivative of the original library, and the ordinary General Public License treats it as such. Because of this blurred distinction, using the ordinary General Public License for libraries did not effectively promote software sharing, because most developers did not use the libraries. We concluded that weaker conditions might promote sharing better. However, unrestricted linking of non-free programs would deprive the users of those programs of all benefit from the free status of the libraries themselves. This Library General Public License is intended to permit developers of non-free programs to use free libraries, while preserving your freedom as a user of such programs to change the free libraries that are incorporated in them. (We have not seen how to achieve this as regards changes in header files, but we have achieved it as regards changes in the actual functions of the Library.) The hope is that this will lead to faster development of free libraries. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, while the latter only works together with the library. Note that it is possible for a library to be covered by the ordinary General Public License rather than by this special one. GNU LIBRARY GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Library General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also compile or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. c) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. d) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Library General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS Appendix: How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! libcorelinux-0.4.32/aclocal.m40000664000000000000000000072571107743170721013054 0ustar # generated automatically by aclocal 1.7.8 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002 # Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. # Do all the work for Automake. -*- Autoconf -*- # This macro actually does too much some checks are only needed if # your package does certain things. But this isn't really a big deal. # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This program 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. # This program 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 this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # serial 10 AC_PREREQ([2.54]) # Autoconf 2.50 wants to disallow AM_ names. We explicitly allow # the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl # test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AM_MISSING_PROG(AMTAR, tar) AM_PROG_INSTALL_SH AM_PROG_INSTALL_STRIP # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl ]) ]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $1 | $1:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) # Copyright 2002 Free Software Foundation, Inc. # This program 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. # This program 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 this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.7"]) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION so it can be traced. # This function is AC_REQUIREd by AC_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.7.8])]) # Helper functions for option handling. -*- Autoconf -*- # Copyright 2001, 2002 Free Software Foundation, Inc. # This program 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. # This program 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 this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # serial 2 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # # Check to make sure that the build environment is sane. # # Copyright 1996, 1997, 2000, 2001 Free Software Foundation, Inc. # This program 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. # This program 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 this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # serial 3 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # -*- Autoconf -*- # Copyright 1997, 1999, 2000, 2001 Free Software Foundation, Inc. # This program 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. # This program 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 this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # serial 3 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # AM_AUX_DIR_EXPAND # Copyright 2001 Free Software Foundation, Inc. # This program 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. # This program 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 this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. # Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50]) AC_DEFUN([AM_AUX_DIR_EXPAND], [ # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. # Copyright 2001 Free Software Foundation, Inc. # This program 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. # This program 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 this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl install_sh=${install_sh-"$am_aux_dir/install-sh"} AC_SUBST(install_sh)]) # AM_PROG_INSTALL_STRIP # Copyright 2001 Free Software Foundation, Inc. # This program 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. # This program 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 this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # -*- Autoconf -*- # Copyright (C) 2003 Free Software Foundation, Inc. # This program 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. # This program 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 this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # serial 1 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # serial 5 -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. # This program 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. # This program 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 this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c : > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # (even with -Werror). So we grep stderr for any message # that says an option was ignored. if grep 'ignoring option' conftest.err >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking Speeds up one-time builds --enable-dependency-tracking Do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH]) ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc. # This program 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. # This program 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 this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. #serial 2 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [for mf in $CONFIG_FILES; do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # So let's grep whole file. if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi grep '^DEP_FILES *= *[[^ @%:@]]' < "$mf" > /dev/null || continue # Extract the definition of DEP_FILES from the Makefile without # running `make'. DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"` test -z "$DEPDIR" && continue # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n -e '/^U = / s///p' < "$mf"` test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR" # We invoke sed twice because it is the simplest approach to # changing $(DEPDIR) to its actual value in the expansion. for file in `sed -n -e ' /^DEP_FILES = .*\\\\$/ { s/^DEP_FILES = // :loop s/\\\\$// p n /\\\\$/ b loop p } /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. # This program 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. # This program 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 this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # serial 2 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright 1997, 2000, 2001 Free Software Foundation, Inc. # This program 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. # This program 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 this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # serial 5 AC_PREREQ(2.52) # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE]) AC_SUBST([$1_FALSE]) if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]) fi])]) # Like AC_CONFIG_HEADER, but automatically create stamp file. -*- Autoconf -*- # Copyright 1996, 1997, 2000, 2001 Free Software Foundation, Inc. # This program 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. # This program 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 this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. AC_PREREQ([2.52]) # serial 6 # AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # serial 47 AC_PROG_LIBTOOL # Debian $Rev: 74 $ # AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) # ----------------------------------------------------------- # If this macro is not defined by Autoconf, define it here. m4_ifdef([AC_PROVIDE_IFELSE], [], [m4_define([AC_PROVIDE_IFELSE], [m4_ifdef([AC_PROVIDE_$1], [$2], [$3])])]) # AC_PROG_LIBTOOL # --------------- AC_DEFUN([AC_PROG_LIBTOOL], [AC_REQUIRE([_AC_PROG_LIBTOOL])dnl dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX. AC_PROVIDE_IFELSE([AC_PROG_CXX], [AC_LIBTOOL_CXX], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX ])]) dnl And a similar setup for Fortran 77 support AC_PROVIDE_IFELSE([AC_PROG_F77], [AC_LIBTOOL_F77], [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77 ])]) dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly. dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [AC_LIBTOOL_GCJ], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [AC_LIBTOOL_GCJ], [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ], [AC_LIBTOOL_GCJ], [ifdef([AC_PROG_GCJ], [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])]) ifdef([A][M_PROG_GCJ], [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])]) ifdef([LT_AC_PROG_GCJ], [define([LT_AC_PROG_GCJ], defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])]) ])])# AC_PROG_LIBTOOL # _AC_PROG_LIBTOOL # ---------------- AC_DEFUN([_AC_PROG_LIBTOOL], [AC_REQUIRE([AC_LIBTOOL_SETUP])dnl AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl # Prevent multiple expansion define([AC_PROG_LIBTOOL], []) ])# _AC_PROG_LIBTOOL # AC_LIBTOOL_SETUP # ---------------- AC_DEFUN([AC_LIBTOOL_SETUP], [AC_PREREQ(2.50)dnl AC_REQUIRE([AC_ENABLE_SHARED])dnl AC_REQUIRE([AC_ENABLE_STATIC])dnl AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_LD])dnl AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl AC_REQUIRE([AC_PROG_NM])dnl AC_REQUIRE([AC_PROG_LN_S])dnl AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl # Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! AC_REQUIRE([AC_OBJEXT])dnl AC_REQUIRE([AC_EXEEXT])dnl dnl AC_LIBTOOL_SYS_MAX_CMD_LEN AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE AC_LIBTOOL_OBJDIR AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl _LT_AC_PROG_ECHO_BACKSLASH case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='sed -e s/^X//' [sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'] # Same as above, but do not quote variable references. [double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'] # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Constants: rm="rm -f" # Global variables: default_ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except M$VC, # which needs '.lib'). libext=a ltmain="$ac_aux_dir/ltmain.sh" ofile="$default_ofile" with_gnu_ld="$lt_cv_prog_gnu_ld" AC_CHECK_TOOL(AR, ar, false) AC_CHECK_TOOL(RANLIB, ranlib, :) AC_CHECK_TOOL(STRIP, strip, :) old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru test -z "$AS" && AS=as test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$LD" && LD=ld test -z "$LN_S" && LN_S="ln -s" test -z "$MAGIC_CMD" && MAGIC_CMD=file test -z "$NM" && NM=nm test -z "$SED" && SED=sed test -z "$OBJDUMP" && OBJDUMP=objdump test -z "$RANLIB" && RANLIB=: test -z "$STRIP" && STRIP=: test -z "$ac_objext" && ac_objext=o # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds" ;; *) old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi # Only perform the check for file, if the check method requires it case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then AC_PATH_MAGIC fi ;; esac AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], enable_win32_dll=yes, enable_win32_dll=no) AC_ARG_ENABLE([libtool-lock], [AC_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes AC_ARG_WITH([pic], [AC_HELP_STRING([--with-pic], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [pic_mode="$withval"], [pic_mode=default]) test -z "$pic_mode" && pic_mode=default # Use C for the default configuration in the libtool script tagname= AC_LIBTOOL_LANG_C_CONFIG _LT_AC_TAGCONFIG ])# AC_LIBTOOL_SETUP # _LT_AC_SYS_COMPILER # ------------------- AC_DEFUN([_LT_AC_SYS_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_AC_SYS_COMPILER # _LT_AC_SYS_LIBPATH_AIX # ---------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX], [AC_LINK_IFELSE(AC_LANG_PROGRAM,[ aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'`; fi],[]) if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ])# _LT_AC_SYS_LIBPATH_AIX # _LT_AC_SHELL_INIT(ARG) # ---------------------- AC_DEFUN([_LT_AC_SHELL_INIT], [ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], [AC_DIVERT_PUSH(NOTICE)]) $1 AC_DIVERT_POP ])# _LT_AC_SHELL_INIT # _LT_AC_PROG_ECHO_BACKSLASH # -------------------------- # Add some code to the start of the generated configure script which # will find an echo command which doesn't interpret backslashes. AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], [_LT_AC_SHELL_INIT([ # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` ;; esac echo=${ECHO-echo} if test "X[$]1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X[$]1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then # Yippee, $echo works! : else # Restart under the correct shell. exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} fi if test "X[$]1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null && echo_test_string="`eval $cmd`" && (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null then break fi done fi if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$echo" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. echo='print -r' elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} else # Try using printf. echo='printf %s\n' if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL echo="$CONFIG_SHELL [$]0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$CONFIG_SHELL [$]0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "[$]0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} else # Oops. We lost completely, so just stick with echo. echo=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. ECHO=$echo if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" fi AC_SUBST(ECHO) ])])# _LT_AC_PROG_ECHO_BACKSLASH # _LT_AC_LOCK # ----------- AC_DEFUN([_LT_AC_LOCK], [AC_ARG_ENABLE([libtool-lock], [AC_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '[#]line __oline__ "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case "`/usr/bin/file conftest.o`" in *32-bit*) case $host in x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], [*-*-cygwin* | *-*-mingw* | *-*-pw32*) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; ]) esac need_locks="$enable_libtool_lock" ])# _LT_AC_LOCK # AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [AC_REQUIRE([LT_AC_PROG_SED]) AC_CACHE_CHECK([$1], [$2], [$2=no ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) printf "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test ! -s conftest.err; then $2=yes fi fi $rm conftest* ]) if test x"[$]$2" = xyes; then ifelse([$5], , :, [$5]) else ifelse([$6], , :, [$6]) fi ])# AC_LIBTOOL_COMPILER_OPTION # AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ------------------------------------------------------------ # Check whether the given compiler option works AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $3" printf "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD else $2=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" ]) if test x"[$]$2" = xyes; then ifelse([$4], , :, [$4]) else ifelse([$5], , :, [$5]) fi ])# AC_LIBTOOL_LINKER_OPTION # AC_LIBTOOL_SYS_MAX_CMD_LEN # -------------------------- AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [# find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 testring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; *) # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while (test "X"`$CONFIG_SHELL [$]0 --fallback-echo "X$testring" 2>/dev/null` \ = "XX$testring") >/dev/null 2>&1 && new_result=`expr "X$testring" : ".*" 2>&1` && lt_cv_sys_max_cmd_len=$new_result && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` testring=$testring$testring done testring= # Add a significant safety factor because C++ compilers can tack on massive # amounts of additional arguments before passing them to the linker. # It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` ;; esac ]) if test -n $lt_cv_sys_max_cmd_len ; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi ])# AC_LIBTOOL_SYS_MAX_CMD_LEN # _LT_AC_CHECK_DLFCN # -------------------- AC_DEFUN([_LT_AC_CHECK_DLFCN], [AC_CHECK_HEADERS(dlfcn.h)dnl ])# _LT_AC_CHECK_DLFCN # _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ------------------------------------------------------------------ AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], [AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl if test "$cross_compiling" = yes; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } exit (status); }] EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_unknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_AC_TRY_DLOPEN_SELF # AC_LIBTOOL_DLOPEN_SELF # ------------------- AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen="shl_load"], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen="dlopen"], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"]) ]) ]) ]) ]) ]) ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_AC_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test "x$lt_cv_dlopen_self" = xyes; then LDFLAGS="$LDFLAGS $link_static_flag" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_AC_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi ])# AC_LIBTOOL_DLOPEN_SELF # AC_LIBTOOL_PROG_CC_C_O([TAGNAME]) # --------------------------------- # Check to see if options -c and -o are simultaneously supported by compiler AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O], [AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $rm -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext # According to Tom Tromey, Ian Lance Taylor reported there are C compilers # that will create temporary files in the current directory regardless of # the output directory. Thus, making CWD read-only will cause this test # to fail, enabling locking or at least warning the user not to do parallel # builds. chmod -w . lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test ! -s out/conftest.err; then _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . $rm conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files $rm out/* && rmdir out cd .. rmdir conftest $rm conftest* ]) ])# AC_LIBTOOL_PROG_CC_C_O # AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME]) # ----------------------------------------- # Check to see if we can do hard links to lock some files if needed AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_REQUIRE([_LT_AC_LOCK])dnl hard_links="nottested" if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test "$hard_links" = no; then AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi ])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS # AC_LIBTOOL_OBJDIR # ----------------- AC_DEFUN([AC_LIBTOOL_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir ])# AC_LIBTOOL_OBJDIR # AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME]) # ---------------------------------------------- # Check hardcoding attributes. AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_AC_TAGVAR(hardcode_action, $1)= if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \ test -n "$_LT_AC_TAGVAR(runpath_var $1)" || \ test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)"="Xyes" ; then # We can hardcode non-existant directories. if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no && test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then # Linking always hardcodes the temporary library directory. _LT_AC_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_AC_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_AC_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)]) if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi ])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH # AC_LIBTOOL_SYS_LIB_STRIP # ------------------------ AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP], [striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi ])# AC_LIBTOOL_SYS_LIB_STRIP # AC_LIBTOOL_SYS_DYNAMIC_LINKER # ----------------------------- # PORTME Fill in your ld.so characteristics AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_MSG_CHECKING([dynamic linker characteristics]) library_names_spec= libname_spec='lib$name' soname_spec= shrext=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi4*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32*) version_type=windows shrext=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext='$(test .$module = .yes && echo .so || echo .dylib)' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` else sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' fi sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; kfreebsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='GNU ld.so' ;; freebsd*) objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; *) # from 3.2 on shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case "$host_cpu" in ia64*) shrext='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; nto-qnx*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[[89]] | openbsd2.[[89]].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; sco3.2v5*) version_type=osf soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no export_dynamic_flag_spec='${wl}-Blargedynsym' runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test "$dynamic_linker" = no && can_build_shared=no ])# AC_LIBTOOL_SYS_DYNAMIC_LINKER # _LT_AC_TAGCONFIG # ---------------- AC_DEFUN([_LT_AC_TAGCONFIG], [AC_ARG_WITH([tags], [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@], [include additional configurations @<:@automatic@:>@])], [tagnames="$withval"]) if test -f "$ltmain" && test -n "$tagnames"; then if test ! -f "${ofile}"; then AC_MSG_WARN([output file `$ofile' does not exist]) fi if test -z "$LTCC"; then eval "`$SHELL ${ofile} --config | grep '^LTCC='`" if test -z "$LTCC"; then AC_MSG_WARN([output file `$ofile' does not look like a libtool script]) else AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile']) fi fi # Extract list of available tagged configurations in $ofile. # Note that this assumes the entire list is on one line. available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for tagname in $tagnames; do IFS="$lt_save_ifs" # Check whether tagname contains only valid characters case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in "") ;; *) AC_MSG_ERROR([invalid tag name: $tagname]) ;; esac if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null then AC_MSG_ERROR([tag name \"$tagname\" already exists]) fi # Update the list of available tags. if test -n "$tagname"; then echo appending configuration tag \"$tagname\" to $ofile case $tagname in CXX) if test -n "$CXX" && test "X$CXX" != "Xno"; then AC_LIBTOOL_LANG_CXX_CONFIG else tagname="" fi ;; F77) if test -n "$F77" && test "X$F77" != "Xno"; then AC_LIBTOOL_LANG_F77_CONFIG else tagname="" fi ;; GCJ) if test -n "$GCJ" && test "X$GCJ" != "Xno"; then AC_LIBTOOL_LANG_GCJ_CONFIG else tagname="" fi ;; RC) AC_LIBTOOL_LANG_RC_CONFIG ;; *) AC_MSG_ERROR([Unsupported tag name: $tagname]) ;; esac # Append the new tag name to the list of available tags. if test -n "$tagname" ; then available_tags="$available_tags $tagname" fi fi done IFS="$lt_save_ifs" # Now substitute the updated list of available tags. if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then mv "${ofile}T" "$ofile" chmod +x "$ofile" else rm -f "${ofile}T" AC_MSG_ERROR([unable to update list of available tagged configurations.]) fi fi ])# _LT_AC_TAGCONFIG # AC_LIBTOOL_DLOPEN # ----------------- # enable checks for dlopen support AC_DEFUN([AC_LIBTOOL_DLOPEN], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP]) ])# AC_LIBTOOL_DLOPEN # AC_LIBTOOL_WIN32_DLL # -------------------- # declare package support for building win32 dll's AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_BEFORE([$0], [AC_LIBTOOL_SETUP]) ])# AC_LIBTOOL_WIN32_DLL # AC_ENABLE_SHARED([DEFAULT]) # --------------------------- # implement the --enable-shared flag # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. AC_DEFUN([AC_ENABLE_SHARED], [define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl AC_ARG_ENABLE([shared], [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_shared=]AC_ENABLE_SHARED_DEFAULT) ])# AC_ENABLE_SHARED # AC_DISABLE_SHARED # ----------------- #- set the default shared flag to --disable-shared AC_DEFUN([AC_DISABLE_SHARED], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_ENABLE_SHARED(no) ])# AC_DISABLE_SHARED # AC_ENABLE_STATIC([DEFAULT]) # --------------------------- # implement the --enable-static flag # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. AC_DEFUN([AC_ENABLE_STATIC], [define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl AC_ARG_ENABLE([static], [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_static=]AC_ENABLE_STATIC_DEFAULT) ])# AC_ENABLE_STATIC # AC_DISABLE_STATIC # ----------------- # set the default static flag to --disable-static AC_DEFUN([AC_DISABLE_STATIC], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_ENABLE_STATIC(no) ])# AC_DISABLE_STATIC # AC_ENABLE_FAST_INSTALL([DEFAULT]) # --------------------------------- # implement the --enable-fast-install flag # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. AC_DEFUN([AC_ENABLE_FAST_INSTALL], [define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl AC_ARG_ENABLE([fast-install], [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT) ])# AC_ENABLE_FAST_INSTALL # AC_DISABLE_FAST_INSTALL # ----------------------- # set the default to --disable-fast-install AC_DEFUN([AC_DISABLE_FAST_INSTALL], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_ENABLE_FAST_INSTALL(no) ])# AC_DISABLE_FAST_INSTALL # AC_LIBTOOL_PICMODE([MODE]) # -------------------------- # implement the --with-pic flag # MODE is either `yes' or `no'. If omitted, it defaults to `both'. AC_DEFUN([AC_LIBTOOL_PICMODE], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl pic_mode=ifelse($#,1,$1,default) ])# AC_LIBTOOL_PICMODE # AC_PROG_EGREP # ------------- # This is predefined starting with Autoconf 2.54, so this conditional # definition can be removed once we require Autoconf 2.54 or later. m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP], [AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep], [if echo a | (grep -E '(a|b)') >/dev/null 2>&1 then ac_cv_prog_egrep='grep -E' else ac_cv_prog_egrep='egrep' fi]) EGREP=$ac_cv_prog_egrep AC_SUBST([EGREP]) ])]) # AC_PATH_TOOL_PREFIX # ------------------- # find a file program which can recognise shared library AC_DEFUN([AC_PATH_TOOL_PREFIX], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="ifelse([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$1; then lt_cv_path_MAGIC_CMD="$ac_dir/$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac]) MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi ])# AC_PATH_TOOL_PREFIX # AC_PATH_MAGIC # ------------- # find a file program which can recognise a shared library AC_DEFUN([AC_PATH_MAGIC], [AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# AC_PATH_MAGIC # AC_PROG_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([AC_PROG_LD], [AC_ARG_WITH([gnu-ld], [AC_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test "$withval" = no || with_gnu_ld=yes], [with_gnu_ld=no]) AC_REQUIRE([LT_AC_PROG_SED])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case "$host_cpu" in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; irix5* | irix6* | nonstopux*) case $host_os in irix5* | nonstopux*) # this will be overridden with pass_all, but let us keep it just in case lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" ;; *) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac # this will be overridden with pass_all, but let us keep it just in case lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[[1234]] dynamic lib MIPS - version 1" ;; esac lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*` lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux*) # linux always uses pass_all now, this code is the old way (tm) case $host_cpu in alpha* | hppa* | i*86 | ia64* | m68* | mips* | powerpc* | sparc* | s390* | sh*) lt_cv_deplibs_check_method=pass_all ;; *) # glibc up to 2.1.1 does not perform some relocations on ARM lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; esac lt_cv_deplibs_check_method=pass_all lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; nto-qnx*) lt_cv_deplibs_check_method=unknown ;; openbsd*) lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object' else lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library' fi ;; osf3* | osf4* | osf5*) # this will be overridden with pass_all, but let us keep it just in case lt_cv_deplibs_check_method='file_magic COFF format alpha shared library' lt_cv_file_magic_test_file=/shlib/libc.so lt_cv_deplibs_check_method=pass_all ;; sco3.2v5*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all lt_cv_file_magic_test_file=/lib/libc.so ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; esac ;; sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown ])# AC_DEPLIBS_CHECK_METHOD # AC_PROG_NM # ---------- # find the pathname to a BSD-compatible name lister AC_DEFUN([AC_PROG_NM], [AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/${ac_tool_prefix}nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac esac fi done IFS="$lt_save_ifs" test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm fi]) NM="$lt_cv_path_NM" ])# AC_PROG_NM # AC_CHECK_LIBM # ------------- # check for math library AC_DEFUN([AC_CHECK_LIBM], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM="-lm") ;; esac ])# AC_CHECK_LIBM # AC_LIBLTDL_CONVENIENCE([DIRECTORY]) # ----------------------------------- # sets LIBLTDL to the link flags for the libltdl convenience library and # LTDLINCL to the include flags for the libltdl header and adds # --enable-ltdl-convenience to the configure arguments. Note that LIBLTDL # and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If # DIRECTORY is not provided, it is assumed to be `libltdl'. LIBLTDL will # be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed with # '${top_srcdir}/' (note the single quotes!). If your package is not # flat and you're not using automake, define top_builddir and # top_srcdir appropriately in the Makefiles. AC_DEFUN([AC_LIBLTDL_CONVENIENCE], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl case $enable_ltdl_convenience in no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; "") enable_ltdl_convenience=yes ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; esac LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) # For backwards non-gettext consistent compatibility... INCLTDL="$LTDLINCL" ])# AC_LIBLTDL_CONVENIENCE # AC_LIBLTDL_INSTALLABLE([DIRECTORY]) # ----------------------------------- # sets LIBLTDL to the link flags for the libltdl installable library and # LTDLINCL to the include flags for the libltdl header and adds # --enable-ltdl-install to the configure arguments. Note that LIBLTDL # and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If # DIRECTORY is not provided and an installed libltdl is not found, it is # assumed to be `libltdl'. LIBLTDL will be prefixed with '${top_builddir}/' # and LTDLINCL will be prefixed with '${top_srcdir}/' (note the single # quotes!). If your package is not flat and you're not using automake, # define top_builddir and top_srcdir appropriately in the Makefiles. # In the future, this macro may have to be called after AC_PROG_LIBTOOL. AC_DEFUN([AC_LIBLTDL_INSTALLABLE], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_CHECK_LIB(ltdl, lt_dlinit, [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], [if test x"$enable_ltdl_install" = xno; then AC_MSG_WARN([libltdl not installed, but installation disabled]) else enable_ltdl_install=yes fi ]) if test x"$enable_ltdl_install" = x"yes"; then ac_configure_args="$ac_configure_args --enable-ltdl-install" LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) else ac_configure_args="$ac_configure_args --enable-ltdl-install=no" LIBLTDL="-lltdl" LTDLINCL= fi # For backwards non-gettext consistent compatibility... INCLTDL="$LTDLINCL" ])# AC_LIBLTDL_INSTALLABLE # AC_LIBTOOL_CXX # -------------- # enable support for C++ libraries AC_DEFUN([AC_LIBTOOL_CXX], [AC_REQUIRE([_LT_AC_LANG_CXX]) ])# AC_LIBTOOL_CXX # _LT_AC_LANG_CXX # --------------- AC_DEFUN([_LT_AC_LANG_CXX], [AC_REQUIRE([AC_PROG_CXX]) AC_REQUIRE([AC_PROG_CXXCPP]) _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX]) ])# _LT_AC_LANG_CXX # AC_LIBTOOL_F77 # -------------- # enable support for Fortran 77 libraries AC_DEFUN([AC_LIBTOOL_F77], [AC_REQUIRE([_LT_AC_LANG_F77]) ])# AC_LIBTOOL_F77 # _LT_AC_LANG_F77 # --------------- AC_DEFUN([_LT_AC_LANG_F77], [AC_REQUIRE([AC_PROG_F77]) _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77]) ])# _LT_AC_LANG_F77 # AC_LIBTOOL_GCJ # -------------- # enable support for GCJ libraries AC_DEFUN([AC_LIBTOOL_GCJ], [AC_REQUIRE([_LT_AC_LANG_GCJ]) ])# AC_LIBTOOL_GCJ # _LT_AC_LANG_GCJ # --------------- AC_DEFUN([_LT_AC_LANG_GCJ], [AC_PROVIDE_IFELSE([AC_PROG_GCJ],[], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[], [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[], [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])], [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])], [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])]) _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ]) ])# _LT_AC_LANG_GCJ # AC_LIBTOOL_RC # -------------- # enable support for Windows resource files AC_DEFUN([AC_LIBTOOL_RC], [AC_REQUIRE([LT_AC_PROG_RC]) _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC]) ])# AC_LIBTOOL_RC # AC_LIBTOOL_LANG_C_CONFIG # ------------------------ # Ensure that the configuration vars for the C compiler are # suitably defined. Those variables are subsequently used by # AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG]) AC_DEFUN([_LT_AC_LANG_C_CONFIG], [lt_save_CC="$CC" AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_AC_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}\n' _LT_AC_SYS_COMPILER # # Check for any special shared library compilation flags. # _LT_AC_TAGVAR(lt_prog_cc_shlib, $1)= if test "$GCC" = no; then case $host_os in sco3.2v5*) _LT_AC_TAGVAR(lt_prog_cc_shlib, $1)='-belf' ;; esac fi if test -n "$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)"; then AC_MSG_WARN([`$CC' requires `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to build shared libraries]) if echo "$old_CC $old_CFLAGS " | grep "[[ ]]$]_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)[[[ ]]" >/dev/null; then : else AC_MSG_WARN([add `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to the CC or CFLAGS env variable and reconfigure]) _LT_AC_TAGVAR(lt_cv_prog_cc_can_build_shared, $1)=no fi fi # # Check to make sure the static flag actually works. # AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $_LT_AC_TAGVAR(lt_prog_compiler_static, $1) works], _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1), $_LT_AC_TAGVAR(lt_prog_compiler_static, $1), [], [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=]) AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) AC_LIBTOOL_PROG_COMPILER_PIC($1) AC_LIBTOOL_PROG_CC_C_O($1) AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) AC_LIBTOOL_PROG_LD_SHLIBS($1) AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) AC_LIBTOOL_SYS_LIB_STRIP AC_LIBTOOL_DLOPEN_SELF($1) # Report which librarie types wil actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case "$host_os" in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; darwin* | rhapsody*) if test "$GCC" = yes; then _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no case "$host_os" in rhapsody* | darwin1.[[012]]) _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[[012]]) _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' ;; 10.*) _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined dynamic_lookup' ;; esac fi ;; esac output_verbose_link_cmd='echo' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring' _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_automatic, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) AC_LIBTOOL_CONFIG($1) AC_LANG_POP CC="$lt_save_CC" ])# AC_LIBTOOL_LANG_C_CONFIG # AC_LIBTOOL_LANG_CXX_CONFIG # -------------------------- # Ensure that the configuration vars for the C compiler are # suitably defined. Those variables are subsequently used by # AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)]) AC_DEFUN([_LT_AC_LANG_CXX_CONFIG], [AC_LANG_PUSH(C++) AC_REQUIRE([AC_PROG_CXX]) AC_REQUIRE([AC_PROG_CXXCPP]) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(allow_undefined_flag, $1)= _LT_AC_TAGVAR(always_export_symbols, $1)=no _LT_AC_TAGVAR(archive_expsym_cmds, $1)= _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= _LT_AC_TAGVAR(hardcode_minus_L, $1)=no _LT_AC_TAGVAR(hardcode_automatic, $1)=no _LT_AC_TAGVAR(module_cmds, $1)= _LT_AC_TAGVAR(module_expsym_cmds, $1)= _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown _LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_AC_TAGVAR(no_undefined_flag, $1)= _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Dependencies to place before and after the object being linked: _LT_AC_TAGVAR(predep_objects, $1)= _LT_AC_TAGVAR(postdep_objects, $1)= _LT_AC_TAGVAR(predeps, $1)= _LT_AC_TAGVAR(postdeps, $1)= _LT_AC_TAGVAR(compiler_lib_search_path, $1)= # Source file extension for C++ test sources. ac_ext=cc # Object file extension for compiled C++ test sources. objext=o _LT_AC_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;\n" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_AC_SYS_COMPILER # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC _LT_AC_TAGVAR(compiler, $1)=$CC cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` # We don't want -fno-exception wen compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration AC_PROG_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ grep 'no-whole-archive' > /dev/null; then _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_AC_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_AC_TAGVAR(archive_cmds, $1)='' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes if test "$GXX" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 _LT_AC_TAGVAR(hardcode_direct, $1)=yes else # We have old collect2 _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_AC_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty executable. _LT_AC_SYS_LIBPATH_AIX _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. _LT_AC_SYS_LIBPATH_AIX _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # -bexpall does not export symbols beginning with underscore (_) _LT_AC_TAGVAR(always_export_symbols, $1)=yes # Exported symbols can be pulled into shared objects from archives _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' ' _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds it's shared libraries. _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_AC_TAGVAR(always_export_symbols, $1)=no _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; darwin* | rhapsody*) if test "$GXX" = yes; then _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no case "$host_os" in rhapsody* | darwin1.[[012]]) _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[[012]]) _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' ;; 10.*) _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined dynamic_lookup' ;; esac fi ;; esac lt_int_apple_cc_single_mod=no output_verbose_link_cmd='echo' if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then lt_int_apple_cc_single_mod=yes fi if test "X$lt_int_apple_cc_single_mod" = Xyes ; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' else _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' fi _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's if test "X$lt_int_apple_cc_single_mod" = Xyes ; then _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' fi _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_automatic, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; dgux*) case $cc_basename in ec++) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; ghcx) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd[12]*) # C++ shared libraries reported to be fairly broken before switch to ELF _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | kfreebsd*-gnu) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_AC_TAGVAR(ld_shlibs, $1)=yes ;; gnu*) ;; hpux9*) _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; aCC) _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | egrep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then case "$host_cpu" in hppa*64*) _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ;; ia64*) _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ;; *) _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi case "$host_cpu" in hppa*64*) _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; ia64*) _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; *) _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; aCC) case "$host_cpu" in hppa*64*|ia64*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case "$host_cpu" in ia64*|hppa*64*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; irix5* | irix6*) case $cc_basename in CC) # SGI C++ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' else _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' fi fi _LT_AC_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ;; linux*) case $cc_basename in KCC) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc) # Intel C++ with_gnu_ld=yes _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; cxx) # Compaq C++ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; osf3*) case $cc_basename in KCC) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; RCC) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; cxx) _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; osf4* | osf5*) case $cc_basename in KCC) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; RCC) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; cxx) _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry $objdir/so_locations -o $lib~ $rm $lib.exp' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' else # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; sco*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no case $cc_basename in CC) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; sunos4*) case $cc_basename in CC) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; lcc) # Lucid # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC) # Sun C++ 4.2, 5.x and Centerline C++ _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The C++ compiler is used as linker so we must use $wl # flag to pass the commands to the underlying system # linker. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac _LT_AC_TAGVAR(link_all_deplibs, $1)=yes # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[[LR]]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx) # Green Hills C++ Compiler _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | grep -v '^2\.7' > /dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' fi ;; esac ;; sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;; tandem*) case $cc_basename in NCC) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_AC_TAGVAR(GCC, $1)="$GXX" _LT_AC_TAGVAR(LD, $1)="$LD" AC_LIBTOOL_POSTDEP_PREDEP($1) AC_LIBTOOL_PROG_COMPILER_PIC($1) AC_LIBTOOL_PROG_CC_C_O($1) AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) AC_LIBTOOL_PROG_LD_SHLIBS($1) AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) AC_LIBTOOL_SYS_LIB_STRIP AC_LIBTOOL_DLOPEN_SELF($1) AC_LIBTOOL_CONFIG($1) AC_LANG_POP CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ldcxx=$with_gnu_ld with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld ])# AC_LIBTOOL_LANG_CXX_CONFIG # AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME]) # ------------------------ # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[ dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... ifelse([$1],[],[cat > conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext <> "$cfgfile" ifelse([$1], [], [#! $SHELL # `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # # This file is part of GNU Libtool: # Originally by Gordon Matzigkeit , 1996 # # This program 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 of the License, or # (at your option) any later version. # # This program 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 this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="$SED -e s/^X//" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi # The names of the tagged configurations supported by this script. available_tags= # ### BEGIN LIBTOOL CONFIG], [# ### BEGIN LIBTOOL TAG CONFIG: $tagname]) # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1) # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # A language-specific compiler. CC=$lt_[]_LT_AC_TAGVAR(compiler, $1) # Is the compiler the GNU C compiler? with_gcc=$_LT_AC_TAGVAR(GCC, $1) # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_[]_LT_AC_TAGVAR(LD, $1) # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext='$shrext' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) # Must we lock files when doing compilation ? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1) # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1) # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1) # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1) # Library versioning type. version_type=$version_type # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME. library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1) old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1) # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) # Commands used to build and install a shared archive. archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1) archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1) postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1) module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1) # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1) # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1) # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1) # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1) # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == file_magic. file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1) # Flag that forces no undefined symbols. no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1) # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1) # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1) # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1) # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1) # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1) # Set to yes if building a shared library automatically hardcodes DIR into the library # and all subsequent libraries and executables linked against it. hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1) # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1) # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)" # Set to yes if exported symbols are required. always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1) # The commands to list exported symbols. export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1) # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1) # Symbols that must always be exported. include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1) ifelse([$1],[], [# ### END LIBTOOL CONFIG], [# ### END LIBTOOL TAG CONFIG: $tagname]) __EOF__ ifelse([$1],[], [ case $host_os in aix3*) cat <<\EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi EOF ;; esac # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || \ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ]) else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ])# AC_LIBTOOL_CONFIG # AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------------------- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi ])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE # --------------------------------- AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_PROG_NM]) AC_REQUIRE([AC_OBJEXT]) # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Transform the above into a raw symbol and a C symbol. symxfrm='\1 \2\3 \3' # Transform an extracted symbol line into a proper C declaration lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32*) symcode='[[ABCDGISTW]]' ;; hpux*) # Its linker distinguishes data from code symbols if test "$host_cpu" = ia64; then symcode='[[ABCDEGRST]]' fi lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris* | sysv5*) symcode='[[BDRT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac # Try without a prefix undercore, then with it. for ac_symprfx in "" "_"; do # Write the raw and C identifiers. lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext < $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if grep ' nm_test_var$' "$nlist" >/dev/null; then if grep ' nm_test_func$' "$nlist" >/dev/null; then cat < conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' cat <> conftest.$ac_ext #if defined (__STDC__) && __STDC__ # define lt_ptr_t void * #else # define lt_ptr_t char * # define const #endif /* The mapping between symbol names and symbols. */ const struct { const char *name; lt_ptr_t address; } lt_preloaded_symbols[[]] = { EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext cat <<\EOF >> conftest.$ac_ext {0, (lt_ptr_t) 0} }; #ifdef __cplusplus } #endif EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -f conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi ]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE # AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME]) # --------------------------------------- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC], [_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)= _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= _LT_AC_TAGVAR(lt_prog_compiler_static, $1)= AC_MSG_CHECKING([for $compiler option to produce PIC]) ifelse([$1],[CXX],[ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | os2* | pw32*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= ;; sysv4*MP*) if test -d /usr/nec; then _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case "$host_cpu" in hppa*64*|ia64*) ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix4* | aix5*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68) # Green Hills C++ Compiler # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; dgux*) case $cc_basename in ec++) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx) # Green Hills C++ Compiler _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | kfreebsd*-gnu) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" if test "$host_cpu" != ia64; then _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" case "$host_cpu" in hppa*64*|ia64*) # +Z the default ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux*) case $cc_basename in KCC) # KAI C++ Compiler _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; icpc) # Intel C++ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; cxx) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; osf3* | osf4* | osf5*) case $cc_basename in KCC) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC) # Rational C++ 2.4.1 _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx) # Digital/Compaq C++ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; sco*) case $cc_basename in CC) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; *) ;; esac ;; solaris*) case $cc_basename in CC) # Sun C++ 4.2, 5.x and Centerline C++ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx) # Green Hills C++ Compiler _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC) # Sun C++ 4.x _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc) # Lucid _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; tandem*) case $cc_basename in NCC) # NonStop-UX NCC 3.20 _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; unixware*) ;; vxworks*) ;; *) _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test "$GCC" = yes; then _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case "$host_cpu" in hppa*64*|ia64*) # +Z the default ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case "$host_cpu" in hppa*64*|ia64*) # +Z the default ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; newsos6) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; linux*) case $CC in icc* | ecc*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; ccc*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; esac ;; osf3* | osf4* | osf5*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; sco3.2v5*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kpic' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-dn' ;; solaris*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sunos4*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; uts4*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)]) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works], _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1), [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi case "$host_os" in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])" ;; esac ]) # AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME]) # ------------------------------------ # See if the linker supports building shared libraries. AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) ifelse([$1],[CXX],[ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix4* | aix5*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' else _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; cygwin* | mingw*) _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' ;; *) _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac ],[ runpath_var= _LT_AC_TAGVAR(allow_undefined_flag, $1)= _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_AC_TAGVAR(archive_cmds, $1)= _LT_AC_TAGVAR(archive_expsym_cmds, $1)= _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)= _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= _LT_AC_TAGVAR(thread_safe_flag_spec, $1)= _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_minus_L, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown _LT_AC_TAGVAR(hardcode_automatic, $1)=no _LT_AC_TAGVAR(module_cmds, $1)= _LT_AC_TAGVAR(module_expsym_cmds, $1)= _LT_AC_TAGVAR(always_export_symbols, $1)=no _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_AC_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; openbsd*) with_gnu_ld=no ;; esac _LT_AC_TAGVAR(ld_shlibs, $1)=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # See if GNU ld supports shared libraries. case $host_os in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then _LT_AC_TAGVAR(ld_shlibs, $1)=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_AC_TAGVAR(always_export_symbols, $1)=no _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris* | sysv5*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then _LT_AC_TAGVAR(ld_shlibs, $1)=no cat <&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; sunos4*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; linux*) if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_cmds, $1)="$tmp_archive_cmds" supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [01].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac if test $supports_anon_versioning = yes; then _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ $echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' else _LT_AC_TAGVAR(archive_expsym_cmds, $1)="$tmp_archive_cmds" fi else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = yes; then runpath_var=LD_RUN_PATH _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= fi fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_AC_TAGVAR(always_export_symbols, $1)=yes _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes if test "$GCC" = yes && test -z "$link_static_flag"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' else _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_AC_TAGVAR(archive_cmds, $1)='' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 _LT_AC_TAGVAR(hardcode_direct, $1)=yes else # We have old collect2 _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_AC_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty executable. _LT_AC_SYS_LIBPATH_AIX _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an empty executable. _LT_AC_SYS_LIBPATH_AIX _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # -bexpall does not export symbols beginning with underscore (_) _LT_AC_TAGVAR(always_export_symbols, $1)=yes # Exported symbols can be pulled into shared objects from archives _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' ' _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds it's shared libraries. _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # see comment about different semantics on the GNU ld section _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; bsdi4*) _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext=".dll" # FIXME: Setting linknames here is a bad hack. _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; darwin* | rhapsody*) if test "$GXX" = yes ; then _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no case "$host_os" in rhapsody* | darwin1.[[012]]) _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[[012]]) _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' ;; 10.*) _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined dynamic_lookup' ;; esac fi ;; esac lt_int_apple_cc_single_mod=no output_verbose_link_cmd='echo' if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then lt_int_apple_cc_single_mod=yes fi if test "X$lt_int_apple_cc_single_mod" = Xyes ; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' else _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' fi _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's if test "X$lt_int_apple_cc_single_mod" = Xyes ; then _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' fi _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_automatic, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; dgux*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; freebsd1*) _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | kfreebsd*-gnu) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test "$GCC" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; hpux10* | hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case "$host_cpu" in hppa*64*|ia64*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case "$host_cpu" in hppa*64*|ia64*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;; esac fi if test "$with_gnu_ld" = no; then case "$host_cpu" in hppa*64*) _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; ia64*) _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes ;; *) _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(link_all_deplibs, $1)=yes ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; openbsd*) _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else case $host_os in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ;; esac fi ;; os2*) _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' # Both c and cxx compiler support -rpath directly _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ;; sco3.2v5*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ;; solaris*) _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' if test "$GCC" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_AC_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_AC_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_AC_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4.2uw2*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_minus_L, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no hardcode_runpath_var=yes runpath_var=LD_RUN_PATH ;; sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*) _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z ${wl}text' if test "$GCC" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' fi runpath_var='LD_RUN_PATH' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv5*) _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' # $CC -shared without GNU ld will not create a library from C++ # object files and a static libstdc++, better avoid it by now _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' ;; uts4*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac fi ]) AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi # # Do we need to explicitly link libc? # case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $_LT_AC_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_MSG_CHECKING([whether -lc should be explicitly linked in]) $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1) _LT_AC_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) then _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no else _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)]) ;; esac fi ;; esac ])# AC_LIBTOOL_PROG_LD_SHLIBS # _LT_AC_FILE_LTDLL_C # ------------------- # Be careful that the start marker always follows a newline. AC_DEFUN([_LT_AC_FILE_LTDLL_C], [ # /* ltdll.c starts here */ # #define WIN32_LEAN_AND_MEAN # #include # #undef WIN32_LEAN_AND_MEAN # #include # # #ifndef __CYGWIN__ # # ifdef __CYGWIN32__ # # define __CYGWIN__ __CYGWIN32__ # # endif # #endif # # #ifdef __cplusplus # extern "C" { # #endif # BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); # #ifdef __cplusplus # } # #endif # # #ifdef __CYGWIN__ # #include # DECLARE_CYGWIN_DLL( DllMain ); # #endif # HINSTANCE __hDllInstance_base; # # BOOL APIENTRY # DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) # { # __hDllInstance_base = hInst; # return TRUE; # } # /* ltdll.c ends here */ ])# _LT_AC_FILE_LTDLL_C # _LT_AC_TAGVAR(VARNAME, [TAGNAME]) # --------------------------------- AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])]) # old names AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) AC_DEFUN([AM_PROG_LD], [AC_PROG_LD]) AC_DEFUN([AM_PROG_NM], [AC_PROG_NM]) # This is just to silence aclocal about the macro not being used ifelse([AC_DISABLE_FAST_INSTALL]) AC_DEFUN([LT_AC_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj, no) test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS) ]) AC_DEFUN([LT_AC_PROG_RC], [AC_CHECK_TOOL(RC, windres, no) ]) # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # # LT_AC_PROG_SED # -------------- # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. AC_DEFUN([LT_AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && break cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done SED=$lt_cv_path_SED ]) AC_MSG_RESULT([$SED]) ]) libcorelinux-0.4.32/config.h.in0000664000000000000000000000346707743170731013235 0ustar /* config.h.in. Generated from configure.in by autoheader. */ /* Define if the C++ compiler supports BOOL */ #undef HAVE_BOOL #undef VERSION #undef PACKAGE /* defines if having libgif (always 1) */ #undef HAVE_LIBGIF /* defines if having libjpeg (always 1) */ #undef HAVE_LIBJPEG /* defines which to take for ksize_t */ #undef ksize_t /* define if you have setenv */ #undef HAVE_FUNC_SETENV /* Define to 1 if NLS is requested. */ #undef ENABLE_NLS /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Version number of package */ #undef VERSION libcorelinux-0.4.32/autorun.sh0000775000000000000000000000007207100671013013215 0ustar #! /bin/sh aclocal -I admin autoheader automake autoconf libcorelinux-0.4.32/INSTALL0000664000000000000000000002473607101054667012242 0ustar Particulars to CoreLinux++ install, configure, and make ======================================================= Please read Basic Installation first. This is a live document and will likely change as requirements and issues come about. Overview -------- The first distinction to consider is whether the mode of operation is to work with Release tarballs, or RPM packages. As we have not yet worked out our RPM packaging issues we will focus on the Release tarballs for the time being. We recognize that there are various roles and responsibilities that you, or members of your organization, may wear the hat for. In general we see the following (keep in mind they may be one person) as significant to CoreLinux++: 1. Installer - responsible for installing the package or distribution based on business rules or need. A. Release - where does it go? What are the pre-requisites, co-requisites, post-requisites that will insure that it will operate as designed/percieved/etc.? Is the release even needed? B. Packages - TBD 2. Administrator - responsible for configuration variations based on business rules or need. A. Release - What overrides are neccessary in the ./configure to meet the system access standards, support, etc. What compiler specific standards are to be enforced. B. Packages - TBD. 3. Developer - Usually the driver of need! Creating new systems, maintaining existing systems, testing, etc. are a few things that come to mind. Note that this developer is not the same developer of the CoreLinux++ source code, but the implementor that USES the class libraries, etc. of the CoreLinux++ system. A. Release - is it for debugging or release? Is it staged for testing or immediate integration? B. Packages - this is probably not applicable because the RPM distributions usually update the libraries from a system perspective. Our support for roles --------------------- In this first release, there is not much. We would need feedback from individuals (YOU!) that provide more detail about specific business rules, etc. that the organization needs to consider. As we become aware of role requirements, and the need to support them, we will do any or all of the following: 1. Document process issues 2. Provide scripts to handle the use cases 3. Extend corelinux_check_compilers.m4 As it is now, we utilize the macro file (corelinux_check_compilers.m4) to enable our debugging and release nuances. For example, when configuring for debugging: ./configure --with-cxx=g++ --enable-debug we define the ALL_ASSERTION constant to insure that the invarient assertions are enabled. Configuration scenarios ----------------------- 1. Emulation of previous CoreLinux++ build process: ./configure --with-cxx=g++ --enable-debug --enable-static=no --prefix=path where path = where the bin (example executables) and lib (shared libcorelinux++.so and example support libraries) will go. Note: if the path is the same as the release distribution, you will receive error messages when a 'make install' is performed because the install attempts to move the library header files. Basic Installation ================== These are generic installation instructions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, a file `config.cache' that saves the results of its tests to speed up reconfiguring, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.in' is used to create `configure' by a program called `autoconf'. You only need `configure.in' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes a while. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. You can give `configure' initial values for variables by setting them in the environment. Using a Bourne-compatible shell, you can do that on the command line like this: CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure Or on systems that have the `env' program, you can do it like this: env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. If you have to use a `make' that does not supports the `VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' will install the package's files in `/usr/local/bin', `/usr/local/man', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PATH'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you give `configure' the option `--exec-prefix=PATH', the package will use PATH as the prefix for installing programs and libraries. Documentation and other data files will still use the regular prefix. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' can not figure out automatically, but needs to determine by the type of host the package will run on. Usually `configure' can figure that out, but if it prints a message saying it can not guess the host type, give it the `--host=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name with three fields: CPU-COMPANY-SYSTEM See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the host type. If you are building compiler tools for cross-compiling, you can also use the `--target=TYPE' option to select the type of system they will produce code for and the `--build=TYPE' option to select the type of system on which you are compiling the package. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Operation Controls ================== `configure' recognizes the following options to control how it operates. `--cache-file=FILE' Use and save the results of the tests in FILE instead of `./config.cache'. Set FILE to `/dev/null' to disable caching, for debugging `configure'. `--help' Print a summary of the options to `configure', and exit. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--version' Print the version of Autoconf used to generate the `configure' script, and exit. `configure' also accepts some other, not widely useful, options. libcorelinux-0.4.32/debian/0000775000000000000000000000000012671712761012423 5ustar libcorelinux-0.4.32/debian/README.examples0000664000000000000000000000122307137761152015115 0ustar README for examples ------------------- This file describes how to compile the examples. 1- Preamble =========== * Copy ALL the files of this directory in a directory where you have write access. Don't forget the genmake.pl file and the Makefile. * Uncompress all the files type: gunzip *.gz 2- Compilation ============== Please, make sure that you have: * installed the corelinux development packages ( the -dev package ). * a working c++ compiler like g++ Now just type make and everything will be built up for you. 3- Enjoy! ========= Well that's all, it is your turn to have fun. Copyright 1999, 2000 (C) The CoreLinux Consortium. libcorelinux-0.4.32/debian/README.debian0000664000000000000000000000210510327205273014511 0ustar CoreLinux for Debian -------------------- Not everything is in the packages, check the web site of corelinux. It provides all the analysis and design behind this library. Moreover, you will find a Coding Standard manual, an OO standard manual a FAQ and other interesting stuff. Check the website for news and updates: http://corelinux.sourceforge.net Right now libcorelinux is split into four packages: 1- libcorelinuxc2 =============== This package provides the include files, the manpages and the static library for development with corelinux. 2- libcorelinux-dev =================== This package provides the include files, the manpages and the static library for development with corelinux. 3- libcorelinux-doc =================== This package provides the full reference manual in HTML, PS and PDF format. 4- libcorelinux-examples ======================== This package provides examples for corelinux. Hope you will enjoy this! The CoreLinux Consortium Packages maintainer: Christophe Prud'homme This package was created by debhelper. libcorelinux-0.4.32/debian/libcorelinux-dev.files0000664000000000000000000000010307361341200016676 0ustar usr/include usr/lib/libcl++.so usr/lib/libcl++.a usr/lib/libcl++.lalibcorelinux-0.4.32/debian/README.Redhat0000664000000000000000000000207707137761152014516 0ustar CoreLinux for Redhat -------------------- Not everything is in the packages, check the web site of corelinux. It provides all the analysis and design behind this library. Moreover, you will find a Coding Standard manual, an OO standard manual a FAQ and other interesting stuff. Check the website for news and updates: http://corelinux.sourceforge.net Right now libcorelinux is split into four packages: 1- libcorelinux =============== This package provides the include files, the manpages and the static library for development with corelinux. 2- libcorelinux-dev =================== This package provides the include files, the manpages and the static library for development with corelinux. 3- libcorelinux-doc =================== This package provides the full reference manual in HTML, PS and PDF format. 4- libcorelinux-examples ======================== This package provides examples for corelinux. Hope you will enjoy this! The CoreLinux Consortium Packages maintainer: Christophe Prud'homme This package was created by alien. libcorelinux-0.4.32/debian/libcorelinuxc2a.files0000664000000000000000000000002507361340724016525 0ustar usr/lib/libcl++.so.* libcorelinux-0.4.32/debian/genmake.pl0000664000000000000000000000462607137761152014376 0ustar #!/usr/bin/perl # # SUMMARY: # USAGE: # # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # ORIG-DATE: 27-Jul-00 at 01:55:59 # LAST-MOD: 27-Jul-00 at 02:54:15 by Christophe Prud'homme # DESCRIPTION: # # genmake.pl generates automatically a Makefile for corelinux # examples. # the binaries are built upon the exampXY.cpp files. # other .cpp files will be only compiled # a clean rule is provided # # Copyright 2000 (C) Christophe Prud'homme # # This program 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 of the License, or # (at your option) any later version. # # This program 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 this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # DESCRIP-END. #use strict; use File::Find; use File::Basename; @ARGV = ('.') unless @ARGV; # the list of binary files @binaries=(); # the list of object files @objects=(); sub genrule { if (/\.[cpp]+$/) { my($prefix,$dir,$ext)=('','',''); ($prefix,$dir,$ext)=fileparse($_,'\.cpp'); if (/examp/) { push(@binaries,$prefix); } else { push(@objects,"$prefix.o"); } } } find(\&genrule, @ARGV); open(M, "> @ARGV/Makefile"); print M "# do not change this file, automatically generated by genmake.pl\n"; print M "# CoreLinux Consortium examples builder\n\n"; print M "CXXFLAGS = -g -O2 -Wall -I. -I/usr/include/corelinux\n"; print M "LIBS = -lcl++\n\n"; print M "all: @binaries\n\n\n"; # write down the linking rules foreach $binary (@binaries) { print M "$binary: $binary.o @objects\n"; print M "\tg++ -o $binary @objects $binary.o \$(LIBS)\n\n"; print M "$binary.o: $binary.cpp\n"; print M "\tg++ -c -o $binary.o \$(CXXFLAGS) $binary.cpp\n\n"; } foreach $object (@objects) { print M "$object.o: $object.cpp\n"; print M "\tg++ -c -o $object.o \$(CXXFLAGS) $object.cpp\n\n"; } print M "clean:\n"; print M "\trm -f *~ *.o @binaries\n"; print M ".PHONY: clean\n"; close(M); libcorelinux-0.4.32/debian/control0000664000000000000000000000621212671712272014024 0ustar Source: libcorelinux Build-Depends: debhelper (>= 9), libtool, doxygen, dh-autoreconf Section: libs Priority: optional Maintainer: Ubuntu Developers XSBC-Original-Maintainer: Christophe Prud'homme Standards-Version: 3.6.2 Package: libcorelinuxc2a Section: libs Architecture: any Conflicts: libcorelinux Replaces: libcorelinux Depends: ${misc:Depends}, ${shlibs:Depends} Description: Foundation Classes, Design Patterns, IPC and Threads OOA and OOD for Linux dynamic libraries. . This package provides the shared libraries for corelinux so that you can run any corelinux based code on the machine. . OOA: Object Oriented Analysis OOD: Object Oriented Design check http://corelinux.sourceforge.net . libcorelinux provides the following features: . Foundation classes Inter-process communication Process and threads Design Patterns (complete) Creational Design Patterns Structural Design Patterns Behavioral Design Patterns Package: libcorelinux-dev Section: libdevel Architecture: any Depends: ${misc:Depends}, libcorelinuxc2a, libc6-dev Suggests: libcorelinux-doc, libcorelinux-examples Description: Foundation Classes, Design Patterns, IPC and Threads OOA and OOD for Linux development kit. . This package provides the include files, the manpages and the static library for development with corelinux. . OOA: Object Oriented Analysis OOD: Object Oriented Design check http://corelinux.sourceforge.net . libcorelinux provides the following features: . Foundation classes Inter-process communication Process and threads Design Patterns (complete) Creational Design Patterns Structural Design Patterns Behavioral Design Patterns Package: libcorelinux-doc Section: doc Architecture: all Depends: ${misc:Depends} Description: Foundation Classes, Design Patterns, IPC and Threads OOA and OOD for Linux: reference manual. . This package provides the full reference manual in HTML, PS and PDF format. . HTML: /usr/share/doc/libcorelinux-doc/html/index.html PS: /usr/share/doc/libcorelinux-doc/corelinux-ref.ps.gz PDF: /usr/share/doc/libcorelinux-doc/corelinux-ref.pdf.gz . OOA: Object Oriented Analysis OOD: Object Oriented Design check http://corelinux.sourceforge.net . libcorelinux provides the following features: . Foundation classes Inter-process communication Process and threads Design Patterns (complete) Creational Design Patterns Structural Design Patterns Behavioral Design Patterns Package: libcorelinux-examples Section: libdevel Architecture: all Depends: ${misc:Depends}, libcorelinux-dev Description: Foundation Classes, Design Patterns, IPC and Threads OOA and OOD for Linux: examples. . This package provides examples for corelinux. . OOA: Object Oriented Analysis OOD: Object Oriented Design check http://corelinux.sourceforge.net . libcorelinux provides the following features: . Foundation classes Inter-process communication Process and threads Design Patterns (complete) Creational Design Patterns Structural Design Patterns Behavioral Design Patterns libcorelinux-0.4.32/debian/libcorelinux/0000775000000000000000000000000010336712637015120 5ustar libcorelinux-0.4.32/debian/libcorelinux/usr/0000775000000000000000000000000010336712637015731 5ustar libcorelinux-0.4.32/debian/libcorelinux/usr/share/0000775000000000000000000000000010336712637017033 5ustar libcorelinux-0.4.32/debian/libcorelinux/usr/share/doc/0000775000000000000000000000000010336712637017600 5ustar libcorelinux-0.4.32/debian/libcorelinux/usr/share/doc/libcorelinux/0000775000000000000000000000000012671712203022270 5ustar libcorelinux-0.4.32/debian/libcorelinux/usr/share/doc/libcorelinux/changelog0000664000000000000000000033265407266277720024175 0ustar 2001-04-15 Frank V. Castellucci * Fixes for defect 416191 2001-04-14 frankc * /cvsroot/corelinux/corelinux/ChangeLog: Updated for 0.4.31 release * /cvsroot/corelinux/corelinux/configure.in: 0.4.31 prep * /cvsroot/corelinux/corelinux/ChangeLog: Minor restruct of ChangeLog, should be eradicated 2001-04-04 Hans Dulimarta * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp: Obtained PID of terminating thread from waitpid, not from vptr. This is a temporary fix until a better way of obtaining PID is found. Also, call to destroyThreadContext had to be disabled, otherwise some threads might get exception. 2001-03-25 Hans Dulimarta * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp: Reactivated sigaction, added code in threadTerminated to destroy terminating context. 2001-03-20 Hans Dulimarta * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Environment.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp: Added methods for handling thread priority * /cvsroot/corelinux/corelinux/corelinux/Thread.hpp: Added methods for handling thread priority. * /cvsroot/corelinux/corelinux/corelinux/Environment.hpp: Added priority handling functions. 2001-03-17 Hans Dulimarta * /cvsroot/corelinux/corelinux/corelinux/Thread.hpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp: Added CreatedCount and BlockedCount. 2001-02-15 prudhomm * /cvsroot/corelinux/corelinux/debian/libcorelinux-doc.doc-base, /cvsroot/corelinux/corelinux/debian/rules, /cvsroot/corelinux/corelinux/debian/changelog: added doc-base support * /cvsroot/corelinux/corelinux/corelinux/AbstractAllocator.hpp: hum namespace problem solved 'using namespace corelinux;' solves lots of namespace problems if you remove it then you will see lots of bad stuff happening 2001-01-12 prudhomm * /cvsroot/corelinux/corelinux/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex22/include/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex22/.cvsignore: ignore files * /cvsroot/corelinux/corelinux/doc/corelinux.cfg.in, /cvsroot/corelinux/corelinux/debian/changelog, /cvsroot/corelinux/corelinux/debian/rules, /cvsroot/corelinux/corelinux/corelinux.spec.in: BUG 113334 PDF and PS not bundled in corelinux-doc rpm removed ps/pdf generation 2000-11-16 frankc * /cvsroot/corelinux/corelinux/corelinux.spec.in: Invalid spec * /cvsroot/corelinux/corelinux/ChangeLog: 116436 Release 0.4.30 2000-11-16 prudhomm * /cvsroot/corelinux/corelinux/debian/changelog, /cvsroot/corelinux/corelinux/debian/rules: updated for 0.4.30 2000-11-15 Hans Dulimarta * /cvsroot/corelinux/corelinux/src/testdrivers/ex22/examp22.cpp: Modified both listener and owner to run in a loop. * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/EventSemaphore.cpp: Added post() method * /cvsroot/corelinux/corelinux/corelinux/EventSemaphore.hpp: Added post() 2000-11-13 Hans Dulimarta * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreCommon.cpp: Replaced OFF and ON symbolic value with 0 and 1. * /cvsroot/corelinux/corelinux/corelinux/EventSemaphoreGroup.hpp: Modified comments to Doxygen enabled ones. 2000-11-02 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp: 113184 sigaction not work in glibc2.0 2000-11-01 frankc * /cvsroot/corelinux/corelinux/ChangeLog: Misc 116436 2000-10-24 frankc * /cvsroot/corelinux/corelinux/configure.in, /cvsroot/corelinux/corelinux/README: Prep for 0.4.30 2000-10-07 frankc * /cvsroot/corelinux/corelinux/ChangeLog, /cvsroot/corelinux/corelinux/README: 113619,620,621 and update README * /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/MazeFactory.cpp: 116321 remove const from iterator in non-const method * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreGroup.cpp: 116320 Replace std::cout with SemaphoreException * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Exception.cpp: 116319 Enforced std::string throughout module 2000-09-25 prudhomm * /cvsroot/corelinux/corelinux/debian/rules: updated the so_version 2000-09-24 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Environment.cpp, /cvsroot/corelinux/corelinux/corelinux/Environment.hpp: 106142 Added get and set environment name value * /cvsroot/corelinux/corelinux/ChangeLog: Getting 0.4.29 stuff ready 2000-09-23 frankc * /cvsroot/corelinux/corelinux/configure.in: Setup for 0.4.29 * /cvsroot/corelinux/corelinux/configure.in: 0-4-28 libtool madness 2000-09-23 Hans Dulimarta * /cvsroot/corelinux/corelinux/corelinux/EventSemaphoreGroup.hpp, /cvsroot/corelinux/corelinux/corelinux/EventSemaphore.hpp: Fixed header alignment (per bug #113984) 2000-09-22 Hans Dulimarta * /cvsroot/corelinux/corelinux/corelinux/EventSemaphoreGroup.hpp, /cvsroot/corelinux/corelinux/corelinux/EventSemaphore.hpp: Reformated header comments to make them doxygen enabled. 2000-09-22 prudhomm * /cvsroot/corelinux/corelinux/debian/rules: now this one is correct * /cvsroot/corelinux/corelinux/admin/ltconfig, /cvsroot/corelinux/corelinux/admin/ltmain.sh: updated libtool * /cvsroot/corelinux/corelinux/debian/changelog: updated for 0.4.28 * /cvsroot/corelinux/corelinux/src/testdrivers/ex22/include/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex22/.cvsignore: ignoring Makefile.in 2000-09-22 frankc * /cvsroot/corelinux/corelinux/README: 0.4.28 Readme update 2000-09-21 frankc * /cvsroot/corelinux/corelinux/configure.in: Release 0.4.28 liblevel 1.0.1 2000-09-20 Hans Dulimarta * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/EventSemaphoreGroup.cpp: Modify comment lines of DEFAULT_COUNT to Doxygen enabled ones. * /cvsroot/corelinux/corelinux/corelinux/EventSemaphoreGroup.hpp, /cvsroot/corelinux/corelinux/corelinux/EventSemaphore.hpp: Modified header comments to fit the description on events. 2000-09-18 frankc * /cvsroot/corelinux/corelinux/ChangeLog: Release 0.4.28 * /cvsroot/corelinux/corelinux/src/testdrivers/ex22/examp22.cpp: Beautify output a bit, reduce sleep times 2000-09-18 Hans Dulimarta * /cvsroot/corelinux/corelinux/corelinux/EventSemaphoreGroup.hpp: Changed Count to Counter. Fixed alignment/indentation of function names. * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/EventSemaphore.cpp: Replaced Count by Counter. Fixed bug 113983 by changing the initial semaphore value from -1 to +1. Fix bug 113985 by ensuring that the semaphore is in Locked state when lockWithXYZ is called. When a thread blocked on lockWithXYZ is released, reset the semaphore state to locked. * /cvsroot/corelinux/corelinux/corelinux/EventSemaphore.hpp: Change Count to Counter * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/EventSemaphoreGroup.cpp: Changed Count type to Counter. 2000-09-10 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/corelinux.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/EventSemaphore.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex22/EventContext.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex22/examp22.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex22/include/EventContext.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/Makefile.am, /cvsroot/corelinux/corelinux/corelinux/EventSemaphore.hpp, /cvsroot/corelinux/corelinux/configure.in: 101873 EventSemaphore initial add and test example 2000-09-09 frankc * /cvsroot/corelinux/corelinux/src/testdrivers/ex22/include/EventContext.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex22/include/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex22/EventContext.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex22/examp22.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex22/Makefile.am: EventSemaphore example thread context * /cvsroot/corelinux/corelinux/ChangeLog: 113598 0.4.28 ChangeLog 2000-09-09 Hans Dulimarta * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Makefile.am: Added EventSemaphore.cpp and EventSemaphoreGroup.cpp. * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreCommon.cpp: Added waitZero for supporting implementation of EventSemaphore. * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/EventSemaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/EventSemaphoreGroup.cpp: 101873: Requirement 1589, Many-To-One semaphore * /cvsroot/corelinux/corelinux/corelinux/SemaphoreCommon.hpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/AbstractSemaphore.cpp: 101873: Added waitZero to support EventSemaphore implementation * /cvsroot/corelinux/corelinux/corelinux/Makefile.am: Added EventSemaphore and EventSemaphoreGroup * /cvsroot/corelinux/corelinux/corelinux/EventSemaphoreGroup.hpp, /cvsroot/corelinux/corelinux/corelinux/EventSemaphore.hpp: Req 1589: Many-to-One semaphore * /cvsroot/corelinux/corelinux/corelinux/AbstractSemaphore.hpp: Added waitZero function to be used by EventSemaphore 2000-09-08 frankc * /cvsroot/corelinux/corelinux/ChangeLog: 113598 Setup for 0.4.28 2000-09-07 frankc * /cvsroot/corelinux/corelinux/src/testdrivers/ex14/examp14.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex13/examp13.cpp: 113736 Moved system includes to top of compilation unit * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp: 113736 Moved headers to top of compilation unit * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp: 113736 added ::clone 2000-09-06 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp: 113736 Needed to include sched.hpp in extern to resolve clone 2000-09-05 frankc * /cvsroot/corelinux/corelinux/configure.in: 113598 Release 0.4.28 ready 2000-09-03 prudhomm * /cvsroot/corelinux/corelinux/.cvsignore: more files to ignore * /cvsroot/corelinux/corelinux/ChangeLog: 111842: libcorelinux Release 0.4.27 changes from 0.4.26 to 0.4.27 * /cvsroot/corelinux/corelinux/doc/corelinux.cfg.in: removed YES in dot associated variables * /cvsroot/corelinux/corelinux/debian/changelog, /cvsroot/corelinux/corelinux/debian/rules: updates for 0.4.27 2000-09-01 prudhomm * /cvsroot/corelinux/corelinux/configure.in: update corelinux shared lib version 2000-09-01 frankc * /cvsroot/corelinux/corelinux/configure.in: Update version number 2000-08-31 prudhomm * /cvsroot/corelinux/corelinux/doc/corelinux.cfg.in, /cvsroot/corelinux/corelinux/doc/Makefile.am: 112020 added the examples documentation into the ref manual * /cvsroot/corelinux/corelinux/debian/changelog, /cvsroot/corelinux/corelinux/debian/control, /cvsroot/corelinux/corelinux/debian/.cvsignore, /cvsroot/corelinux/corelinux/debian/rules: 13271 add a libcorelinux-dbg package * /cvsroot/corelinux/corelinux/corelinux/Colleague.hpp, /cvsroot/corelinux/corelinux/corelinux/CommandFrame.hpp, /cvsroot/corelinux/corelinux/corelinux/Common.hpp, /cvsroot/corelinux/corelinux/corelinux/CoreLinuxGuardPool.hpp, /cvsroot/corelinux/corelinux/corelinux/GatewaySemaphore.hpp, /cvsroot/corelinux/corelinux/corelinux/Iterator.hpp, /cvsroot/corelinux/corelinux/corelinux/List.hpp, /cvsroot/corelinux/corelinux/corelinux/Map.hpp, /cvsroot/corelinux/corelinux/corelinux/Memory.hpp, /cvsroot/corelinux/corelinux/corelinux/Observer.hpp, /cvsroot/corelinux/corelinux/corelinux/Queue.hpp, /cvsroot/corelinux/corelinux/corelinux/SemaphoreCommon.hpp, /cvsroot/corelinux/corelinux/corelinux/SemaphoreGroup.hpp, /cvsroot/corelinux/corelinux/corelinux/Set.hpp, /cvsroot/corelinux/corelinux/corelinux/Stack.hpp, /cvsroot/corelinux/corelinux/corelinux/Synchronized.hpp, /cvsroot/corelinux/corelinux/corelinux/Thread.hpp, /cvsroot/corelinux/corelinux/corelinux/TransparentComponent.hpp, /cvsroot/corelinux/corelinux/corelinux/Vector.hpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp: 112703 Changes for gcc 2.96.x conformance * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/corelinux.cpp: 112020 added the examples documentation into the ref manual and doc enhancing * /cvsroot/corelinux/corelinux/src/testdrivers/ex10/examp10.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/examp1.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/update_makefile.pl, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/examp11.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/include/MazeBuilderFactory.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/include/MazeBuilder.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/include/Maze.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/examp12.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex13/examp13.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex14/examp14.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/examp15.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex16/examp16.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex17/examp17.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex18/examp18.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/examp19.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/include/ListColleague.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/include/ListMediator.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/include/ListMementos.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/include/SelectColleague.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/Edit.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/examp20.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/include/Edit.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/include/Lister.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/include/Mementos.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/include/Select.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/include/SubjectObserver.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/Lister.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/Select.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex21/examp21c.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex21/examp21s.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex2/examp2.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/examp3.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/examp4.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex5/examp5.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/EquipmentComposite.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/examp6.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/include/EquipmentComposite.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/examp7.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/examp8.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/ObjectFactory.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/include/Dictionary.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/include/Modeler.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/examp9.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/NameIdentifier.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/include/MazeFactory.hpp: 112855 Conformance of libcorelinux macros now CORELINUX macros have the same arg ordering as their stl counterpart 2000-08-14 prudhomm * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/.cvsignore: ignore some more .lo files to avoid unnecessary cvs messages/warnings * /cvsroot/corelinux/corelinux/debian/rules: Feature 110443 : [packaging] new debian packages creation added autorun.sh in the building process to make sure that everything is built up correctly 2000-08-13 frankc * /cvsroot/corelinux/corelinux/ChangeLog: Release 0.4.26 * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Library.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/LibraryException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/LibraryInstance.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/LibraryObject.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/LibraryObjectDefinition.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/LibraryObjectRegistry.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/LibraryType.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Loader.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/LoaderNotFoundException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/LoadException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/corelinux/LibraryException.hpp, /cvsroot/corelinux/corelinux/corelinux/Library.hpp, /cvsroot/corelinux/corelinux/corelinux/LibraryInstance.hpp, /cvsroot/corelinux/corelinux/corelinux/LibraryObjectDefinition.hpp, /cvsroot/corelinux/corelinux/corelinux/LibraryObject.hpp, /cvsroot/corelinux/corelinux/corelinux/LibraryObjectRegistry.hpp, /cvsroot/corelinux/corelinux/corelinux/LibraryType.hpp, /cvsroot/corelinux/corelinux/corelinux/Loader.hpp, /cvsroot/corelinux/corelinux/corelinux/LoaderNotFoundException.hpp, /cvsroot/corelinux/corelinux/corelinux/LoadException.hpp, /cvsroot/corelinux/corelinux/corelinux/Makefile.am: Removed Library Abstraction and update Makefile.am 2000-08-12 frankc * /cvsroot/corelinux/corelinux/corelinux/LibraryException.hpp, /cvsroot/corelinux/corelinux/corelinux/Library.hpp, /cvsroot/corelinux/corelinux/corelinux/LibraryInstance.hpp, /cvsroot/corelinux/corelinux/corelinux/LibraryObjectDefinition.hpp, /cvsroot/corelinux/corelinux/corelinux/LibraryObject.hpp, /cvsroot/corelinux/corelinux/corelinux/LibraryObjectRegistry.hpp, /cvsroot/corelinux/corelinux/corelinux/LibraryType.hpp, /cvsroot/corelinux/corelinux/corelinux/Loader.hpp, /cvsroot/corelinux/corelinux/corelinux/LoaderNotFoundException.hpp, /cvsroot/corelinux/corelinux/corelinux/LoadException.hpp, /cvsroot/corelinux/corelinux/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Library.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/LibraryException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/LibraryInstance.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/LibraryObject.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/LibraryObjectDefinition.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/LibraryObjectRegistry.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/LibraryType.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Loader.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/LoaderNotFoundException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/LoadException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Makefile.am: 107424 Library Load abstractions 2000-07-31 prudhomm * /cvsroot/corelinux/corelinux/corelinux.spec.in: manpages in -dev packages are in the correct location now 2000-07-30 prudhomm * /cvsroot/corelinux/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/corelinux.spec.in: [Bug #110518] RPM aftermath cleanup now remove everything * /cvsroot/corelinux/corelinux/corelinux.spec.in: [Bug #110517] Documentation rpm missing files [Bug #110516] standard rpm missing file link [Bug #110518] RPM aftermath cleanup 2000-07-30 frankc * /cvsroot/corelinux/corelinux/ChangeLog: Release 0.4.26 information 2000-07-29 prudhomm * /cvsroot/corelinux/corelinux/doc/corelinux.cfg.in: Feature 110230: Porting libcorelinux++ to doxygen removed html extra package BATH_MODE set up to yes in doxygen config file * /cvsroot/corelinux/corelinux/ChangeLog: added Feature 110459 [packaging] new redhat packaging system * /cvsroot/corelinux/corelinux/configure.in, /cvsroot/corelinux/corelinux/corelinux.spec.in, /cvsroot/corelinux/corelinux/Makefile.am: Feature 110443: [packaging] new debian packages creation corelinux.spec is generated from corelinux.spec.in and configure a new rpm rule for the Makefile.am * /cvsroot/corelinux/corelinux/doc/.cvsignore: cvs ignoring more files 2000-07-28 prudhomm * /cvsroot/corelinux/corelinux/debian/control, /cvsroot/corelinux/corelinux/debian/Makefile.am, /cvsroot/corelinux/corelinux/ChangeLog: Feature 110443 : [packaging] new debian packages creation o update ChangeLog o updated control * /cvsroot/corelinux/corelinux/configure.in: Feature 110230 : Porting libcorelinux++ to doxygen added doc dir for Makefile generation * /cvsroot/corelinux/corelinux/debian/.cvsignore, /cvsroot/corelinux/corelinux/.cvsignore: more files to ignore for cvs * /cvsroot/corelinux/corelinux/debian/files: removed * /cvsroot/corelinux/corelinux/Makefile.am: added doc * /cvsroot/corelinux/corelinux/ChangeLog: updated o library name shorter o added doxygen support o added C symbol to check corelinux existence * /cvsroot/corelinux/corelinux/.cvsignore, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/.cvsignore, /cvsroot/corelinux/corelinux/doc/.cvsignore: more Files to ignore * /cvsroot/corelinux/corelinux/doc/corelinux.cfg, /cvsroot/corelinux/corelinux/doc/corelinux.cfg.in, /cvsroot/corelinux/corelinux/doc/corelinux.html, /cvsroot/corelinux/corelinux/doc/.cvsignore, /cvsroot/corelinux/corelinux/doc/Makefile.am: Feature 110230: Porting libcorelinux++ to doxygen o created corelinux.cfg.in, automatic versioning uasing autoconf o removed corelinux.cfg o update the html footer: see corelinux.html * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/corelinux.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Makefile.am: [ Bug #110440 ] checking corelinux existence using autoconf corrected added C symbol ACCheckCoreLinux see documentation on how to check corelinux existence using autoconf 2000-07-28 frankc * /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/Room.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/WallFlyweight.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/include/Wall.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/examp1.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/CoreLinuxGuardPool.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Exception.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/ThreadContext.cpp, /cvsroot/corelinux/corelinux/corelinux/AbstractSemaphore.hpp, /cvsroot/corelinux/corelinux/corelinux/CoreLinuxGuardPool.hpp, /cvsroot/corelinux/corelinux/corelinux/Exception.hpp, /cvsroot/corelinux/corelinux/corelinux/GatewaySemaphore.hpp, /cvsroot/corelinux/corelinux/corelinux/List.hpp, /cvsroot/corelinux/corelinux/corelinux/Map.hpp, /cvsroot/corelinux/corelinux/corelinux/Memory.hpp, /cvsroot/corelinux/corelinux/corelinux/Queue.hpp, /cvsroot/corelinux/corelinux/corelinux/SemaphoreGroup.hpp, /cvsroot/corelinux/corelinux/corelinux/Synchronized.hpp, /cvsroot/corelinux/corelinux/corelinux/Thread.hpp, /cvsroot/corelinux/corelinux/corelinux/Vector.hpp: 110055 applied user submitted patch 2000-07-27 prudhomm * /cvsroot/corelinux/corelinux/debian/rules: corrected a few errors: - automatic reference manual generation * /cvsroot/corelinux/corelinux/src/utils/csamon/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex5/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex21/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex2/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex18/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex17/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex16/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex14/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex13/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex10/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/update_makefile.pl, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Makefile.am: [ Bug #110245 ] share library naming convention and shorter name 1- now the shared libraries enjoy the libtool versioning system 2- the libraries have their name changed : to link agains corelinux use -lcl++ * /cvsroot/corelinux/corelinux/debian/.cvsignore, /cvsroot/corelinux/corelinux/.cvsignore, /cvsroot/corelinux/corelinux/src/utils/csamon/.cvsignore, /cvsroot/corelinux/corelinux/src/utils/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/include/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/include/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/include/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/include/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex5/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/include/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/include/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex21/include/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex21/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/include/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex2/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/include/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex18/include/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex18/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex17/include/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex17/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex16/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/include/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex14/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex13/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/include/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/include/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex10/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/include/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/.cvsignore, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/.cvsignore, /cvsroot/corelinux/corelinux/src/classlibs/.cvsignore, /cvsroot/corelinux/corelinux/src/.cvsignore, /cvsroot/corelinux/corelinux/doc/.cvsignore: clean up the directories for CVS now the files which should be ignored by CVS are truly ignored * /cvsroot/corelinux/corelinux/doc/corelinux.cfg, /cvsroot/corelinux/corelinux/doc/corelinux.css, /cvsroot/corelinux/corelinux/doc/corelinux.html: Feature #110230: added doxygen configuration file and customization files * /cvsroot/corelinux/corelinux/debian/genmake.pl, /cvsroot/corelinux/corelinux/debian/README.examples, /cvsroot/corelinux/corelinux/debian/README.Redhat, /cvsroot/corelinux/corelinux/debian/changelog, /cvsroot/corelinux/corelinux/debian/control, /cvsroot/corelinux/corelinux/debian/copyright, /cvsroot/corelinux/corelinux/debian/files, /cvsroot/corelinux/corelinux/debian/Makefile.am, /cvsroot/corelinux/corelinux/debian/postinst, /cvsroot/corelinux/corelinux/debian/README.debian, /cvsroot/corelinux/corelinux/debian/rules: upgraded the package generation 2000-07-20 frankc * /cvsroot/corelinux/corelinux/configure.in: Release 0.4.26 version ID 2000-07-15 frankc * /cvsroot/corelinux/corelinux/ChangeLog, /cvsroot/corelinux/corelinux/README: Release 0.4.25 2000-07-10 prudhomm * /cvsroot/corelinux/corelinux/debian/.cvsignore, /cvsroot/corelinux/corelinux/acconfig.h, /cvsroot/corelinux/corelinux/.cvsignore: more files to ignore * /cvsroot/corelinux/corelinux/debian/.cvsignore, /cvsroot/corelinux/corelinux/corelinux/.cvsignore, /cvsroot/corelinux/corelinux/admin/.cvsignore, /cvsroot/corelinux/corelinux/.cvsignore: ignore some files not in CVS repo * /cvsroot/corelinux/corelinux/debian/postinst: added post installation script for dynamic libraries * /cvsroot/corelinux/corelinux/README.emacs: added xemacs/emacs info file for cc mode * /cvsroot/corelinux/corelinux/debian/control, /cvsroot/corelinux/corelinux/debian/copyright, /cvsroot/corelinux/corelinux/debian/Makefile.am: added and removed some files for package creation no more control.in added control addec opyright * /cvsroot/corelinux/corelinux/admin/Makefile.in: removed Makefile.in these files should not be in the CVS repository * /cvsroot/corelinux/corelinux/configure.in, /cvsroot/corelinux/corelinux/Makefile.am: added debian directory for packages creation 2000-06-21 frankc * /cvsroot/corelinux/corelinux/corelinux/Common.hpp: 108017 updates to define Exception earlier 2000-06-21 prudhomm * /cvsroot/corelinux/corelinux/debian/Makefile.in: removed. Makefile.in should not be in CVS * /cvsroot/corelinux/corelinux/configure.in, /cvsroot/corelinux/corelinux/Makefile.am: added debian dir * /cvsroot/corelinux/corelinux/debian/changelog, /cvsroot/corelinux/corelinux/debian/control.in, /cvsroot/corelinux/corelinux/debian/copyright, /cvsroot/corelinux/corelinux/debian/dirs, /cvsroot/corelinux/corelinux/debian/diversions.ex, /cvsroot/corelinux/corelinux/debian/files, /cvsroot/corelinux/corelinux/debian/info.ex, /cvsroot/corelinux/corelinux/debian/libcorelinux.files, /cvsroot/corelinux/corelinux/debian/Makefile.am, /cvsroot/corelinux/corelinux/debian/Makefile.in, /cvsroot/corelinux/corelinux/debian/README.debian, /cvsroot/corelinux/corelinux/debian/rules: import debian packaging dir * /cvsroot/corelinux/corelinux/debian/changelog, /cvsroot/corelinux/corelinux/debian/control.in, /cvsroot/corelinux/corelinux/debian/copyright, /cvsroot/corelinux/corelinux/debian/dirs, /cvsroot/corelinux/corelinux/debian/diversions.ex, /cvsroot/corelinux/corelinux/debian/files, /cvsroot/corelinux/corelinux/debian/info.ex, /cvsroot/corelinux/corelinux/debian/libcorelinux.files, /cvsroot/corelinux/corelinux/debian/Makefile.am, /cvsroot/corelinux/corelinux/debian/Makefile.in, /cvsroot/corelinux/corelinux/debian/README.debian, /cvsroot/corelinux/corelinux/debian/rules: New file. 2000-06-13 frankc * /cvsroot/corelinux/corelinux/configure.in: Preping for 0.4.25 2000-06-10 frankc * /cvsroot/corelinux/corelinux/admin/corelinux_check_compilers.m4, /cvsroot/corelinux/corelinux/ChangeLog, /cvsroot/corelinux/corelinux/src/Makefile.am: 106932 Updates for 0.4.24 * /cvsroot/corelinux/corelinux/src/utils/csamon/csamon.cpp, /cvsroot/corelinux/corelinux/src/utils/csamon/Makefile.am, /cvsroot/corelinux/corelinux/src/utils/Makefile.am: 107314 CSA Monitor * /cvsroot/corelinux/corelinux/corelinux/MemoryStorage.hpp: 104120 MemoryStorage iteration functor capability 2000-06-08 frankc * /cvsroot/corelinux/corelinux/ChangeLog, /cvsroot/corelinux/corelinux/README: 106932 Updates for 0.4.24 2000-06-07 frankc * /cvsroot/corelinux/corelinux/src/testdrivers/ex21/examp21c.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex21/examp21s.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreCommon.cpp, /cvsroot/corelinux/corelinux/corelinux/SemaphoreCommon.hpp: 107055 Reclaim corrected for CSA 2000-06-06 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/AbstractSemaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/CommandFrame.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Component.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Handler.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Memory.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/MemoryStorage.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/MutexSemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreCommon.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Synchronized.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp, /cvsroot/corelinux/corelinux/corelinux/SemaphoreCommon.hpp: Cleanups as a result of -Wall * /cvsroot/corelinux/corelinux/admin/corelinux_check_compilers.m4: Added -Wall to g++ debug flags * /cvsroot/corelinux/corelinux/configure.in, /cvsroot/corelinux/corelinux/README, /cvsroot/corelinux/corelinux/ChangeLog: Preperation for 0.4.24 2000-06-05 frankc * /cvsroot/corelinux/corelinux/src/testdrivers/ex21/examp21c.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex21/examp21s.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex21/include/ex21.hpp: Release 0.4.23 2000-06-04 frankc * /cvsroot/corelinux/corelinux/src/testdrivers/ex21/Makefile.am: Modification for distribution * /cvsroot/corelinux/corelinux/configure.in, /cvsroot/corelinux/corelinux/corelinux/Environment.hpp, /cvsroot/corelinux/corelinux/corelinux/GatewaySemaphoreGroup.hpp, /cvsroot/corelinux/corelinux/corelinux/Memory.hpp, /cvsroot/corelinux/corelinux/corelinux/MutexSemaphoreGroup.hpp, /cvsroot/corelinux/corelinux/corelinux/SemaphoreGroup.hpp, /cvsroot/corelinux/corelinux/README, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Environment.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/GatewaySemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Memory.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/MutexSemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreCommon.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex21/examp21c.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex21/examp21s.cpp: 101873 and 104120 updates for shared IPC between libcorelinux applications 2000-06-03 frankc * /cvsroot/corelinux/corelinux/src/testdrivers/ex21/examp21c.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex21/examp21.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex21/examp21s.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex21/include/ex21.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex21/include/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex21/Makefile.am: 101873 Shared Semaphore access example * /cvsroot/corelinux/corelinux/corelinux/AbstractSemaphore.hpp, /cvsroot/corelinux/corelinux/corelinux/GatewaySemaphoreGroup.hpp, /cvsroot/corelinux/corelinux/corelinux/MutexSemaphoreGroup.hpp, /cvsroot/corelinux/corelinux/corelinux/SemaphoreCommon.hpp, /cvsroot/corelinux/corelinux/corelinux/SemaphoreGroup.hpp, /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/AbstractSemaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/GatewaySemaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/GatewaySemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/MutexSemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreCommon.cpp: 101873 Refine Semaphore CSA and GatewaySemaphoreGroup 2000-06-02 frankc * /cvsroot/corelinux/corelinux/corelinux/AbstractSemaphore.hpp, /cvsroot/corelinux/corelinux/corelinux/Common.hpp, /cvsroot/corelinux/corelinux/corelinux/CoreLinuxGuardGroup.hpp, /cvsroot/corelinux/corelinux/corelinux/GatewaySemaphoreGroup.hpp, /cvsroot/corelinux/corelinux/corelinux/GatewaySemaphore.hpp, /cvsroot/corelinux/corelinux/corelinux/GuardSemaphore.hpp, /cvsroot/corelinux/corelinux/corelinux/MutexSemaphoreGroup.hpp, /cvsroot/corelinux/corelinux/corelinux/MutexSemaphore.hpp, /cvsroot/corelinux/corelinux/corelinux/SemaphoreCommon.hpp, /cvsroot/corelinux/corelinux/corelinux/SemaphoreGroup.hpp, /cvsroot/corelinux/corelinux/corelinux/Semaphore.hpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/AbstractSemaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/CoreLinuxGuardGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/CoreLinuxGuardPool.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/GatewaySemaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/GatewaySemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/GuardSemaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/MutexSemaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/MutexSemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreCommon.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Semaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex13/examp13.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex14/examp14.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex21/examp21.cpp, /cvsroot/corelinux/corelinux/ChangeLog, /cvsroot/corelinux/corelinux/README: 101873 Shared Mutex Semaphores 2000-05-31 frankc * /cvsroot/corelinux/corelinux/src/testdrivers/ex21/examp21.cpp: 101873 Sample Code for testing Semaphore Cross Process * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreCommon.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/corelinux/SemaphoreCommon.hpp, /cvsroot/corelinux/corelinux/corelinux/SemaphoreGroup.hpp: 101873 Refining CSA 2000-05-30 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/CoreLinuxGuardPool.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/MutexSemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreCommon.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/corelinux/SemaphoreCommon.hpp, /cvsroot/corelinux/corelinux/corelinux/SemaphoreGroup.hpp: 101873 Shared Semaphore Updates 2000-05-28 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/CoreLinuxGuardPool.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Memory.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreCommon.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/corelinux/Common.hpp, /cvsroot/corelinux/corelinux/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/corelinux/Memory.hpp, /cvsroot/corelinux/corelinux/corelinux/MemoryStorage.hpp, /cvsroot/corelinux/corelinux/corelinux/SemaphoreCommon.hpp, /cvsroot/corelinux/corelinux/corelinux/SemaphoreGroup.hpp: 101873 Support Shared Semaphore Groups 2000-05-26 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Memory.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/MemoryStorage.cpp, /cvsroot/corelinux/corelinux/corelinux/MemoryStorage.hpp: 104120 Updates in preperation of Shared behavior 2000-05-25 frankc * /cvsroot/corelinux/corelinux/src/testdrivers/ex21/examp21.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex21/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/Makefile.am, /cvsroot/corelinux/corelinux/configure.in, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Environment.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/corelinux/Common.hpp, /cvsroot/corelinux/corelinux/corelinux/Environment.hpp, /cvsroot/corelinux/corelinux/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/corelinux/ScalarIdentifiers.hpp, /cvsroot/corelinux/corelinux/corelinux/Types.hpp: 106142 Environment changes 2000-05-19 frankc * /cvsroot/corelinux/corelinux/ChangeLog, /cvsroot/corelinux/corelinux/README: 105649 Release 0.4.22 2000-05-17 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Context.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/State.cpp, /cvsroot/corelinux/corelinux/corelinux/Context.hpp, /cvsroot/corelinux/corelinux/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/corelinux/State.hpp, /cvsroot/corelinux/corelinux/ChangeLog, /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/README: 101837 State Pattern implementation 2000-05-13 frankc * /cvsroot/corelinux/corelinux/ChangeLog, /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/admin/Makefile.in, /cvsroot/corelinux/corelinux/corelinux/Allocator.hpp, /cvsroot/corelinux/corelinux/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/corelinux/Strategy.hpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Allocator.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Strategy.cpp: 101838 Implementation for 6595-Strategy 2000-05-12 frankc * /cvsroot/corelinux/corelinux/ChangeLog, /cvsroot/corelinux/corelinux/configure.in, /cvsroot/corelinux/corelinux/README: 105649 Preperation for 0.4.22 * /cvsroot/corelinux/corelinux/admin/Makefile.in, /cvsroot/corelinux/corelinux/ChangeLog, /cvsroot/corelinux/corelinux/corelinux/Component.hpp, /cvsroot/corelinux/corelinux/corelinux/CoreLinuxObject.hpp, /cvsroot/corelinux/corelinux/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/corelinux/Visitor.hpp, /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/README, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Component.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Visitor.cpp: 101840 and 105387 Visitor and 0.4.21 release 2000-05-10 frankc * /cvsroot/corelinux/corelinux/master.dxx: 101836 Subject Observer (6592) 2000-05-09 prudhomm * /cvsroot/corelinux/corelinux/ChangeLog: Defect 105472 corrected 2000-05-08 prudhomm * /cvsroot/corelinux/corelinux/src/testdrivers/ex20/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex18/Makefile.am: uncomment SUBDIRS for include/ dir * /cvsroot/corelinux/corelinux/configure.in: add top_srcdir as an include dir, now examp17 to examp 20 compile 2000-05-08 frankc * /cvsroot/corelinux/corelinux/ChangeLog, /cvsroot/corelinux/corelinux/configure.in, /cvsroot/corelinux/corelinux/README, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/Edit.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/examp20.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/include/Edit.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/include/Events.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/include/Lister.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/include/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/include/Mementos.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/include/Select.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/include/SubjectObserver.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/Lister.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/Select.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/SubjectObserver.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/Makefile.am: 101836 Subject Observer change 2000-05-07 frankc * /cvsroot/corelinux/corelinux/admin/Makefile.in, /cvsroot/corelinux/corelinux/configure.in, /cvsroot/corelinux/corelinux/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/corelinux/Observer.hpp, /cvsroot/corelinux/corelinux/corelinux/Subject.hpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Observer.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Subject.cpp: 101836 implementation 6592-Subject Observer * /cvsroot/corelinux/corelinux/src/testdrivers/ex19/SelectColleague.cpp, /cvsroot/corelinux/corelinux/admin/Makefile.in, /cvsroot/corelinux/corelinux/ChangeLog, /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/README: 105226 Release 0.4.20 * /cvsroot/corelinux/corelinux/src/testdrivers/ex19/EditColleague.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/examp19.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/include/EditColleague.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/include/ListColleague.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/include/ListEvents.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/include/ListMediator.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/include/ListMementos.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/include/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/include/SelectColleague.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/ListColleague.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/ListMediator.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/SelectColleague.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Colleague.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Mediator.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Memento.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/Makefile.am, /cvsroot/corelinux/corelinux/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/corelinux/Colleague.hpp, /cvsroot/corelinux/corelinux/corelinux/Common.hpp, /cvsroot/corelinux/corelinux/corelinux/Event.hpp, /cvsroot/corelinux/corelinux/corelinux/Mediator.hpp, /cvsroot/corelinux/corelinux/corelinux/Memento.hpp: 101834 and 101835 Mediator and Memento 2000-05-06 frankc * /cvsroot/corelinux/corelinux/configure.in: 105355 Missing directory directive * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/NullPointerException.cpp, /cvsroot/corelinux/corelinux/corelinux/NullPointerException.hpp: 105353 NullPointerException requirement 2000-05-04 frankc * /cvsroot/corelinux/corelinux/admin/Makefile.in, /cvsroot/corelinux/corelinux/ChangeLog, /cvsroot/corelinux/corelinux/configure.in, /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/README, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/CommandFrame.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex18/examp18.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex18/include/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex18/include/RestoreCaseCommand.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex18/include/UpperCaseCommand.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex18/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex18/RestoreCaseCommand.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex18/UpperCaseCommand.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/Makefile.am: Release 0.4.19 with 101833 Command Pattern 2000-05-03 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/AbstractCommand.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Command.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/CommandFrame.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/CommandFrameException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Synchronized.cpp, /cvsroot/corelinux/corelinux/corelinux/AbstractCommand.hpp, /cvsroot/corelinux/corelinux/corelinux/CommandFrameException.hpp, /cvsroot/corelinux/corelinux/corelinux/CommandFrame.hpp, /cvsroot/corelinux/corelinux/corelinux/Command.hpp, /cvsroot/corelinux/corelinux/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/corelinux/Synchronized.hpp: 101833 Implementation 6588-Command Pattern 2000-04-28 frankc * /cvsroot/corelinux/corelinux/admin/Makefile.in: 104842 Release 0.4.18 2000-04-27 frankc * /cvsroot/corelinux/corelinux/ChangeLog, /cvsroot/corelinux/corelinux/configure.in, /cvsroot/corelinux/corelinux/corelinux/Handler.hpp, /cvsroot/corelinux/corelinux/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/corelinux/Request.hpp, /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/README, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Handler.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Request.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex17/examp17.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex17/HandlerHelpHandler.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex17/HelpHandler.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex17/HelpRequest.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex17/include/HandlerHelpHandler.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex17/include/HelpHandler.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex17/include/HelpRequest.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex17/include/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex17/include/RequestHelpHandler.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex17/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex17/RequestHelpHandler.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/Makefile.am: 101832 Chain of Responsibility Pattern implementation 2000-04-26 frankc * /cvsroot/corelinux/corelinux/configure.in: 104482 Release 0.4.18 preperation * /cvsroot/corelinux/corelinux/ChangeLog: 104577 Release 0.4.17 * /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/README: 104652 README and master.dxx for 0.4.17 * /cvsroot/corelinux/corelinux/src/testdrivers/ex14/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex16/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex2/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex5/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/Makefile.am, /cvsroot/corelinux/corelinux/admin/Makefile.in, /cvsroot/corelinux/corelinux/configure.in, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex10/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex13/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/Makefile.am: 104652 Library version and release corrections in configure.in and Makefile.am 2000-04-25 frankc * /cvsroot/corelinux/corelinux/configure.in: 104652 Update for distribution package name * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Makefile.am: Needed to have libcorelinux++ instead of libcorelinux 2000-04-24 frankc * /cvsroot/corelinux/corelinux/INSTALL: 104652 partial information for installation configure scenarios * /cvsroot/corelinux/corelinux/src/testdrivers/ex4/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/makefile: 104652 change to automake 2000-04-23 prudhomm * /cvsroot/corelinux/corelinux/src/testdrivers/ex16/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex16/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex16/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex14/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex14/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex14/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex13/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex13/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex13/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex10/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex10/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex10/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex5/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex5/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex5/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex2/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex2/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex2/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/cleanchk, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/project.inc, /cvsroot/corelinux/corelinux/corelinux/listfiles, /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/makefile, /cvsroot/corelinux/corelinux/src/classlibs/makefile, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/cleanchk, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/dirs.inc, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc, /cvsroot/corelinux/corelinux/admin/.cvsignore~, /cvsroot/corelinux/corelinux/dirs.inc, /cvsroot/corelinux/corelinux/dirs.tm, /cvsroot/corelinux/corelinux/makefile, /cvsroot/corelinux/corelinux/makefile.tm, /cvsroot/corelinux/corelinux/mkbuiltins.mk, /cvsroot/corelinux/corelinux/project.inc, /cvsroot/corelinux/corelinux/project.tm, /cvsroot/corelinux/corelinux/src/testdrivers/ex13/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex14/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/include/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex16/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex2/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/include/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/include/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex5/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/include/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/include/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/include/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/include/Makefile.am, /cvsroot/corelinux/corelinux/admin/config.guess, /cvsroot/corelinux/corelinux/admin/config.sub, /cvsroot/corelinux/corelinux/admin/corelinux_check_compilers.m4, /cvsroot/corelinux/corelinux/admin/.cvsignore, /cvsroot/corelinux/corelinux/admin/install-sh, /cvsroot/corelinux/corelinux/admin/ltconfig, /cvsroot/corelinux/corelinux/admin/ltmain.sh, /cvsroot/corelinux/corelinux/admin/Makefile.am, /cvsroot/corelinux/corelinux/admin/Makefile.in, /cvsroot/corelinux/corelinux/admin/missing, /cvsroot/corelinux/corelinux/admin/mkinstalldirs, /cvsroot/corelinux/corelinux/AUTHORS, /cvsroot/corelinux/corelinux/autorun.sh, /cvsroot/corelinux/corelinux/configure.in, /cvsroot/corelinux/corelinux/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/INSTALL, /cvsroot/corelinux/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/NEWS, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/src/classlibs/Makefile.am, /cvsroot/corelinux/corelinux/src/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex10/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/include/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/include/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/include/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/Makefile.am: 104652 change to automake * /cvsroot/corelinux/corelinux/corelinux/AbstractAllocator.hpp, /cvsroot/corelinux/corelinux/corelinux/AbstractFactoryException.hpp, /cvsroot/corelinux/corelinux/corelinux/AbstractFactory.hpp, /cvsroot/corelinux/corelinux/corelinux/AbstractSemaphore.hpp, /cvsroot/corelinux/corelinux/corelinux/AbstractString.hpp, /cvsroot/corelinux/corelinux/corelinux/AccessRights.hpp, /cvsroot/corelinux/corelinux/corelinux/Adapter.hpp, /cvsroot/corelinux/corelinux/corelinux/AllocatorAlreadyExistsException.hpp, /cvsroot/corelinux/corelinux/corelinux/Allocator.hpp, /cvsroot/corelinux/corelinux/corelinux/AllocatorNotFoundException.hpp, /cvsroot/corelinux/corelinux/corelinux/Assertion.hpp, /cvsroot/corelinux/corelinux/corelinux/AssociativeIterator.hpp, /cvsroot/corelinux/corelinux/corelinux/BoundsException.hpp, /cvsroot/corelinux/corelinux/corelinux/Bridge.hpp, /cvsroot/corelinux/corelinux/corelinux/Builder.hpp, /cvsroot/corelinux/corelinux/corelinux/Common.hpp, /cvsroot/corelinux/corelinux/corelinux/Component.hpp, /cvsroot/corelinux/corelinux/corelinux/CompositeException.hpp, /cvsroot/corelinux/corelinux/corelinux/CoreLinuxAssociativeIterator.hpp, /cvsroot/corelinux/corelinux/corelinux/CoreLinuxGuardGroup.hpp, /cvsroot/corelinux/corelinux/corelinux/CoreLinuxGuardPool.hpp, /cvsroot/corelinux/corelinux/corelinux/CoreLinuxIterator.hpp, /cvsroot/corelinux/corelinux/corelinux/CoreLinuxObject.hpp, /cvsroot/corelinux/corelinux/corelinux/Decorator.hpp, /cvsroot/corelinux/corelinux/corelinux/Exception.hpp, /cvsroot/corelinux/corelinux/corelinux/Facade.hpp, /cvsroot/corelinux/corelinux/corelinux/Flyweight.hpp, /cvsroot/corelinux/corelinux/corelinux/GatewaySemaphoreGroup.hpp, /cvsroot/corelinux/corelinux/corelinux/GatewaySemaphore.hpp, /cvsroot/corelinux/corelinux/corelinux/GuardSemaphore.hpp, /cvsroot/corelinux/corelinux/corelinux/Identifier.hpp, /cvsroot/corelinux/corelinux/corelinux/InvalidCompositeException.hpp, /cvsroot/corelinux/corelinux/corelinux/InvalidIteratorException.hpp, /cvsroot/corelinux/corelinux/corelinux/InvalidThreadException.hpp, /cvsroot/corelinux/corelinux/corelinux/IteratorBoundsException.hpp, /cvsroot/corelinux/corelinux/corelinux/IteratorException.hpp, /cvsroot/corelinux/corelinux/corelinux/Iterator.hpp, /cvsroot/corelinux/corelinux/corelinux/Limits.hpp, /cvsroot/corelinux/corelinux/corelinux/listfiles, /cvsroot/corelinux/corelinux/corelinux/List.hpp, /cvsroot/corelinux/corelinux/corelinux/Map.hpp, /cvsroot/corelinux/corelinux/corelinux/Memory.hpp, /cvsroot/corelinux/corelinux/corelinux/MemoryStorage.hpp, /cvsroot/corelinux/corelinux/corelinux/MutexSemaphoreGroup.hpp, /cvsroot/corelinux/corelinux/corelinux/MutexSemaphore.hpp, /cvsroot/corelinux/corelinux/corelinux/Pair.hpp, /cvsroot/corelinux/corelinux/corelinux/Prototype.hpp, /cvsroot/corelinux/corelinux/corelinux/Proxy.hpp, /cvsroot/corelinux/corelinux/corelinux/Queue.hpp, /cvsroot/corelinux/corelinux/corelinux/ScalarIdentifiers.hpp, /cvsroot/corelinux/corelinux/corelinux/SemaphoreException.hpp, /cvsroot/corelinux/corelinux/corelinux/SemaphoreGroup.hpp, /cvsroot/corelinux/corelinux/corelinux/Semaphore.hpp, /cvsroot/corelinux/corelinux/corelinux/Set.hpp, /cvsroot/corelinux/corelinux/corelinux/Singleton.hpp, /cvsroot/corelinux/corelinux/corelinux/Stack.hpp, /cvsroot/corelinux/corelinux/corelinux/StorageException.hpp, /cvsroot/corelinux/corelinux/corelinux/Storage.hpp, /cvsroot/corelinux/corelinux/corelinux/String.hpp, /cvsroot/corelinux/corelinux/corelinux/StringUtf8.hpp, /cvsroot/corelinux/corelinux/corelinux/Synchronized.hpp, /cvsroot/corelinux/corelinux/corelinux/ThreadContext.hpp, /cvsroot/corelinux/corelinux/corelinux/ThreadException.hpp, /cvsroot/corelinux/corelinux/corelinux/Thread.hpp, /cvsroot/corelinux/corelinux/corelinux/TransientStorage.hpp, /cvsroot/corelinux/corelinux/corelinux/TransparentComponent.hpp, /cvsroot/corelinux/corelinux/corelinux/Types.hpp, /cvsroot/corelinux/corelinux/corelinux/Vector.hpp: moved include directory to corelinux directory 2000-04-21 frankc * /cvsroot/corelinux/corelinux/src/testdrivers/ex13/examp13.cpp: 104630 Fixes seg fault and core dump * /cvsroot/corelinux/corelinux/mkbuiltins.mk, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/examp11.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/include/MazeBuilderFactory.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/include/MazeBuilder.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/include/MazeFactory.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/MazeBuilder.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/MazeBuilderFactory.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/MazeFactory.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/Door.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/MazeFactory.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/NameIdentifier.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/Room.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/WallFactory.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/WallFlyweight.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/include/Door.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/include/MapSite.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/include/MazeFactory.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/include/NameIdentifier.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/include/Room.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/include/WallFactory.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/include/WallFlyweight.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/include/Wall.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex10/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex10/examp10.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex10/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex10/WallFactory.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex10/WallFlyweight.cpp: 104481 Updates for cross-compile cleanup 2000-04-20 frankc * /cvsroot/corelinux/corelinux/src/testdrivers/ex9/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/Door.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/examp9.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/MazeFactory.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/NameIdentifier.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/Room.cpp: 104481 Consolodate dependencies for example code * /cvsroot/corelinux/corelinux/master.dxx: 104344 Release 0.4.16 2000-04-19 frankc * /cvsroot/corelinux/corelinux/ChangeLog: 104482 Moved ChangeLog out * /cvsroot/corelinux/corelinux/README, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex16/examp16.cpp: 104480 Thread interface change 2000-04-18 frankc * /cvsroot/corelinux/corelinux/AUTHORS, /cvsroot/corelinux/corelinux/ChangeLog, /cvsroot/corelinux/corelinux/COPYING, /cvsroot/corelinux/corelinux/NEWS, /cvsroot/corelinux/corelinux/README: 104482 Added files to move build process 2000-04-15 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/BoundsException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/MemoryStorage.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex16/examp16.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex16/makefile: 104120 Updates for 20873-Memory 2000-04-14 frankc * /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/README, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Memory.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/MemoryStorage.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Storage.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/StorageException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/TransientStorage.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex16/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex16/examp16.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex16/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex16/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/makefile: 104120 Initial implementation for Requirement 20973-Memory 2000-04-06 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/ThreadContext.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/ArgumentContext.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/include/ArgumentContext.hpp, /cvsroot/corelinux/corelinux/README: 103993 Change for thread frame entry point 2000-04-02 frankc * /cvsroot/corelinux/corelinux/clfaq.html, /cvsroot/corelinux/corelinux/develop.html, /cvsroot/corelinux/corelinux/index.html, /cvsroot/corelinux/corelinux/README, /cvsroot/corelinux/corelinux/doc/cppstnd.html, /cvsroot/corelinux/corelinux/doc/funcreq.html, /cvsroot/corelinux/corelinux/doc/oostnd.html, /cvsroot/corelinux/corelinux/doc/process.html, /cvsroot/corelinux/corelinux/doc/reqs.html: 103781 Moved to htdocs * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp: 102427 Added instrumentation and context cleanup method 2000-04-01 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc: 103710 Release 0.4.15 2000-03-31 frankc * /cvsroot/corelinux/corelinux/index.html: 103527 Release 0.4.14 * /cvsroot/corelinux/corelinux/README, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/ArgumentContext.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/ThreadContext.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/examp15.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/include/ArgumentContext.hpp: 103526 Restructed context and thread 2000-03-28 frankc * /cvsroot/corelinux/corelinux/doc/cppstnd.html: 103551 Changes to standard for 78 column width, and numerous spelling errors 2000-03-27 frankc * /cvsroot/corelinux/corelinux/doc/reqs.html, /cvsroot/corelinux/corelinux/index.html, /cvsroot/corelinux/corelinux/README: 103254 Release 0.4.13 * /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/InvalidThreadException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/ThreadException.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/ArgumentContext.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/examp15.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/include/ArgumentContext.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/makefile: 102427 Updates for Thread, ThreadContext, and ThreadExceptions 2000-03-26 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/ThreadContext.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex14/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/examp15.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/makefile: 102427 Initial Implementation for 1588-Thread 2000-03-22 frankc * /cvsroot/corelinux/corelinux/doc/reqs.html: 102427 Design Updates for 1588-Thread 2000-03-21 frankc * /cvsroot/corelinux/corelinux/index.html, /cvsroot/corelinux/corelinux/README: 102850 0.4.12 release * /cvsroot/corelinux/corelinux/doc/reqs.html: Updates to index * /cvsroot/corelinux/corelinux/index.html: Stuck counter 2000-03-18 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc: 102850 Release 0.4.12 * /cvsroot/corelinux/corelinux/src/testdrivers/ex7/PostBanner.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/PreBanner.cpp: 103116 Correct template base calls 2000-03-17 frankc * /cvsroot/corelinux/corelinux/doc/reqs.html: 1588 Thread SRS 2000-03-13 frankc * /cvsroot/corelinux/corelinux/src/testdrivers/ex13/examp13.cpp, /cvsroot/corelinux/corelinux/README, /cvsroot/corelinux/corelinux/index.html: 102609 Release 0.4.11 2000-03-12 frankc * /cvsroot/corelinux/corelinux/master.dxx: 102609 Release 0.4.11 Prep * /cvsroot/corelinux/corelinux/src/testdrivers/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex14/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex14/examp14.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex14/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex14/project.inc: 101873 GatewaySemaphore example source * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/GatewaySemaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Semaphore.cpp: 101873 Recursion and GatewaySemaphore updates 2000-03-11 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/GatewaySemaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Semaphore.cpp: 101873 Updates for Gateway * /cvsroot/corelinux/corelinux/src/testdrivers/ex13/examp13.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/MutexSemaphore.cpp: 101873 Updates to Semaphore work * /cvsroot/corelinux/corelinux/index.html: Support news 2000-03-10 frankc * /cvsroot/corelinux/corelinux/src/testdrivers/ex13/examp13.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/AbstractSemaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/CoreLinuxGuardGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/CoreLinuxGuardPool.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/GuardSemaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/MutexSemaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/MutexSemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Semaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp: 101873 - Extensions for GuardPool, Recursion, and Thread 2000-03-09 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/AbstractSemaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreGroup.cpp: 102720 Corrected errno usage to *__errno() for thread specific errors 2000-03-08 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc: 102609 Release 0.4.11 library change * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/MutexSemaphoreGroup.cpp: 102674 MutexSemaphoreGroup degredation 2000-03-06 frankc * /cvsroot/corelinux/corelinux/index.html, /cvsroot/corelinux/corelinux/README, /cvsroot/corelinux/corelinux/src/testdrivers/ex13/examp13.cpp: 102435 0.4.10 Release * /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/CoreLinuxGuardGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/CoreLinuxGuardPool.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/GatewaySemaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/GatewaySemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/MutexSemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreGroup.cpp: 101873 Continue Implementation of 1589-Semaphore 2000-03-04 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/CoreLinuxGuardPool.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Synchronized.cpp: 101873 Added release to Synchronized::Guard and CoreLinuxGuardPool::isLocked 2000-03-03 frankc * /cvsroot/corelinux/corelinux/index.html: 101873 Updates for Semaphore * /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/CoreLinuxGuardPool.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/MutexSemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Synchronized.cpp: 101873 Updates for 1589-Semaphore 2000-03-01 frankc * /cvsroot/corelinux/corelinux/index.html, /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/README: 101873 and 0.4.9 * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/AbstractSemaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Identifier.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/MutexSemaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/MutexSemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Semaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreGroup.cpp: 101873 Semaphores and 0.4.9 * /cvsroot/corelinux/corelinux/src/testdrivers/ex13/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex13/examp13.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex13/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex13/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/Dictionary.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/include/Dictionary.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/include/Modeler.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/include/ObjectFactory.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/include/Object.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/Modeler.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/Object.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/ObjectFactory.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/ObjectModel.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/makefile: 101873 Updates and additions to testdrivers * /cvsroot/corelinux/corelinux/doc/reqs.html: 101873 Updates for 1589-Semaphore 2000-02-17 frankc * /cvsroot/corelinux/corelinux/doc/reqs.html: 101873 Added Semaphore SRS link 2000-02-12 frankc * /cvsroot/corelinux/corelinux/doc/reqs.html, /cvsroot/corelinux/corelinux/index.html, /cvsroot/corelinux/corelinux/README: 101685 Release 0.4.8 2000-02-11 frankc * /cvsroot/corelinux/corelinux/doc/reqs.html, /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/examp9.cpp: 101186 Updated for 5099-Singleton pattern * /cvsroot/corelinux/corelinux/doc/reqs.html, /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/EightCylinderEngine.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/EngineBridge.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/Engine.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/examp4.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/include/EightCylinderEngine.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/include/EngineBridge.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/include/Engine.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/include/SixCylinderEngine.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/SixCylinderEngine.cpp: 101185 Updates for 5098-Prototype pattern 2000-02-10 frankc * /cvsroot/corelinux/corelinux/src/testdrivers/ex4/include/EightCylinderEngine.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/include/EngineBridge.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/include/Engine.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/include/SixCylinderEngine.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/include/EquipmentComposite.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/include/Equipment.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/include/HardDrive.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/include/PowerSupply.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/include/BannerComponent.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/include/PostBanner.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/include/PreBanner.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/include/Dictionary.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/include/Modeler.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/include/ObjectFactory.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/include/Object.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/include/ObjectModel.hpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/include/MazeBuilder.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/include/MazeFactory.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/include/Maze.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/include/AbstractBankAccount.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/include/AccountProxy.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/include/BankAccount.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/include/RestrictedAccountProxy.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/include/Person.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex2/examp2.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/include/Bar.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/include/FooBarClassAdapter.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/include/FooBarObjectAdapter.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/include/Foo.hpp: 101801 Changed DEFINE_TYPE and DEFINE_CLASS to DECLARE_TYPE and DECLARE_CLASS * /cvsroot/corelinux/corelinux/doc/cppstnd.html: Updates to C++ Standard Documents * /cvsroot/corelinux/corelinux/index.html: Updates to classref and standard docs 2000-02-08 frankc * /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/README: 101336 Updated 0.4.7 * /cvsroot/corelinux/corelinux/index.html: 101682 Updated for news and 0.4.7 * /cvsroot/corelinux/corelinux/doc/reqs.html: 100596 3147-Proxy pattern completed * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/AccountProxy.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/BankAccount.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/examp12.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/include/AbstractBankAccount.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/include/AccountProxy.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/include/BankAccount.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/include/RestrictedAccountProxy.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/RestrictedAccountProxy.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/makefile: 100596 3147-Proxy pattern 2000-02-06 frankc * /cvsroot/corelinux/corelinux/doc/reqs.html: 100596 Design for 3147-Proxy pattern * /cvsroot/corelinux/corelinux/doc/reqs.html: 101183 Completed 5096-Builder pattern * /cvsroot/corelinux/corelinux/master.dxx: Added Builder * /cvsroot/corelinux/corelinux/src/testdrivers/makefile, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/examp11.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/include/MazeBuilder.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/include/MazeFactory.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/include/Maze.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/MazeBuilder.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/Maze.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/MazeFactory.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/project.inc: 101183 5096-Builder pattern * /cvsroot/corelinux/corelinux/src/testdrivers/ex9/MazeFactory.cpp: 101628 returnAllocator did not return the AllocatorPtr 2000-02-04 frankc * /cvsroot/corelinux/corelinux/doc/reqs.html: 101183 5096-Builder and 101184 5097 Factory Method 2000-02-03 frankc * /cvsroot/corelinux/corelinux/doc/reqs.html: 100595 Flyweight and Builder updates * /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Flyweight.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex10/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex10/examp10.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex10/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex10/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex10/WallFactory.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex10/WallFlyweight.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/makefile: 100595 Implementation 3146-Flyweight Pattern 2000-02-01 frankc * /cvsroot/corelinux/corelinux/doc/reqs.html: 100595 Design for 3146-Flyweight Pattern 2000-01-29 frankc * /cvsroot/corelinux/corelinux/README: 101214 Release 0.4.6 * /cvsroot/corelinux/corelinux/index.html: 101333 101334 Updated for Patch Manager, FAQ, and CVS archive * /cvsroot/corelinux/corelinux/clfaq.html: 101332 Updated for Patch Manager, Defect definition, and CVS archive * /cvsroot/corelinux/corelinux/master.dxx: New types: AbstractFactory et.al. and AssociativeIterator * /cvsroot/corelinux/corelinux/src/testdrivers/ex9/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/Door.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/examp9.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/MazeFactory.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/NameIdentifier.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/Room.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/makefile: 101182 AbstractFactory example code * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/AbstractFactoryException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/AllocatorAlreadyExistsException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Allocator.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/AllocatorNotFoundException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Identifier.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc: 101182 AbstractFactory Implementation * /cvsroot/corelinux/corelinux/doc/reqs.html: Changes for AbstractFactory and Iterator 2000-01-26 frankc * /cvsroot/corelinux/corelinux/doc/reqs.html: Creational Patterns SRS 2000-01-25 frankc * /cvsroot/corelinux/corelinux/index.html: Added direct download link to release 2000-01-24 frankc * /cvsroot/corelinux/corelinux/master.dxx: 100594 Updated for 3145-Facade pattern * /cvsroot/corelinux/corelinux/index.html, /cvsroot/corelinux/corelinux/README: 101072 Release 0.4.5 * /cvsroot/corelinux/corelinux/src/testdrivers/ex8/Dictionary.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/examp8.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/include/Dictionary.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/include/Modeler.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/include/ObjectFactory.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/include/Object.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/include/ObjectModel.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/Modeler.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/Object.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/ObjectFactory.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/ObjectModel.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/makefile: 100594 Implementation for 3145-Facade pattern 2000-01-23 frankc * /cvsroot/corelinux/corelinux/src/testdrivers/ex7/makefile: 100546 Decorator pattern * /cvsroot/corelinux/corelinux/index.html: Changed layout * /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Facade.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile: 100594 Implementation for 3145-Facade pattern * /cvsroot/corelinux/corelinux/doc/reqs.html: 100594 Design for 3145-Facade pattern 2000-01-22 frankc * /cvsroot/corelinux/corelinux/master.dxx: 100546 Implementation of 3144-Decorator * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/BannerComponent.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/examp7.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/include/BannerComponent.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/include/PostBanner.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/include/PreBanner.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/PostBanner.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/PreBanner.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/makefile: 100546 Implementation of 3144-Decorator * /cvsroot/corelinux/corelinux/doc/reqs.html: 100546 Decorator Design * /cvsroot/corelinux/corelinux/index.html: 100599 MagicDraw donation 2000-01-21 frankc * /cvsroot/corelinux/corelinux/index.html: 100983 Release 0.4.4 2000-01-21 jrkoontz * /cvsroot/corelinux/corelinux/doc/reqs.html: Added the link and "updated" flag to the string (req4568.html) requirements document 2000-01-21 frankc * /cvsroot/corelinux/corelinux/README: 100983 Release 0.4.4 * /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Component.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/CompositeException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/InvalidCompositeException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/EquipmentComposite.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/Equipment.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/examp6.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/HardDrive.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/include/EquipmentComposite.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/include/Equipment.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/include/HardDrive.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/include/PowerSupply.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/PowerSupply.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/makefile: 100545 Implementation for 3143-Composite Pattern 2000-01-19 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Bridge.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/EngineBridge.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/include/EngineBridge.hpp: 101018 Bridge changed to template for type reasoning * /cvsroot/corelinux/corelinux/doc/reqs.html: 101018 Redesign Bridge as parametized class * /cvsroot/corelinux/corelinux/doc/cppstnd.html, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/include/Person.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/FooBarObjectAdapter.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/include/Bar.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/include/FooBarClassAdapter.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/include/FooBarObjectAdapter.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/include/Foo.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/include/EngineBridge.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/include/Engine.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/Person.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/Bar.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/FooBarClassAdapter.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/Foo.cpp: 101017 Removed using namespace in headers 2000-01-18 frankc * /cvsroot/corelinux/corelinux/doc/reqs.html: 100545 Updated for Composite * /cvsroot/corelinux/corelinux/README: 100946 Release 0.4.2 * /cvsroot/corelinux/corelinux/src/testdrivers/ex5/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex5/examp5.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex5/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex5/project.inc: 100945 Iterator Test Source * /cvsroot/corelinux/corelinux/src/testdrivers/makefile: 100945 Added source make for ex5 * /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Exception.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/InvalidIteratorException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/IteratorBoundsException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/IteratorException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc: 100945 Implementation for 5972-Iterator 2000-01-17 frankc * /cvsroot/corelinux/corelinux/doc/reqs.html: 100945 Added link to 5972-Iterator Pattern 2000-01-15 frankc * /cvsroot/corelinux/corelinux/doc/cppstnd.html: 100932 added exception details * /cvsroot/corelinux/corelinux/doc/process.html: 100930 - Finer ownership policy 2000-01-11 frankc * /cvsroot/corelinux/corelinux/src/testdrivers/ex2/examp2.cpp: Release 0.4.1 * /cvsroot/corelinux/corelinux/README: 100846 Release 0.4.1 * /cvsroot/corelinux/corelinux/src/testdrivers/ex4/include/EightCylinderEngine.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/include/EngineBridge.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/include/Engine.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/include/SixCylinderEngine.hpp: 100531 3142-Bridge Pattern Test case * /cvsroot/corelinux/corelinux/src/testdrivers/ex4/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/EightCylinderEngine.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/EngineBridge.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/Engine.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/examp4.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/SixCylinderEngine.cpp: 100531 3142-Bridge test case * /cvsroot/corelinux/corelinux/src/testdrivers/makefile: 100531 Bridge Test Driver * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc: 100846 0.4.1 library change * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Bridge.cpp: 100531 Bridge Implementation * /cvsroot/corelinux/corelinux/index.html: Corrected Copyright * /cvsroot/corelinux/corelinux/index.html: Numerous Updates * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/AbstractString.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Bridge.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/CoreLinuxObject.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile: 100531 3142-Bridge implementation * /cvsroot/corelinux/corelinux/doc/cppstnd.html, /cvsroot/corelinux/corelinux/develop.html: 100846 updated for process and 0.4.1 * /cvsroot/corelinux/corelinux/master.dxx: 100846 update include CoreLinuxObject, Adapter, Bridge * /cvsroot/corelinux/corelinux/doc/cppstnd.html: Updated for HTML documentation comment requirement * /cvsroot/corelinux/corelinux/doc/process.html: 100796 Updated to include implementation 2000-01-10 frankc * /cvsroot/corelinux/corelinux/doc/process.html: 100795 Updated process for design details 2000-01-09 frankc * /cvsroot/corelinux/corelinux/src/testdrivers/ex3/Bar.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/examp3.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/FooBarClassAdapter.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/FooBarObjectAdapter.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/Foo.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/include/Bar.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/include/FooBarClassAdapter.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/include/FooBarObjectAdapter.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/include/Foo.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/project.inc: 100547 Test Case for Adapter pattern * /cvsroot/corelinux/corelinux/src/testdrivers/makefile: 100547 Added Adapter Test Case * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Adapter.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile: 100547 Adapter Implementation * /cvsroot/corelinux/corelinux/doc/reqs.html: Added catagorization to index * /cvsroot/corelinux/corelinux/doc/funcreq.html: 100788 SRS Cross Reference 2000-01-08 frankc * /cvsroot/corelinux/corelinux/doc/reqs.html: Added updates for Facade, Flyweight, and Proxy * /cvsroot/corelinux/corelinux/doc/reqs.html: 100546 Added update for Decorator Link * /cvsroot/corelinux/corelinux/doc/reqs.html: 100545 Added update to 3143-Composite Pattern 2000-01-07 frankc * /cvsroot/corelinux/corelinux/doc/reqs.html: Added update flags to Adapter and Bridge 2000-01-05 frankc * /cvsroot/corelinux/corelinux/index.html: Added updates sign to process and requirements * /cvsroot/corelinux/corelinux/doc/process.html: 100685 Updated for Analysis Process * /cvsroot/corelinux/corelinux/index.html: Added Counter 1999-12-29 frankc * /cvsroot/corelinux/corelinux/doc/reqs.html: 100594 for req 3145, 100595 for req 3146, and 100596 for req 3147 * /cvsroot/corelinux/corelinux/index.html: 100597 Changed Source Forge Logo 1999-12-24 frankc * /cvsroot/corelinux/corelinux/doc/reqs.html: 100545, 100546 added Composite and Decorator references 1999-12-23 frankc * /cvsroot/corelinux/corelinux/README: 100534 Release 0.4.0 * /cvsroot/corelinux/corelinux/doc/reqs.html: 100531 Added Requirement 3142 * /cvsroot/corelinux/corelinux/doc/process.html: 100532 Process changes * /cvsroot/corelinux/corelinux/clfaq.html: 100530 Documentation errors 1999-12-22 frankc * /cvsroot/corelinux/corelinux/develop.html, /cvsroot/corelinux/corelinux/index.html: Added Process and Date Changed Support * /cvsroot/corelinux/corelinux/doc/funcreq.html, /cvsroot/corelinux/corelinux/doc/process.html, /cvsroot/corelinux/corelinux/doc/reqs.html: Support for Process * /cvsroot/corelinux/corelinux/doc/cppstnd.html, /cvsroot/corelinux/corelinux/doc/oostnd.html: Added modification date 1999-12-12 frankc * /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/README: Task 10356 * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc: 0.3.0 release * /cvsroot/corelinux/corelinux/index.html, /cvsroot/corelinux/corelinux/clfaq.html: Task 10356 * /cvsroot/corelinux/corelinux/clfaq.html, /cvsroot/corelinux/corelinux/index.html: Updated for FAQ Link 1999-12-09 frankc * /cvsroot/corelinux/corelinux/doc/oostnd.html: More types * /cvsroot/corelinux/corelinux/index.html: Added update to OOA-OOD document * /cvsroot/corelinux/corelinux/doc/oostnd.html: Fixed typos, added rationale. Sections 4-6 1999-12-05 frankc * /cvsroot/corelinux/corelinux/index.html: Final correction * /cvsroot/corelinux/corelinux/index.html: Fix e-mail address on page 1999-12-04 frankc * /cvsroot/corelinux/corelinux/README, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/AbstractString.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Exception.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/StringUtf8.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/include/Person.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex2/examp2.cpp: Release 0.2.0 * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Assertion.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Exception.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/include/Person.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/Person.cpp: Task 10240 - Changes to reflect C++ Standard changes 1999-12-03 frankc * /cvsroot/corelinux/corelinux/index.html, /cvsroot/corelinux/corelinux/doc/cppstnd.html: Changes from feedback 1999-12-02 frankc * /cvsroot/corelinux/corelinux/src/testdrivers/ex2/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex2/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex2/examp2.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex2/project.inc: Initial upload * /cvsroot/corelinux/corelinux/src/testdrivers/makefile: Added ex2 to build 1999-12-01 frankc * /cvsroot/corelinux/corelinux/doc/cppstnd.html: Initial import * /cvsroot/corelinux/corelinux/doc/cppstnd.html: New file. * /cvsroot/corelinux/corelinux/doc/oostnd.html: Initial import * /cvsroot/corelinux/corelinux/doc/oostnd.html: New file. * /cvsroot/corelinux/corelinux/src/testdrivers/ex1/include/Person.hpp: Initial import * /cvsroot/corelinux/corelinux/src/testdrivers/ex1/include/Person.hpp: New file. * /cvsroot/corelinux/corelinux/src/testdrivers/ex1/Person.cpp: Initial import * /cvsroot/corelinux/corelinux/src/testdrivers/ex1/Person.cpp: New file. * /cvsroot/corelinux/corelinux/src/testdrivers/ex1/examp1.cpp: Initial import * /cvsroot/corelinux/corelinux/src/testdrivers/ex1/examp1.cpp: New file. * /cvsroot/corelinux/corelinux/src/testdrivers/ex1/cleanchk, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/project.inc: Initial import * /cvsroot/corelinux/corelinux/src/testdrivers/ex1/cleanchk, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/project.inc: New file. * /cvsroot/corelinux/corelinux/src/testdrivers/ex1/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/makefile: Initial import * /cvsroot/corelinux/corelinux/src/testdrivers/ex1/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/makefile: New file. * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Exception.cpp: Initial import * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Exception.cpp: New file. * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Assertion.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/cleanchk, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile: Initial import * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Assertion.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/cleanchk, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile: New file. * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/dirs.inc: Initial import * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/dirs.inc: New file. * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc, /cvsroot/corelinux/corelinux/src/classlibs/makefile: Initial import * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc, /cvsroot/corelinux/corelinux/src/classlibs/makefile: New file. * /cvsroot/corelinux/corelinux/mkbuiltins.mk: Initial import * /cvsroot/corelinux/corelinux/mkbuiltins.mk: New file. * /cvsroot/corelinux/corelinux/dirs.inc: Initial import * /cvsroot/corelinux/corelinux/dirs.inc: New file. * /cvsroot/corelinux/corelinux/makefile, /cvsroot/corelinux/corelinux/makefile.tm, /cvsroot/corelinux/corelinux/project.inc: Initial import * /cvsroot/corelinux/corelinux/makefile, /cvsroot/corelinux/corelinux/makefile.tm, /cvsroot/corelinux/corelinux/project.inc: New file. * /cvsroot/corelinux/corelinux/index.html: Initial import * /cvsroot/corelinux/corelinux/index.html: New file. * /cvsroot/corelinux/corelinux/develop.html: Initial import * /cvsroot/corelinux/corelinux/develop.html: New file. * /cvsroot/corelinux/corelinux/COPYING.LIB: Initial import * /cvsroot/corelinux/corelinux/COPYING.LIB: New file. * /cvsroot/corelinux/corelinux/COPYING.DOC: Initial import * /cvsroot/corelinux/corelinux/COPYING.DOC: New file. * /cvsroot/corelinux/corelinux/project.tm: Initial import * /cvsroot/corelinux/corelinux/project.tm: New file. * /cvsroot/corelinux/corelinux/dirs.tm: Initial import * /cvsroot/corelinux/corelinux/dirs.tm: New file. * /cvsroot/corelinux/corelinux/README: Initial import * /cvsroot/corelinux/corelinux/README: New file. libcorelinux-0.4.32/debian/libcorelinux/usr/share/doc/libcorelinux/changelog.Debian0000664000000000000000000001036110336711776025336 0ustar libcorelinux (0.4.32-6) unstable; urgency=low * Bug fix: "library package needs to be renamed (libstdc++ allocator change)", thanks to Matthias Klose (Closes: #339199). * Bug fix: "libcorelinux-doc: doesn't install without /usr/doc", thanks to Lars Wirzenius (Closes: #328297). -- Christophe Prud'homme Wed, 16 Nov 2005 21:18:06 +0100 libcorelinux (0.4.32-5.1) unstable; urgency=medium * Non-maintainer upload. * C++ ABI transition. -- Luk Claes Mon, 24 Oct 2005 18:18:07 +0200 libcorelinux (0.4.32-5) unstable; urgency=low * updated admin/config.{sub,guess} * updated admin/ltmain.sh (closes: #215016) * do not build depend on automake anymore -- Christophe Prud'homme Wed, 15 Oct 2003 09:05:46 +0200 libcorelinux (0.4.32-4) unstable; urgency=low * fix config.{guess,sub} out of date on hppa and s390 (closes: #124296,#121830) * try to be more descriptive in the description of the package (closes: #115758) -- Christophe Prud'homme Sat, 29 Dec 2001 17:43:34 -0500 libcorelinux (0.4.32-3) unstable; urgency=low * fix lintian warning -- Christophe Prud'homme Tue, 15 May 2001 13:45:58 -0400 libcorelinux (0.4.32-2) unstable; urgency=low * now use DESTDIR * fix the problem with .la files, they do not contain the debian install libdir but /usr/lib -- Christophe Prud'homme Tue, 15 May 2001 11:52:52 -0400 libcorelinux (0.4.32-1) unstable; urgency=low * new upstream version -- Christophe Prud'homme Thu, 26 Apr 2001 14:20:33 -0400 libcorelinux (0.4.30-5) unstable; urgency=low * fix the doxygen build dependency. -- Christophe Prud'homme Sun, 25 Mar 2001 19:29:20 -0500 libcorelinux (0.4.30-4) unstable; urgency=low * removed debug packages * fixes all lintian error/warnings -- Christophe Prud'homme Sun, 25 Mar 2001 14:21:44 -0500 libcorelinux (0.4.30-3) unstable; urgency=low * added doc-base -- Christophe Prud'homme Thu, 15 Feb 2001 11:30:09 -0500 libcorelinux (0.4.30-2) unstable; urgency=low * removed ps/pdf generation of the reference manual -- Christophe Prud'homme Fri, 12 Jan 2001 04:16:57 -0500 libcorelinux (0.4.30-1) unstable; urgency=low * new upstream version -- Christophe Prud'homme Thu, 16 Nov 2000 04:16:57 -0500 libcorelinux (0.4.29-2) unstable; urgency=low * generated for potato -- Christophe Prud'homme Mon, 6 Nov 2000 20:23:22 -0500 libcorelinux (0.4.29-1) unstable; urgency=low * new upstream version -- Christophe Prud'homme Mon, 16 Oct 2000 11:00:14 -0400 libcorelinux (0.4.28-1) unstable; urgency=low * new upstream release -- Christophe Prud'homme Wed, 20 Sep 2000 14:01:26 -0400 libcorelinux (0.4.27-1) unstable; urgency=low * new upstream release * new libcorelinux-dbg for debugging purpose provides -lcldbg++ -- Christophe Prud'homme Sat, 2 Sep 2000 22:49:54 -0400 libcorelinux (0.4.26-2) unstable; urgency=low * added examples documentation in the libcorelinux-doc packages -- Christophe Prud'homme Wed, 16 Aug 2000 13:56:45 -0400 libcorelinux (0.4.26-1) unstable; urgency=low * created 4 packages: 1- libcorelinux 2- libcorelinux-dev 3- libcorelinux-doc 3- libcorelinux-examples * added reference manual in HTML PS and PDF in libcorelinux-doc * added development manual pages in libcorelinux-dev -- Christophe Prud'homme Wed, 26 Jul 2000 23:34:36 -0400 libcorelinux (0.4.25-2) unstable; urgency=low * fixed post installation crash -- Christophe Prud'homme Wed, 26 Jul 2000 23:31:33 -0400 libcorelinux (0.4.25-1) stable; urgency=low * new debian packages -- Christophe Prud'homme Tue, 13 Jun 2000 23:28:11 -0400 libcorelinux (0.4.21-1) unstable; urgency=low * Initial release. -- Christophe Prud'homme Mon, 8 May 2000 19:34:23 -0400 Local variables: user-name: "Christophe Prud'homme " End: libcorelinux-0.4.32/debian/libcorelinux-doc.doc-base0000664000000000000000000000044007243003756017256 0ustar Document: libcorelinux-doc Title: CoreLinux Documentation Author: CoreLinux Consortium Abstract: This is the CoreLinux library reference API. Section: Apps/Programming Format: HTML Index: /usr/share/doc/libcorelinux-doc/html/index.html Files: /usr/share/doc/libcorelinux-doc/html/*.html libcorelinux-0.4.32/debian/compat0000664000000000000000000000000212671710471013615 0ustar 9 libcorelinux-0.4.32/debian/copyright0000664000000000000000000000064310344311652014346 0ustar This package was debianized by Christophe Prud'homme prudhomm@mit.edu on Mon, 8 May 2000 19:34:23 -0400. This package was create from the CVS repositories. Corelinux is hosted by Sourceforge: http://corelinux.sourceforge.net Copyright: /usr/share/common-licenses/LGPL Copyright (C) 1999, 2000 CoreLinux++ Consortium Corelinux++ is distributed under the terms of the GNU Library General Public License (LGPL). libcorelinux-0.4.32/debian/semantic.cache0000664000000000000000000000230210345027343015177 0ustar ;; Object debian/ ;; SEMANTICDB Tags save file (semanticdb-project-database-file "debian/" :tables (list (semanticdb-table "rules" :major-mode 'makefile-mode :tags '(("package" variable (:default-value ("libcorelinux")) nil [145 166]) ("version" variable (:default-value ("0.4.32")) nil [166 181]) ("so_version" variable (:default-value ("1.1.0")) nil [181 198]) ("DEBIANDIR" variable (:default-value ("`echo $$PWD/debian`")) nil [206 236]) ("top_builddir" variable (:default-value ("`pwd`")) nil [236 255]) ("top_srcdir" variable (:default-value ("..")) nil [255 269]) ("DH_COMPAT" variable (:default-value ("3")) nil [331 343]) ("build" function (:arguments ("build-stamp")) nil [344 374]) ("build-stamp" function nil nil [363 403]) ("clean" function nil nil [631 683]) ("install" function (:arguments ("build")) nil [931 1001]) ("binary-indep" function (:arguments ("build" "install")) nil [1757 2451]) ("binary-arch" function (:arguments ("build" "install")) nil [2494 2863]) ("binary" function (:arguments ("binary-indep" "binary-arch")) nil [2864 2898])) :file "rules" :pointmax 2958 ) ) :file "semantic.cache" :semantic-tag-version "2.0pre3" :semanticdb-version "2.0pre3" ) libcorelinux-0.4.32/debian/changelog0000664000000000000000000001367312671712001014272 0ustar libcorelinux (0.4.32-7.4ubuntu1) xenial; urgency=medium * debian/rules: - Remove legacy DH_COMPAT export. - Use dh_prep instead of dh_clean -k. * debian/compat: Specify compatibility level of 9. * debian/control: - Build-depend on debhelper (>= 9). - Depend on ${misc:Depends}. -- Logan Rosen Mon, 14 Mar 2016 23:35:47 -0500 libcorelinux (0.4.32-7.4) unstable; urgency=medium [ Aurelien Jarno ] * Non-maintainer upload. [ Logan Rosen ] * Use dh-autoreconf to get new libtool macros for ppc64el and update config.{sub,guess} for new arches (Closes: #528646). -- Aurelien Jarno Sun, 05 Oct 2014 15:39:25 +0200 libcorelinux (0.4.32-7.3) unstable; urgency=low * Non-maintainer upload. * Fix GCC 4.3 compatibility, patch by Martin Michlmayr (Closes: #417342) -- Moritz Muehlenhoff Fri, 21 Mar 2008 21:51:25 +0100 libcorelinux (0.4.32-7.2) unstable; urgency=medium * Non-maintainer upload with maintainer approval. * Remove obsolete /usr/doc/libcorelinux symlink on package upgrade (Closes: #351740). -- Thijs Kinkhorst Fri, 5 Jan 2007 15:32:22 +0100 libcorelinux (0.4.32-7.1) unstable; urgency=high * Non-maintainer upload for RC bug. * Also call dh_installdocs in binary-arch target, to make sure debian/copyright is installed in all packages. (Closes: #393558, #393557) -- Thijs Kinkhorst Thu, 19 Oct 2006 16:30:29 +0200 libcorelinux (0.4.32-7) unstable; urgency=low * Bug fix: "missing conflicts/replaces for libcorelinuxc2", thanks to Stefan Potyra (Closes: #342625). -- Christophe Prud'homme Mon, 12 Dec 2005 09:31:09 +0100 libcorelinux (0.4.32-6) unstable; urgency=low * Bug fix: "library package needs to be renamed (libstdc++ allocator change)", thanks to Matthias Klose (Closes: #339199). * Bug fix: "libcorelinux-doc: doesn't install without /usr/doc", thanks to Lars Wirzenius (Closes: #328297). -- Christophe Prud'homme Wed, 16 Nov 2005 21:18:06 +0100 libcorelinux (0.4.32-5.1) unstable; urgency=medium * Non-maintainer upload. * C++ ABI transition. -- Luk Claes Mon, 24 Oct 2005 18:18:07 +0200 libcorelinux (0.4.32-5) unstable; urgency=low * updated admin/config.{sub,guess} * updated admin/ltmain.sh (closes: #215016) * do not build depend on automake anymore -- Christophe Prud'homme Wed, 15 Oct 2003 09:05:46 +0200 libcorelinux (0.4.32-4) unstable; urgency=low * fix config.{guess,sub} out of date on hppa and s390 (closes: #124296,#121830) * try to be more descriptive in the description of the package (closes: #115758) -- Christophe Prud'homme Sat, 29 Dec 2001 17:43:34 -0500 libcorelinux (0.4.32-3) unstable; urgency=low * fix lintian warning -- Christophe Prud'homme Tue, 15 May 2001 13:45:58 -0400 libcorelinux (0.4.32-2) unstable; urgency=low * now use DESTDIR * fix the problem with .la files, they do not contain the debian install libdir but /usr/lib -- Christophe Prud'homme Tue, 15 May 2001 11:52:52 -0400 libcorelinux (0.4.32-1) unstable; urgency=low * new upstream version -- Christophe Prud'homme Thu, 26 Apr 2001 14:20:33 -0400 libcorelinux (0.4.30-5) unstable; urgency=low * fix the doxygen build dependency. -- Christophe Prud'homme Sun, 25 Mar 2001 19:29:20 -0500 libcorelinux (0.4.30-4) unstable; urgency=low * removed debug packages * fixes all lintian error/warnings -- Christophe Prud'homme Sun, 25 Mar 2001 14:21:44 -0500 libcorelinux (0.4.30-3) unstable; urgency=low * added doc-base -- Christophe Prud'homme Thu, 15 Feb 2001 11:30:09 -0500 libcorelinux (0.4.30-2) unstable; urgency=low * removed ps/pdf generation of the reference manual -- Christophe Prud'homme Fri, 12 Jan 2001 04:16:57 -0500 libcorelinux (0.4.30-1) unstable; urgency=low * new upstream version -- Christophe Prud'homme Thu, 16 Nov 2000 04:16:57 -0500 libcorelinux (0.4.29-2) unstable; urgency=low * generated for potato -- Christophe Prud'homme Mon, 6 Nov 2000 20:23:22 -0500 libcorelinux (0.4.29-1) unstable; urgency=low * new upstream version -- Christophe Prud'homme Mon, 16 Oct 2000 11:00:14 -0400 libcorelinux (0.4.28-1) unstable; urgency=low * new upstream release -- Christophe Prud'homme Wed, 20 Sep 2000 14:01:26 -0400 libcorelinux (0.4.27-1) unstable; urgency=low * new upstream release * new libcorelinux-dbg for debugging purpose provides -lcldbg++ -- Christophe Prud'homme Sat, 2 Sep 2000 22:49:54 -0400 libcorelinux (0.4.26-2) unstable; urgency=low * added examples documentation in the libcorelinux-doc packages -- Christophe Prud'homme Wed, 16 Aug 2000 13:56:45 -0400 libcorelinux (0.4.26-1) unstable; urgency=low * created 4 packages: 1- libcorelinux 2- libcorelinux-dev 3- libcorelinux-doc 3- libcorelinux-examples * added reference manual in HTML PS and PDF in libcorelinux-doc * added development manual pages in libcorelinux-dev -- Christophe Prud'homme Wed, 26 Jul 2000 23:34:36 -0400 libcorelinux (0.4.25-2) unstable; urgency=low * fixed post installation crash -- Christophe Prud'homme Wed, 26 Jul 2000 23:31:33 -0400 libcorelinux (0.4.25-1) stable; urgency=low * new debian packages -- Christophe Prud'homme Tue, 13 Jun 2000 23:28:11 -0400 libcorelinux (0.4.21-1) unstable; urgency=low * Initial release. -- Christophe Prud'homme Mon, 8 May 2000 19:34:23 -0400 Local variables: user-name: "Christophe Prud'homme " End: libcorelinux-0.4.32/debian/Makefile.am0000664000000000000000000000150110327205025014436 0ustar # -*- Mode: makefile -*- # SUMMARY : # USAGE : make # AUTHOR : Christophe Prud'homme # ORG : Christophe Prud'homme # E-MAIL : # ORIG-DATE : 26-Apr-89 # LAST-MOD : 12-Apr-00 at 15:49:03 by Christophe Prud'homme # DESCRIPTION : # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc EXTRA_DIST = changelog \ rules \ control \ copyright \ libcorelinuxc2.files \ libcorelinux-dev.files \ libcorelinuxc2.postinst \ libcorelinuxc2.postrm \ libcorelinux-doc.postinst \ libcorelinux-doc.prerm \ libcorelinux-doc.doc-base \ README.debian \ genmake.pl \ README.Redhat \ README.examples # Common rcs information do not modify # $Author: prudhomm $ # $Revision: 1.4 $ # $Date: 2000/07/28 19:16:47 $ # $Locker: $ libcorelinux-0.4.32/debian/Makefile.in0000664000000000000000000002034710327205250014460 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY : # USAGE : make # AUTHOR : Christophe Prud'homme # ORG : Christophe Prud'homme # E-MAIL : # ORIG-DATE : 26-Apr-89 # LAST-MOD : 12-Apr-00 at 15:49:03 by Christophe Prud'homme # DESCRIPTION : # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc EXTRA_DIST = changelog \ rules \ control \ copyright \ libcorelinuxc2.files \ libcorelinux-dev.files \ libcorelinuxc2.postinst \ libcorelinuxc2.postrm \ libcorelinux-doc.postinst \ libcorelinux-doc.prerm \ libcorelinux-doc.doc-base \ README.debian \ genmake.pl \ README.Redhat \ README.examples subdir = debian ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = DIST_SOURCES = DIST_COMMON = $(srcdir)/Makefile.in Makefile.am all: all-am .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu debian/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: tags: TAGS TAGS: ctags: CTAGS CTAGS: DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = .. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am info info-am install install-am install-data \ install-data-am install-exec install-exec-am install-info \ install-info-am install-man install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ uninstall-info-am # Common rcs information do not modify # $Author: prudhomm $ # $Revision: 1.4 $ # $Date: 2000/07/28 19:16:47 $ # $Locker: $ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/debian/rules0000775000000000000000000000556612671711771013517 0ustar #!/usr/bin/make -f # Made with the aid of debmake, by Christoph Lameter, # based on the sample debian/rules file for GNU hello by Ian Jackson. package=libcorelinux version=0.4.32 so_version=1.1.0 export DEBIANDIR=`echo $$PWD/debian` top_builddir=`pwd` top_srcdir=.. build: build-stamp build-stamp: dh_testdir dh_autoreconf # ./autorun.sh mkdir -p classic cd classic && ../configure --prefix=/usr --includedir=/usr/include/corelinux cd classic/src/classlibs && make rm -rf classic/doc/html doc/man && cd classic/doc && doxygen corelinux.cfg touch build-stamp clean: dh_testdir dh_testroot rm -f build-stamp -cd classic && $(MAKE) clean -cd classic && $(MAKE) distclean # -cd debug && $(MAKE) clean # -cd debug && $(MAKE) distclean # Add here commands to clean up after the build process. @if test -d classic; then \ rm -rf classic; \ fi dh_autoreconf_clean dh_clean install: build dh_testdir dh_testroot dh_prep dh_installdirs cd classic/src/classlibs && $(MAKE) install DESTDIR=$$PWD/../../../debian/tmp cd classic/corelinux && $(MAKE) install DESTDIR=$$PWD/../../debian/tmp cd classic/doc && mkdir -p $$PWD/../../debian/tmp/usr/share/doc/libcorelinux-doc && cp -r html $$PWD/../../debian/tmp/usr/share/doc/libcorelinux-doc # cd debug/src/classlibs/corelinux && install -c libcl++.la $$PWD/../../../../debian/tmp/usr/lib/libcldbg++.la # cd debug/src/classlibs/corelinux && install -c .libs/libcl++.so.$(so_version) $$PWD/../../../../debian/tmp/usr/lib/libcldbg++.so.$(so_version) # cd debug/src/classlibs/corelinux && install -c .libs/libcl++.a $$PWD/../../../../debian/tmp/usr/lib/libcldbg++.a # rm $$PWD/debian/tmp/usr/lib/*.so # Build architecture-independent files here. binary-indep: build install dh_testdir dh_testroot dh_installdocs -A debian/README.debian debian/copyright dh_installchangelogs -i ChangeLog debian/changelog dh_installexamples -plibcorelinux-examples debian/README.examples `find src/testdrivers -name "*.[ch]*[pp]*"` find debian/libcorelinux-examples -name "*.[ch]*[pp]*.gz" | xargs -r gunzip perl debian/genmake.pl debian/libcorelinux-examples/usr/share/doc/libcorelinux-examples/examples dh_movefiles -plibcorelinux-doc usr/share/doc/libcorelinux-doc/html dh_fixperms -i dh_installdeb -i find debian/libcorelinux-examples -name "*.[ch]*[pp]*" | xargs -r gzip dh_compress -i dh_gencontrol -i dh_md5sums -i dh_builddeb -i # Build architecture-dependent files here. binary-arch: build install dh_testdir dh_testroot dh_movefiles -a dh_installmanpages -plibcorelinux-dev dh_installdocs -a dh_installchangelogs -plibcorelinuxc2a ChangeLog dh_installchangelogs -plibcorelinux-dev ChangeLog dh_link -a dh_strip -a dh_compress -a dh_makeshlibs -a -V dh_fixperms -a dh_installdeb -a dh_shlibdeps -a dh_gencontrol dh_md5sums -a dh_builddeb -a binary: binary-indep binary-arch .PHONY: build clean binary-indep binary-arch binary install libcorelinux-0.4.32/debian/libcorelinuxc2a.postinst0000664000000000000000000000022110547464416017311 0ustar #!/bin/sh # Remove stale symlink, a leftover from the sarge # version. This can be removed after Etch. rm -f /usr/doc/libcorelinux #DEBHELPER# libcorelinux-0.4.32/debian/.#control0000777000000000000000000000000010771017450022104 2prudhomm@iacs-80.epfl.ch.7406:1134313349ustar libcorelinux-0.4.32/ChangeLog0000664000000000000000000033265407266277720012775 0ustar 2001-04-15 Frank V. Castellucci * Fixes for defect 416191 2001-04-14 frankc * /cvsroot/corelinux/corelinux/ChangeLog: Updated for 0.4.31 release * /cvsroot/corelinux/corelinux/configure.in: 0.4.31 prep * /cvsroot/corelinux/corelinux/ChangeLog: Minor restruct of ChangeLog, should be eradicated 2001-04-04 Hans Dulimarta * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp: Obtained PID of terminating thread from waitpid, not from vptr. This is a temporary fix until a better way of obtaining PID is found. Also, call to destroyThreadContext had to be disabled, otherwise some threads might get exception. 2001-03-25 Hans Dulimarta * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp: Reactivated sigaction, added code in threadTerminated to destroy terminating context. 2001-03-20 Hans Dulimarta * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Environment.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp: Added methods for handling thread priority * /cvsroot/corelinux/corelinux/corelinux/Thread.hpp: Added methods for handling thread priority. * /cvsroot/corelinux/corelinux/corelinux/Environment.hpp: Added priority handling functions. 2001-03-17 Hans Dulimarta * /cvsroot/corelinux/corelinux/corelinux/Thread.hpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp: Added CreatedCount and BlockedCount. 2001-02-15 prudhomm * /cvsroot/corelinux/corelinux/debian/libcorelinux-doc.doc-base, /cvsroot/corelinux/corelinux/debian/rules, /cvsroot/corelinux/corelinux/debian/changelog: added doc-base support * /cvsroot/corelinux/corelinux/corelinux/AbstractAllocator.hpp: hum namespace problem solved 'using namespace corelinux;' solves lots of namespace problems if you remove it then you will see lots of bad stuff happening 2001-01-12 prudhomm * /cvsroot/corelinux/corelinux/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex22/include/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex22/.cvsignore: ignore files * /cvsroot/corelinux/corelinux/doc/corelinux.cfg.in, /cvsroot/corelinux/corelinux/debian/changelog, /cvsroot/corelinux/corelinux/debian/rules, /cvsroot/corelinux/corelinux/corelinux.spec.in: BUG 113334 PDF and PS not bundled in corelinux-doc rpm removed ps/pdf generation 2000-11-16 frankc * /cvsroot/corelinux/corelinux/corelinux.spec.in: Invalid spec * /cvsroot/corelinux/corelinux/ChangeLog: 116436 Release 0.4.30 2000-11-16 prudhomm * /cvsroot/corelinux/corelinux/debian/changelog, /cvsroot/corelinux/corelinux/debian/rules: updated for 0.4.30 2000-11-15 Hans Dulimarta * /cvsroot/corelinux/corelinux/src/testdrivers/ex22/examp22.cpp: Modified both listener and owner to run in a loop. * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/EventSemaphore.cpp: Added post() method * /cvsroot/corelinux/corelinux/corelinux/EventSemaphore.hpp: Added post() 2000-11-13 Hans Dulimarta * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreCommon.cpp: Replaced OFF and ON symbolic value with 0 and 1. * /cvsroot/corelinux/corelinux/corelinux/EventSemaphoreGroup.hpp: Modified comments to Doxygen enabled ones. 2000-11-02 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp: 113184 sigaction not work in glibc2.0 2000-11-01 frankc * /cvsroot/corelinux/corelinux/ChangeLog: Misc 116436 2000-10-24 frankc * /cvsroot/corelinux/corelinux/configure.in, /cvsroot/corelinux/corelinux/README: Prep for 0.4.30 2000-10-07 frankc * /cvsroot/corelinux/corelinux/ChangeLog, /cvsroot/corelinux/corelinux/README: 113619,620,621 and update README * /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/MazeFactory.cpp: 116321 remove const from iterator in non-const method * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreGroup.cpp: 116320 Replace std::cout with SemaphoreException * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Exception.cpp: 116319 Enforced std::string throughout module 2000-09-25 prudhomm * /cvsroot/corelinux/corelinux/debian/rules: updated the so_version 2000-09-24 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Environment.cpp, /cvsroot/corelinux/corelinux/corelinux/Environment.hpp: 106142 Added get and set environment name value * /cvsroot/corelinux/corelinux/ChangeLog: Getting 0.4.29 stuff ready 2000-09-23 frankc * /cvsroot/corelinux/corelinux/configure.in: Setup for 0.4.29 * /cvsroot/corelinux/corelinux/configure.in: 0-4-28 libtool madness 2000-09-23 Hans Dulimarta * /cvsroot/corelinux/corelinux/corelinux/EventSemaphoreGroup.hpp, /cvsroot/corelinux/corelinux/corelinux/EventSemaphore.hpp: Fixed header alignment (per bug #113984) 2000-09-22 Hans Dulimarta * /cvsroot/corelinux/corelinux/corelinux/EventSemaphoreGroup.hpp, /cvsroot/corelinux/corelinux/corelinux/EventSemaphore.hpp: Reformated header comments to make them doxygen enabled. 2000-09-22 prudhomm * /cvsroot/corelinux/corelinux/debian/rules: now this one is correct * /cvsroot/corelinux/corelinux/admin/ltconfig, /cvsroot/corelinux/corelinux/admin/ltmain.sh: updated libtool * /cvsroot/corelinux/corelinux/debian/changelog: updated for 0.4.28 * /cvsroot/corelinux/corelinux/src/testdrivers/ex22/include/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex22/.cvsignore: ignoring Makefile.in 2000-09-22 frankc * /cvsroot/corelinux/corelinux/README: 0.4.28 Readme update 2000-09-21 frankc * /cvsroot/corelinux/corelinux/configure.in: Release 0.4.28 liblevel 1.0.1 2000-09-20 Hans Dulimarta * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/EventSemaphoreGroup.cpp: Modify comment lines of DEFAULT_COUNT to Doxygen enabled ones. * /cvsroot/corelinux/corelinux/corelinux/EventSemaphoreGroup.hpp, /cvsroot/corelinux/corelinux/corelinux/EventSemaphore.hpp: Modified header comments to fit the description on events. 2000-09-18 frankc * /cvsroot/corelinux/corelinux/ChangeLog: Release 0.4.28 * /cvsroot/corelinux/corelinux/src/testdrivers/ex22/examp22.cpp: Beautify output a bit, reduce sleep times 2000-09-18 Hans Dulimarta * /cvsroot/corelinux/corelinux/corelinux/EventSemaphoreGroup.hpp: Changed Count to Counter. Fixed alignment/indentation of function names. * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/EventSemaphore.cpp: Replaced Count by Counter. Fixed bug 113983 by changing the initial semaphore value from -1 to +1. Fix bug 113985 by ensuring that the semaphore is in Locked state when lockWithXYZ is called. When a thread blocked on lockWithXYZ is released, reset the semaphore state to locked. * /cvsroot/corelinux/corelinux/corelinux/EventSemaphore.hpp: Change Count to Counter * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/EventSemaphoreGroup.cpp: Changed Count type to Counter. 2000-09-10 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/corelinux.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/EventSemaphore.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex22/EventContext.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex22/examp22.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex22/include/EventContext.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/Makefile.am, /cvsroot/corelinux/corelinux/corelinux/EventSemaphore.hpp, /cvsroot/corelinux/corelinux/configure.in: 101873 EventSemaphore initial add and test example 2000-09-09 frankc * /cvsroot/corelinux/corelinux/src/testdrivers/ex22/include/EventContext.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex22/include/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex22/EventContext.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex22/examp22.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex22/Makefile.am: EventSemaphore example thread context * /cvsroot/corelinux/corelinux/ChangeLog: 113598 0.4.28 ChangeLog 2000-09-09 Hans Dulimarta * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Makefile.am: Added EventSemaphore.cpp and EventSemaphoreGroup.cpp. * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreCommon.cpp: Added waitZero for supporting implementation of EventSemaphore. * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/EventSemaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/EventSemaphoreGroup.cpp: 101873: Requirement 1589, Many-To-One semaphore * /cvsroot/corelinux/corelinux/corelinux/SemaphoreCommon.hpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/AbstractSemaphore.cpp: 101873: Added waitZero to support EventSemaphore implementation * /cvsroot/corelinux/corelinux/corelinux/Makefile.am: Added EventSemaphore and EventSemaphoreGroup * /cvsroot/corelinux/corelinux/corelinux/EventSemaphoreGroup.hpp, /cvsroot/corelinux/corelinux/corelinux/EventSemaphore.hpp: Req 1589: Many-to-One semaphore * /cvsroot/corelinux/corelinux/corelinux/AbstractSemaphore.hpp: Added waitZero function to be used by EventSemaphore 2000-09-08 frankc * /cvsroot/corelinux/corelinux/ChangeLog: 113598 Setup for 0.4.28 2000-09-07 frankc * /cvsroot/corelinux/corelinux/src/testdrivers/ex14/examp14.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex13/examp13.cpp: 113736 Moved system includes to top of compilation unit * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp: 113736 Moved headers to top of compilation unit * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp: 113736 added ::clone 2000-09-06 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp: 113736 Needed to include sched.hpp in extern to resolve clone 2000-09-05 frankc * /cvsroot/corelinux/corelinux/configure.in: 113598 Release 0.4.28 ready 2000-09-03 prudhomm * /cvsroot/corelinux/corelinux/.cvsignore: more files to ignore * /cvsroot/corelinux/corelinux/ChangeLog: 111842: libcorelinux Release 0.4.27 changes from 0.4.26 to 0.4.27 * /cvsroot/corelinux/corelinux/doc/corelinux.cfg.in: removed YES in dot associated variables * /cvsroot/corelinux/corelinux/debian/changelog, /cvsroot/corelinux/corelinux/debian/rules: updates for 0.4.27 2000-09-01 prudhomm * /cvsroot/corelinux/corelinux/configure.in: update corelinux shared lib version 2000-09-01 frankc * /cvsroot/corelinux/corelinux/configure.in: Update version number 2000-08-31 prudhomm * /cvsroot/corelinux/corelinux/doc/corelinux.cfg.in, /cvsroot/corelinux/corelinux/doc/Makefile.am: 112020 added the examples documentation into the ref manual * /cvsroot/corelinux/corelinux/debian/changelog, /cvsroot/corelinux/corelinux/debian/control, /cvsroot/corelinux/corelinux/debian/.cvsignore, /cvsroot/corelinux/corelinux/debian/rules: 13271 add a libcorelinux-dbg package * /cvsroot/corelinux/corelinux/corelinux/Colleague.hpp, /cvsroot/corelinux/corelinux/corelinux/CommandFrame.hpp, /cvsroot/corelinux/corelinux/corelinux/Common.hpp, /cvsroot/corelinux/corelinux/corelinux/CoreLinuxGuardPool.hpp, /cvsroot/corelinux/corelinux/corelinux/GatewaySemaphore.hpp, /cvsroot/corelinux/corelinux/corelinux/Iterator.hpp, /cvsroot/corelinux/corelinux/corelinux/List.hpp, /cvsroot/corelinux/corelinux/corelinux/Map.hpp, /cvsroot/corelinux/corelinux/corelinux/Memory.hpp, /cvsroot/corelinux/corelinux/corelinux/Observer.hpp, /cvsroot/corelinux/corelinux/corelinux/Queue.hpp, /cvsroot/corelinux/corelinux/corelinux/SemaphoreCommon.hpp, /cvsroot/corelinux/corelinux/corelinux/SemaphoreGroup.hpp, /cvsroot/corelinux/corelinux/corelinux/Set.hpp, /cvsroot/corelinux/corelinux/corelinux/Stack.hpp, /cvsroot/corelinux/corelinux/corelinux/Synchronized.hpp, /cvsroot/corelinux/corelinux/corelinux/Thread.hpp, /cvsroot/corelinux/corelinux/corelinux/TransparentComponent.hpp, /cvsroot/corelinux/corelinux/corelinux/Vector.hpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp: 112703 Changes for gcc 2.96.x conformance * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/corelinux.cpp: 112020 added the examples documentation into the ref manual and doc enhancing * /cvsroot/corelinux/corelinux/src/testdrivers/ex10/examp10.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/examp1.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/update_makefile.pl, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/examp11.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/include/MazeBuilderFactory.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/include/MazeBuilder.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/include/Maze.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/examp12.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex13/examp13.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex14/examp14.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/examp15.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex16/examp16.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex17/examp17.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex18/examp18.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/examp19.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/include/ListColleague.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/include/ListMediator.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/include/ListMementos.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/include/SelectColleague.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/Edit.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/examp20.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/include/Edit.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/include/Lister.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/include/Mementos.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/include/Select.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/include/SubjectObserver.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/Lister.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/Select.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex21/examp21c.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex21/examp21s.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex2/examp2.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/examp3.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/examp4.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex5/examp5.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/EquipmentComposite.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/examp6.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/include/EquipmentComposite.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/examp7.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/examp8.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/ObjectFactory.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/include/Dictionary.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/include/Modeler.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/examp9.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/NameIdentifier.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/include/MazeFactory.hpp: 112855 Conformance of libcorelinux macros now CORELINUX macros have the same arg ordering as their stl counterpart 2000-08-14 prudhomm * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/.cvsignore: ignore some more .lo files to avoid unnecessary cvs messages/warnings * /cvsroot/corelinux/corelinux/debian/rules: Feature 110443 : [packaging] new debian packages creation added autorun.sh in the building process to make sure that everything is built up correctly 2000-08-13 frankc * /cvsroot/corelinux/corelinux/ChangeLog: Release 0.4.26 * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Library.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/LibraryException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/LibraryInstance.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/LibraryObject.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/LibraryObjectDefinition.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/LibraryObjectRegistry.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/LibraryType.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Loader.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/LoaderNotFoundException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/LoadException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/corelinux/LibraryException.hpp, /cvsroot/corelinux/corelinux/corelinux/Library.hpp, /cvsroot/corelinux/corelinux/corelinux/LibraryInstance.hpp, /cvsroot/corelinux/corelinux/corelinux/LibraryObjectDefinition.hpp, /cvsroot/corelinux/corelinux/corelinux/LibraryObject.hpp, /cvsroot/corelinux/corelinux/corelinux/LibraryObjectRegistry.hpp, /cvsroot/corelinux/corelinux/corelinux/LibraryType.hpp, /cvsroot/corelinux/corelinux/corelinux/Loader.hpp, /cvsroot/corelinux/corelinux/corelinux/LoaderNotFoundException.hpp, /cvsroot/corelinux/corelinux/corelinux/LoadException.hpp, /cvsroot/corelinux/corelinux/corelinux/Makefile.am: Removed Library Abstraction and update Makefile.am 2000-08-12 frankc * /cvsroot/corelinux/corelinux/corelinux/LibraryException.hpp, /cvsroot/corelinux/corelinux/corelinux/Library.hpp, /cvsroot/corelinux/corelinux/corelinux/LibraryInstance.hpp, /cvsroot/corelinux/corelinux/corelinux/LibraryObjectDefinition.hpp, /cvsroot/corelinux/corelinux/corelinux/LibraryObject.hpp, /cvsroot/corelinux/corelinux/corelinux/LibraryObjectRegistry.hpp, /cvsroot/corelinux/corelinux/corelinux/LibraryType.hpp, /cvsroot/corelinux/corelinux/corelinux/Loader.hpp, /cvsroot/corelinux/corelinux/corelinux/LoaderNotFoundException.hpp, /cvsroot/corelinux/corelinux/corelinux/LoadException.hpp, /cvsroot/corelinux/corelinux/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Library.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/LibraryException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/LibraryInstance.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/LibraryObject.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/LibraryObjectDefinition.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/LibraryObjectRegistry.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/LibraryType.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Loader.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/LoaderNotFoundException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/LoadException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Makefile.am: 107424 Library Load abstractions 2000-07-31 prudhomm * /cvsroot/corelinux/corelinux/corelinux.spec.in: manpages in -dev packages are in the correct location now 2000-07-30 prudhomm * /cvsroot/corelinux/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/corelinux.spec.in: [Bug #110518] RPM aftermath cleanup now remove everything * /cvsroot/corelinux/corelinux/corelinux.spec.in: [Bug #110517] Documentation rpm missing files [Bug #110516] standard rpm missing file link [Bug #110518] RPM aftermath cleanup 2000-07-30 frankc * /cvsroot/corelinux/corelinux/ChangeLog: Release 0.4.26 information 2000-07-29 prudhomm * /cvsroot/corelinux/corelinux/doc/corelinux.cfg.in: Feature 110230: Porting libcorelinux++ to doxygen removed html extra package BATH_MODE set up to yes in doxygen config file * /cvsroot/corelinux/corelinux/ChangeLog: added Feature 110459 [packaging] new redhat packaging system * /cvsroot/corelinux/corelinux/configure.in, /cvsroot/corelinux/corelinux/corelinux.spec.in, /cvsroot/corelinux/corelinux/Makefile.am: Feature 110443: [packaging] new debian packages creation corelinux.spec is generated from corelinux.spec.in and configure a new rpm rule for the Makefile.am * /cvsroot/corelinux/corelinux/doc/.cvsignore: cvs ignoring more files 2000-07-28 prudhomm * /cvsroot/corelinux/corelinux/debian/control, /cvsroot/corelinux/corelinux/debian/Makefile.am, /cvsroot/corelinux/corelinux/ChangeLog: Feature 110443 : [packaging] new debian packages creation o update ChangeLog o updated control * /cvsroot/corelinux/corelinux/configure.in: Feature 110230 : Porting libcorelinux++ to doxygen added doc dir for Makefile generation * /cvsroot/corelinux/corelinux/debian/.cvsignore, /cvsroot/corelinux/corelinux/.cvsignore: more files to ignore for cvs * /cvsroot/corelinux/corelinux/debian/files: removed * /cvsroot/corelinux/corelinux/Makefile.am: added doc * /cvsroot/corelinux/corelinux/ChangeLog: updated o library name shorter o added doxygen support o added C symbol to check corelinux existence * /cvsroot/corelinux/corelinux/.cvsignore, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/.cvsignore, /cvsroot/corelinux/corelinux/doc/.cvsignore: more Files to ignore * /cvsroot/corelinux/corelinux/doc/corelinux.cfg, /cvsroot/corelinux/corelinux/doc/corelinux.cfg.in, /cvsroot/corelinux/corelinux/doc/corelinux.html, /cvsroot/corelinux/corelinux/doc/.cvsignore, /cvsroot/corelinux/corelinux/doc/Makefile.am: Feature 110230: Porting libcorelinux++ to doxygen o created corelinux.cfg.in, automatic versioning uasing autoconf o removed corelinux.cfg o update the html footer: see corelinux.html * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/corelinux.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Makefile.am: [ Bug #110440 ] checking corelinux existence using autoconf corrected added C symbol ACCheckCoreLinux see documentation on how to check corelinux existence using autoconf 2000-07-28 frankc * /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/Room.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/WallFlyweight.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/include/Wall.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/examp1.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/CoreLinuxGuardPool.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Exception.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/ThreadContext.cpp, /cvsroot/corelinux/corelinux/corelinux/AbstractSemaphore.hpp, /cvsroot/corelinux/corelinux/corelinux/CoreLinuxGuardPool.hpp, /cvsroot/corelinux/corelinux/corelinux/Exception.hpp, /cvsroot/corelinux/corelinux/corelinux/GatewaySemaphore.hpp, /cvsroot/corelinux/corelinux/corelinux/List.hpp, /cvsroot/corelinux/corelinux/corelinux/Map.hpp, /cvsroot/corelinux/corelinux/corelinux/Memory.hpp, /cvsroot/corelinux/corelinux/corelinux/Queue.hpp, /cvsroot/corelinux/corelinux/corelinux/SemaphoreGroup.hpp, /cvsroot/corelinux/corelinux/corelinux/Synchronized.hpp, /cvsroot/corelinux/corelinux/corelinux/Thread.hpp, /cvsroot/corelinux/corelinux/corelinux/Vector.hpp: 110055 applied user submitted patch 2000-07-27 prudhomm * /cvsroot/corelinux/corelinux/debian/rules: corrected a few errors: - automatic reference manual generation * /cvsroot/corelinux/corelinux/src/utils/csamon/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex5/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex21/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex2/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex18/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex17/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex16/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex14/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex13/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex10/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/update_makefile.pl, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Makefile.am: [ Bug #110245 ] share library naming convention and shorter name 1- now the shared libraries enjoy the libtool versioning system 2- the libraries have their name changed : to link agains corelinux use -lcl++ * /cvsroot/corelinux/corelinux/debian/.cvsignore, /cvsroot/corelinux/corelinux/.cvsignore, /cvsroot/corelinux/corelinux/src/utils/csamon/.cvsignore, /cvsroot/corelinux/corelinux/src/utils/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/include/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/include/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/include/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/include/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex5/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/include/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/include/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex21/include/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex21/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/include/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex2/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/include/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex18/include/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex18/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex17/include/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex17/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex16/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/include/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex14/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex13/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/include/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/include/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex10/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/include/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/.cvsignore, /cvsroot/corelinux/corelinux/src/testdrivers/.cvsignore, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/.cvsignore, /cvsroot/corelinux/corelinux/src/classlibs/.cvsignore, /cvsroot/corelinux/corelinux/src/.cvsignore, /cvsroot/corelinux/corelinux/doc/.cvsignore: clean up the directories for CVS now the files which should be ignored by CVS are truly ignored * /cvsroot/corelinux/corelinux/doc/corelinux.cfg, /cvsroot/corelinux/corelinux/doc/corelinux.css, /cvsroot/corelinux/corelinux/doc/corelinux.html: Feature #110230: added doxygen configuration file and customization files * /cvsroot/corelinux/corelinux/debian/genmake.pl, /cvsroot/corelinux/corelinux/debian/README.examples, /cvsroot/corelinux/corelinux/debian/README.Redhat, /cvsroot/corelinux/corelinux/debian/changelog, /cvsroot/corelinux/corelinux/debian/control, /cvsroot/corelinux/corelinux/debian/copyright, /cvsroot/corelinux/corelinux/debian/files, /cvsroot/corelinux/corelinux/debian/Makefile.am, /cvsroot/corelinux/corelinux/debian/postinst, /cvsroot/corelinux/corelinux/debian/README.debian, /cvsroot/corelinux/corelinux/debian/rules: upgraded the package generation 2000-07-20 frankc * /cvsroot/corelinux/corelinux/configure.in: Release 0.4.26 version ID 2000-07-15 frankc * /cvsroot/corelinux/corelinux/ChangeLog, /cvsroot/corelinux/corelinux/README: Release 0.4.25 2000-07-10 prudhomm * /cvsroot/corelinux/corelinux/debian/.cvsignore, /cvsroot/corelinux/corelinux/acconfig.h, /cvsroot/corelinux/corelinux/.cvsignore: more files to ignore * /cvsroot/corelinux/corelinux/debian/.cvsignore, /cvsroot/corelinux/corelinux/corelinux/.cvsignore, /cvsroot/corelinux/corelinux/admin/.cvsignore, /cvsroot/corelinux/corelinux/.cvsignore: ignore some files not in CVS repo * /cvsroot/corelinux/corelinux/debian/postinst: added post installation script for dynamic libraries * /cvsroot/corelinux/corelinux/README.emacs: added xemacs/emacs info file for cc mode * /cvsroot/corelinux/corelinux/debian/control, /cvsroot/corelinux/corelinux/debian/copyright, /cvsroot/corelinux/corelinux/debian/Makefile.am: added and removed some files for package creation no more control.in added control addec opyright * /cvsroot/corelinux/corelinux/admin/Makefile.in: removed Makefile.in these files should not be in the CVS repository * /cvsroot/corelinux/corelinux/configure.in, /cvsroot/corelinux/corelinux/Makefile.am: added debian directory for packages creation 2000-06-21 frankc * /cvsroot/corelinux/corelinux/corelinux/Common.hpp: 108017 updates to define Exception earlier 2000-06-21 prudhomm * /cvsroot/corelinux/corelinux/debian/Makefile.in: removed. Makefile.in should not be in CVS * /cvsroot/corelinux/corelinux/configure.in, /cvsroot/corelinux/corelinux/Makefile.am: added debian dir * /cvsroot/corelinux/corelinux/debian/changelog, /cvsroot/corelinux/corelinux/debian/control.in, /cvsroot/corelinux/corelinux/debian/copyright, /cvsroot/corelinux/corelinux/debian/dirs, /cvsroot/corelinux/corelinux/debian/diversions.ex, /cvsroot/corelinux/corelinux/debian/files, /cvsroot/corelinux/corelinux/debian/info.ex, /cvsroot/corelinux/corelinux/debian/libcorelinux.files, /cvsroot/corelinux/corelinux/debian/Makefile.am, /cvsroot/corelinux/corelinux/debian/Makefile.in, /cvsroot/corelinux/corelinux/debian/README.debian, /cvsroot/corelinux/corelinux/debian/rules: import debian packaging dir * /cvsroot/corelinux/corelinux/debian/changelog, /cvsroot/corelinux/corelinux/debian/control.in, /cvsroot/corelinux/corelinux/debian/copyright, /cvsroot/corelinux/corelinux/debian/dirs, /cvsroot/corelinux/corelinux/debian/diversions.ex, /cvsroot/corelinux/corelinux/debian/files, /cvsroot/corelinux/corelinux/debian/info.ex, /cvsroot/corelinux/corelinux/debian/libcorelinux.files, /cvsroot/corelinux/corelinux/debian/Makefile.am, /cvsroot/corelinux/corelinux/debian/Makefile.in, /cvsroot/corelinux/corelinux/debian/README.debian, /cvsroot/corelinux/corelinux/debian/rules: New file. 2000-06-13 frankc * /cvsroot/corelinux/corelinux/configure.in: Preping for 0.4.25 2000-06-10 frankc * /cvsroot/corelinux/corelinux/admin/corelinux_check_compilers.m4, /cvsroot/corelinux/corelinux/ChangeLog, /cvsroot/corelinux/corelinux/src/Makefile.am: 106932 Updates for 0.4.24 * /cvsroot/corelinux/corelinux/src/utils/csamon/csamon.cpp, /cvsroot/corelinux/corelinux/src/utils/csamon/Makefile.am, /cvsroot/corelinux/corelinux/src/utils/Makefile.am: 107314 CSA Monitor * /cvsroot/corelinux/corelinux/corelinux/MemoryStorage.hpp: 104120 MemoryStorage iteration functor capability 2000-06-08 frankc * /cvsroot/corelinux/corelinux/ChangeLog, /cvsroot/corelinux/corelinux/README: 106932 Updates for 0.4.24 2000-06-07 frankc * /cvsroot/corelinux/corelinux/src/testdrivers/ex21/examp21c.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex21/examp21s.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreCommon.cpp, /cvsroot/corelinux/corelinux/corelinux/SemaphoreCommon.hpp: 107055 Reclaim corrected for CSA 2000-06-06 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/AbstractSemaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/CommandFrame.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Component.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Handler.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Memory.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/MemoryStorage.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/MutexSemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreCommon.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Synchronized.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp, /cvsroot/corelinux/corelinux/corelinux/SemaphoreCommon.hpp: Cleanups as a result of -Wall * /cvsroot/corelinux/corelinux/admin/corelinux_check_compilers.m4: Added -Wall to g++ debug flags * /cvsroot/corelinux/corelinux/configure.in, /cvsroot/corelinux/corelinux/README, /cvsroot/corelinux/corelinux/ChangeLog: Preperation for 0.4.24 2000-06-05 frankc * /cvsroot/corelinux/corelinux/src/testdrivers/ex21/examp21c.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex21/examp21s.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex21/include/ex21.hpp: Release 0.4.23 2000-06-04 frankc * /cvsroot/corelinux/corelinux/src/testdrivers/ex21/Makefile.am: Modification for distribution * /cvsroot/corelinux/corelinux/configure.in, /cvsroot/corelinux/corelinux/corelinux/Environment.hpp, /cvsroot/corelinux/corelinux/corelinux/GatewaySemaphoreGroup.hpp, /cvsroot/corelinux/corelinux/corelinux/Memory.hpp, /cvsroot/corelinux/corelinux/corelinux/MutexSemaphoreGroup.hpp, /cvsroot/corelinux/corelinux/corelinux/SemaphoreGroup.hpp, /cvsroot/corelinux/corelinux/README, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Environment.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/GatewaySemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Memory.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/MutexSemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreCommon.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex21/examp21c.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex21/examp21s.cpp: 101873 and 104120 updates for shared IPC between libcorelinux applications 2000-06-03 frankc * /cvsroot/corelinux/corelinux/src/testdrivers/ex21/examp21c.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex21/examp21.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex21/examp21s.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex21/include/ex21.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex21/include/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex21/Makefile.am: 101873 Shared Semaphore access example * /cvsroot/corelinux/corelinux/corelinux/AbstractSemaphore.hpp, /cvsroot/corelinux/corelinux/corelinux/GatewaySemaphoreGroup.hpp, /cvsroot/corelinux/corelinux/corelinux/MutexSemaphoreGroup.hpp, /cvsroot/corelinux/corelinux/corelinux/SemaphoreCommon.hpp, /cvsroot/corelinux/corelinux/corelinux/SemaphoreGroup.hpp, /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/AbstractSemaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/GatewaySemaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/GatewaySemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/MutexSemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreCommon.cpp: 101873 Refine Semaphore CSA and GatewaySemaphoreGroup 2000-06-02 frankc * /cvsroot/corelinux/corelinux/corelinux/AbstractSemaphore.hpp, /cvsroot/corelinux/corelinux/corelinux/Common.hpp, /cvsroot/corelinux/corelinux/corelinux/CoreLinuxGuardGroup.hpp, /cvsroot/corelinux/corelinux/corelinux/GatewaySemaphoreGroup.hpp, /cvsroot/corelinux/corelinux/corelinux/GatewaySemaphore.hpp, /cvsroot/corelinux/corelinux/corelinux/GuardSemaphore.hpp, /cvsroot/corelinux/corelinux/corelinux/MutexSemaphoreGroup.hpp, /cvsroot/corelinux/corelinux/corelinux/MutexSemaphore.hpp, /cvsroot/corelinux/corelinux/corelinux/SemaphoreCommon.hpp, /cvsroot/corelinux/corelinux/corelinux/SemaphoreGroup.hpp, /cvsroot/corelinux/corelinux/corelinux/Semaphore.hpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/AbstractSemaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/CoreLinuxGuardGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/CoreLinuxGuardPool.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/GatewaySemaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/GatewaySemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/GuardSemaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/MutexSemaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/MutexSemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreCommon.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Semaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex13/examp13.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex14/examp14.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex21/examp21.cpp, /cvsroot/corelinux/corelinux/ChangeLog, /cvsroot/corelinux/corelinux/README: 101873 Shared Mutex Semaphores 2000-05-31 frankc * /cvsroot/corelinux/corelinux/src/testdrivers/ex21/examp21.cpp: 101873 Sample Code for testing Semaphore Cross Process * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreCommon.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/corelinux/SemaphoreCommon.hpp, /cvsroot/corelinux/corelinux/corelinux/SemaphoreGroup.hpp: 101873 Refining CSA 2000-05-30 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/CoreLinuxGuardPool.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/MutexSemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreCommon.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/corelinux/SemaphoreCommon.hpp, /cvsroot/corelinux/corelinux/corelinux/SemaphoreGroup.hpp: 101873 Shared Semaphore Updates 2000-05-28 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/CoreLinuxGuardPool.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Memory.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreCommon.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/corelinux/Common.hpp, /cvsroot/corelinux/corelinux/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/corelinux/Memory.hpp, /cvsroot/corelinux/corelinux/corelinux/MemoryStorage.hpp, /cvsroot/corelinux/corelinux/corelinux/SemaphoreCommon.hpp, /cvsroot/corelinux/corelinux/corelinux/SemaphoreGroup.hpp: 101873 Support Shared Semaphore Groups 2000-05-26 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Memory.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/MemoryStorage.cpp, /cvsroot/corelinux/corelinux/corelinux/MemoryStorage.hpp: 104120 Updates in preperation of Shared behavior 2000-05-25 frankc * /cvsroot/corelinux/corelinux/src/testdrivers/ex21/examp21.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex21/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/Makefile.am, /cvsroot/corelinux/corelinux/configure.in, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Environment.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/corelinux/Common.hpp, /cvsroot/corelinux/corelinux/corelinux/Environment.hpp, /cvsroot/corelinux/corelinux/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/corelinux/ScalarIdentifiers.hpp, /cvsroot/corelinux/corelinux/corelinux/Types.hpp: 106142 Environment changes 2000-05-19 frankc * /cvsroot/corelinux/corelinux/ChangeLog, /cvsroot/corelinux/corelinux/README: 105649 Release 0.4.22 2000-05-17 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Context.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/State.cpp, /cvsroot/corelinux/corelinux/corelinux/Context.hpp, /cvsroot/corelinux/corelinux/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/corelinux/State.hpp, /cvsroot/corelinux/corelinux/ChangeLog, /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/README: 101837 State Pattern implementation 2000-05-13 frankc * /cvsroot/corelinux/corelinux/ChangeLog, /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/admin/Makefile.in, /cvsroot/corelinux/corelinux/corelinux/Allocator.hpp, /cvsroot/corelinux/corelinux/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/corelinux/Strategy.hpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Allocator.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Strategy.cpp: 101838 Implementation for 6595-Strategy 2000-05-12 frankc * /cvsroot/corelinux/corelinux/ChangeLog, /cvsroot/corelinux/corelinux/configure.in, /cvsroot/corelinux/corelinux/README: 105649 Preperation for 0.4.22 * /cvsroot/corelinux/corelinux/admin/Makefile.in, /cvsroot/corelinux/corelinux/ChangeLog, /cvsroot/corelinux/corelinux/corelinux/Component.hpp, /cvsroot/corelinux/corelinux/corelinux/CoreLinuxObject.hpp, /cvsroot/corelinux/corelinux/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/corelinux/Visitor.hpp, /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/README, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Component.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Visitor.cpp: 101840 and 105387 Visitor and 0.4.21 release 2000-05-10 frankc * /cvsroot/corelinux/corelinux/master.dxx: 101836 Subject Observer (6592) 2000-05-09 prudhomm * /cvsroot/corelinux/corelinux/ChangeLog: Defect 105472 corrected 2000-05-08 prudhomm * /cvsroot/corelinux/corelinux/src/testdrivers/ex20/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex18/Makefile.am: uncomment SUBDIRS for include/ dir * /cvsroot/corelinux/corelinux/configure.in: add top_srcdir as an include dir, now examp17 to examp 20 compile 2000-05-08 frankc * /cvsroot/corelinux/corelinux/ChangeLog, /cvsroot/corelinux/corelinux/configure.in, /cvsroot/corelinux/corelinux/README, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/Edit.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/examp20.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/include/Edit.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/include/Events.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/include/Lister.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/include/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/include/Mementos.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/include/Select.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/include/SubjectObserver.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/Lister.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/Select.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex20/SubjectObserver.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/Makefile.am: 101836 Subject Observer change 2000-05-07 frankc * /cvsroot/corelinux/corelinux/admin/Makefile.in, /cvsroot/corelinux/corelinux/configure.in, /cvsroot/corelinux/corelinux/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/corelinux/Observer.hpp, /cvsroot/corelinux/corelinux/corelinux/Subject.hpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Observer.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Subject.cpp: 101836 implementation 6592-Subject Observer * /cvsroot/corelinux/corelinux/src/testdrivers/ex19/SelectColleague.cpp, /cvsroot/corelinux/corelinux/admin/Makefile.in, /cvsroot/corelinux/corelinux/ChangeLog, /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/README: 105226 Release 0.4.20 * /cvsroot/corelinux/corelinux/src/testdrivers/ex19/EditColleague.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/examp19.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/include/EditColleague.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/include/ListColleague.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/include/ListEvents.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/include/ListMediator.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/include/ListMementos.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/include/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/include/SelectColleague.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/ListColleague.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/ListMediator.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex19/SelectColleague.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Colleague.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Mediator.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Memento.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/Makefile.am, /cvsroot/corelinux/corelinux/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/corelinux/Colleague.hpp, /cvsroot/corelinux/corelinux/corelinux/Common.hpp, /cvsroot/corelinux/corelinux/corelinux/Event.hpp, /cvsroot/corelinux/corelinux/corelinux/Mediator.hpp, /cvsroot/corelinux/corelinux/corelinux/Memento.hpp: 101834 and 101835 Mediator and Memento 2000-05-06 frankc * /cvsroot/corelinux/corelinux/configure.in: 105355 Missing directory directive * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/NullPointerException.cpp, /cvsroot/corelinux/corelinux/corelinux/NullPointerException.hpp: 105353 NullPointerException requirement 2000-05-04 frankc * /cvsroot/corelinux/corelinux/admin/Makefile.in, /cvsroot/corelinux/corelinux/ChangeLog, /cvsroot/corelinux/corelinux/configure.in, /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/README, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/CommandFrame.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex18/examp18.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex18/include/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex18/include/RestoreCaseCommand.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex18/include/UpperCaseCommand.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex18/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex18/RestoreCaseCommand.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex18/UpperCaseCommand.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/Makefile.am: Release 0.4.19 with 101833 Command Pattern 2000-05-03 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/AbstractCommand.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Command.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/CommandFrame.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/CommandFrameException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Synchronized.cpp, /cvsroot/corelinux/corelinux/corelinux/AbstractCommand.hpp, /cvsroot/corelinux/corelinux/corelinux/CommandFrameException.hpp, /cvsroot/corelinux/corelinux/corelinux/CommandFrame.hpp, /cvsroot/corelinux/corelinux/corelinux/Command.hpp, /cvsroot/corelinux/corelinux/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/corelinux/Synchronized.hpp: 101833 Implementation 6588-Command Pattern 2000-04-28 frankc * /cvsroot/corelinux/corelinux/admin/Makefile.in: 104842 Release 0.4.18 2000-04-27 frankc * /cvsroot/corelinux/corelinux/ChangeLog, /cvsroot/corelinux/corelinux/configure.in, /cvsroot/corelinux/corelinux/corelinux/Handler.hpp, /cvsroot/corelinux/corelinux/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/corelinux/Request.hpp, /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/README, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Handler.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Request.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex17/examp17.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex17/HandlerHelpHandler.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex17/HelpHandler.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex17/HelpRequest.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex17/include/HandlerHelpHandler.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex17/include/HelpHandler.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex17/include/HelpRequest.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex17/include/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex17/include/RequestHelpHandler.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex17/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex17/RequestHelpHandler.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/Makefile.am: 101832 Chain of Responsibility Pattern implementation 2000-04-26 frankc * /cvsroot/corelinux/corelinux/configure.in: 104482 Release 0.4.18 preperation * /cvsroot/corelinux/corelinux/ChangeLog: 104577 Release 0.4.17 * /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/README: 104652 README and master.dxx for 0.4.17 * /cvsroot/corelinux/corelinux/src/testdrivers/ex14/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex16/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex2/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex5/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/Makefile.am, /cvsroot/corelinux/corelinux/admin/Makefile.in, /cvsroot/corelinux/corelinux/configure.in, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex10/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex13/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/Makefile.am: 104652 Library version and release corrections in configure.in and Makefile.am 2000-04-25 frankc * /cvsroot/corelinux/corelinux/configure.in: 104652 Update for distribution package name * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Makefile.am: Needed to have libcorelinux++ instead of libcorelinux 2000-04-24 frankc * /cvsroot/corelinux/corelinux/INSTALL: 104652 partial information for installation configure scenarios * /cvsroot/corelinux/corelinux/src/testdrivers/ex4/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/makefile: 104652 change to automake 2000-04-23 prudhomm * /cvsroot/corelinux/corelinux/src/testdrivers/ex16/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex16/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex16/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex14/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex14/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex14/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex13/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex13/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex13/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex10/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex10/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex10/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex5/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex5/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex5/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex2/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex2/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex2/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/cleanchk, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/project.inc, /cvsroot/corelinux/corelinux/corelinux/listfiles, /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/makefile, /cvsroot/corelinux/corelinux/src/classlibs/makefile, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/cleanchk, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/dirs.inc, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc, /cvsroot/corelinux/corelinux/admin/.cvsignore~, /cvsroot/corelinux/corelinux/dirs.inc, /cvsroot/corelinux/corelinux/dirs.tm, /cvsroot/corelinux/corelinux/makefile, /cvsroot/corelinux/corelinux/makefile.tm, /cvsroot/corelinux/corelinux/mkbuiltins.mk, /cvsroot/corelinux/corelinux/project.inc, /cvsroot/corelinux/corelinux/project.tm, /cvsroot/corelinux/corelinux/src/testdrivers/ex13/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex14/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/include/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex16/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex2/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/include/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/include/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex5/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/include/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/include/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/include/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/include/Makefile.am, /cvsroot/corelinux/corelinux/admin/config.guess, /cvsroot/corelinux/corelinux/admin/config.sub, /cvsroot/corelinux/corelinux/admin/corelinux_check_compilers.m4, /cvsroot/corelinux/corelinux/admin/.cvsignore, /cvsroot/corelinux/corelinux/admin/install-sh, /cvsroot/corelinux/corelinux/admin/ltconfig, /cvsroot/corelinux/corelinux/admin/ltmain.sh, /cvsroot/corelinux/corelinux/admin/Makefile.am, /cvsroot/corelinux/corelinux/admin/Makefile.in, /cvsroot/corelinux/corelinux/admin/missing, /cvsroot/corelinux/corelinux/admin/mkinstalldirs, /cvsroot/corelinux/corelinux/AUTHORS, /cvsroot/corelinux/corelinux/autorun.sh, /cvsroot/corelinux/corelinux/configure.in, /cvsroot/corelinux/corelinux/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/INSTALL, /cvsroot/corelinux/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/NEWS, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Makefile.am, /cvsroot/corelinux/corelinux/src/classlibs/Makefile.am, /cvsroot/corelinux/corelinux/src/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex10/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/include/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/include/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/include/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/Makefile.am, /cvsroot/corelinux/corelinux/src/testdrivers/Makefile.am: 104652 change to automake * /cvsroot/corelinux/corelinux/corelinux/AbstractAllocator.hpp, /cvsroot/corelinux/corelinux/corelinux/AbstractFactoryException.hpp, /cvsroot/corelinux/corelinux/corelinux/AbstractFactory.hpp, /cvsroot/corelinux/corelinux/corelinux/AbstractSemaphore.hpp, /cvsroot/corelinux/corelinux/corelinux/AbstractString.hpp, /cvsroot/corelinux/corelinux/corelinux/AccessRights.hpp, /cvsroot/corelinux/corelinux/corelinux/Adapter.hpp, /cvsroot/corelinux/corelinux/corelinux/AllocatorAlreadyExistsException.hpp, /cvsroot/corelinux/corelinux/corelinux/Allocator.hpp, /cvsroot/corelinux/corelinux/corelinux/AllocatorNotFoundException.hpp, /cvsroot/corelinux/corelinux/corelinux/Assertion.hpp, /cvsroot/corelinux/corelinux/corelinux/AssociativeIterator.hpp, /cvsroot/corelinux/corelinux/corelinux/BoundsException.hpp, /cvsroot/corelinux/corelinux/corelinux/Bridge.hpp, /cvsroot/corelinux/corelinux/corelinux/Builder.hpp, /cvsroot/corelinux/corelinux/corelinux/Common.hpp, /cvsroot/corelinux/corelinux/corelinux/Component.hpp, /cvsroot/corelinux/corelinux/corelinux/CompositeException.hpp, /cvsroot/corelinux/corelinux/corelinux/CoreLinuxAssociativeIterator.hpp, /cvsroot/corelinux/corelinux/corelinux/CoreLinuxGuardGroup.hpp, /cvsroot/corelinux/corelinux/corelinux/CoreLinuxGuardPool.hpp, /cvsroot/corelinux/corelinux/corelinux/CoreLinuxIterator.hpp, /cvsroot/corelinux/corelinux/corelinux/CoreLinuxObject.hpp, /cvsroot/corelinux/corelinux/corelinux/Decorator.hpp, /cvsroot/corelinux/corelinux/corelinux/Exception.hpp, /cvsroot/corelinux/corelinux/corelinux/Facade.hpp, /cvsroot/corelinux/corelinux/corelinux/Flyweight.hpp, /cvsroot/corelinux/corelinux/corelinux/GatewaySemaphoreGroup.hpp, /cvsroot/corelinux/corelinux/corelinux/GatewaySemaphore.hpp, /cvsroot/corelinux/corelinux/corelinux/GuardSemaphore.hpp, /cvsroot/corelinux/corelinux/corelinux/Identifier.hpp, /cvsroot/corelinux/corelinux/corelinux/InvalidCompositeException.hpp, /cvsroot/corelinux/corelinux/corelinux/InvalidIteratorException.hpp, /cvsroot/corelinux/corelinux/corelinux/InvalidThreadException.hpp, /cvsroot/corelinux/corelinux/corelinux/IteratorBoundsException.hpp, /cvsroot/corelinux/corelinux/corelinux/IteratorException.hpp, /cvsroot/corelinux/corelinux/corelinux/Iterator.hpp, /cvsroot/corelinux/corelinux/corelinux/Limits.hpp, /cvsroot/corelinux/corelinux/corelinux/listfiles, /cvsroot/corelinux/corelinux/corelinux/List.hpp, /cvsroot/corelinux/corelinux/corelinux/Map.hpp, /cvsroot/corelinux/corelinux/corelinux/Memory.hpp, /cvsroot/corelinux/corelinux/corelinux/MemoryStorage.hpp, /cvsroot/corelinux/corelinux/corelinux/MutexSemaphoreGroup.hpp, /cvsroot/corelinux/corelinux/corelinux/MutexSemaphore.hpp, /cvsroot/corelinux/corelinux/corelinux/Pair.hpp, /cvsroot/corelinux/corelinux/corelinux/Prototype.hpp, /cvsroot/corelinux/corelinux/corelinux/Proxy.hpp, /cvsroot/corelinux/corelinux/corelinux/Queue.hpp, /cvsroot/corelinux/corelinux/corelinux/ScalarIdentifiers.hpp, /cvsroot/corelinux/corelinux/corelinux/SemaphoreException.hpp, /cvsroot/corelinux/corelinux/corelinux/SemaphoreGroup.hpp, /cvsroot/corelinux/corelinux/corelinux/Semaphore.hpp, /cvsroot/corelinux/corelinux/corelinux/Set.hpp, /cvsroot/corelinux/corelinux/corelinux/Singleton.hpp, /cvsroot/corelinux/corelinux/corelinux/Stack.hpp, /cvsroot/corelinux/corelinux/corelinux/StorageException.hpp, /cvsroot/corelinux/corelinux/corelinux/Storage.hpp, /cvsroot/corelinux/corelinux/corelinux/String.hpp, /cvsroot/corelinux/corelinux/corelinux/StringUtf8.hpp, /cvsroot/corelinux/corelinux/corelinux/Synchronized.hpp, /cvsroot/corelinux/corelinux/corelinux/ThreadContext.hpp, /cvsroot/corelinux/corelinux/corelinux/ThreadException.hpp, /cvsroot/corelinux/corelinux/corelinux/Thread.hpp, /cvsroot/corelinux/corelinux/corelinux/TransientStorage.hpp, /cvsroot/corelinux/corelinux/corelinux/TransparentComponent.hpp, /cvsroot/corelinux/corelinux/corelinux/Types.hpp, /cvsroot/corelinux/corelinux/corelinux/Vector.hpp: moved include directory to corelinux directory 2000-04-21 frankc * /cvsroot/corelinux/corelinux/src/testdrivers/ex13/examp13.cpp: 104630 Fixes seg fault and core dump * /cvsroot/corelinux/corelinux/mkbuiltins.mk, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/examp11.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/include/MazeBuilderFactory.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/include/MazeBuilder.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/include/MazeFactory.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/MazeBuilder.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/MazeBuilderFactory.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/MazeFactory.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/Door.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/MazeFactory.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/NameIdentifier.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/Room.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/WallFactory.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/exmplsupport/WallFlyweight.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/include/Door.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/include/MapSite.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/include/MazeFactory.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/include/NameIdentifier.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/include/Room.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/include/WallFactory.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/include/WallFlyweight.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/include/Wall.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex10/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex10/examp10.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex10/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex10/WallFactory.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex10/WallFlyweight.cpp: 104481 Updates for cross-compile cleanup 2000-04-20 frankc * /cvsroot/corelinux/corelinux/src/testdrivers/ex9/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/Door.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/examp9.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/MazeFactory.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/NameIdentifier.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/Room.cpp: 104481 Consolodate dependencies for example code * /cvsroot/corelinux/corelinux/master.dxx: 104344 Release 0.4.16 2000-04-19 frankc * /cvsroot/corelinux/corelinux/ChangeLog: 104482 Moved ChangeLog out * /cvsroot/corelinux/corelinux/README, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex16/examp16.cpp: 104480 Thread interface change 2000-04-18 frankc * /cvsroot/corelinux/corelinux/AUTHORS, /cvsroot/corelinux/corelinux/ChangeLog, /cvsroot/corelinux/corelinux/COPYING, /cvsroot/corelinux/corelinux/NEWS, /cvsroot/corelinux/corelinux/README: 104482 Added files to move build process 2000-04-15 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/BoundsException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/MemoryStorage.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex16/examp16.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex16/makefile: 104120 Updates for 20873-Memory 2000-04-14 frankc * /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/README, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Memory.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/MemoryStorage.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Storage.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/StorageException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/TransientStorage.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex16/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex16/examp16.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex16/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex16/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/makefile: 104120 Initial implementation for Requirement 20973-Memory 2000-04-06 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/ThreadContext.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/ArgumentContext.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/include/ArgumentContext.hpp, /cvsroot/corelinux/corelinux/README: 103993 Change for thread frame entry point 2000-04-02 frankc * /cvsroot/corelinux/corelinux/clfaq.html, /cvsroot/corelinux/corelinux/develop.html, /cvsroot/corelinux/corelinux/index.html, /cvsroot/corelinux/corelinux/README, /cvsroot/corelinux/corelinux/doc/cppstnd.html, /cvsroot/corelinux/corelinux/doc/funcreq.html, /cvsroot/corelinux/corelinux/doc/oostnd.html, /cvsroot/corelinux/corelinux/doc/process.html, /cvsroot/corelinux/corelinux/doc/reqs.html: 103781 Moved to htdocs * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp: 102427 Added instrumentation and context cleanup method 2000-04-01 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc: 103710 Release 0.4.15 2000-03-31 frankc * /cvsroot/corelinux/corelinux/index.html: 103527 Release 0.4.14 * /cvsroot/corelinux/corelinux/README, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/ArgumentContext.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/ThreadContext.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/examp15.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/include/ArgumentContext.hpp: 103526 Restructed context and thread 2000-03-28 frankc * /cvsroot/corelinux/corelinux/doc/cppstnd.html: 103551 Changes to standard for 78 column width, and numerous spelling errors 2000-03-27 frankc * /cvsroot/corelinux/corelinux/doc/reqs.html, /cvsroot/corelinux/corelinux/index.html, /cvsroot/corelinux/corelinux/README: 103254 Release 0.4.13 * /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/InvalidThreadException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/ThreadException.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/ArgumentContext.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/examp15.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/include/ArgumentContext.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/makefile: 102427 Updates for Thread, ThreadContext, and ThreadExceptions 2000-03-26 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/ThreadContext.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex14/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/examp15.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex15/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/makefile: 102427 Initial Implementation for 1588-Thread 2000-03-22 frankc * /cvsroot/corelinux/corelinux/doc/reqs.html: 102427 Design Updates for 1588-Thread 2000-03-21 frankc * /cvsroot/corelinux/corelinux/index.html, /cvsroot/corelinux/corelinux/README: 102850 0.4.12 release * /cvsroot/corelinux/corelinux/doc/reqs.html: Updates to index * /cvsroot/corelinux/corelinux/index.html: Stuck counter 2000-03-18 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc: 102850 Release 0.4.12 * /cvsroot/corelinux/corelinux/src/testdrivers/ex7/PostBanner.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/PreBanner.cpp: 103116 Correct template base calls 2000-03-17 frankc * /cvsroot/corelinux/corelinux/doc/reqs.html: 1588 Thread SRS 2000-03-13 frankc * /cvsroot/corelinux/corelinux/src/testdrivers/ex13/examp13.cpp, /cvsroot/corelinux/corelinux/README, /cvsroot/corelinux/corelinux/index.html: 102609 Release 0.4.11 2000-03-12 frankc * /cvsroot/corelinux/corelinux/master.dxx: 102609 Release 0.4.11 Prep * /cvsroot/corelinux/corelinux/src/testdrivers/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex14/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex14/examp14.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex14/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex14/project.inc: 101873 GatewaySemaphore example source * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/GatewaySemaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Semaphore.cpp: 101873 Recursion and GatewaySemaphore updates 2000-03-11 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/GatewaySemaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Semaphore.cpp: 101873 Updates for Gateway * /cvsroot/corelinux/corelinux/src/testdrivers/ex13/examp13.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/MutexSemaphore.cpp: 101873 Updates to Semaphore work * /cvsroot/corelinux/corelinux/index.html: Support news 2000-03-10 frankc * /cvsroot/corelinux/corelinux/src/testdrivers/ex13/examp13.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/AbstractSemaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/CoreLinuxGuardGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/CoreLinuxGuardPool.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/GuardSemaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/MutexSemaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/MutexSemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Semaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp: 101873 - Extensions for GuardPool, Recursion, and Thread 2000-03-09 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/AbstractSemaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreGroup.cpp: 102720 Corrected errno usage to *__errno() for thread specific errors 2000-03-08 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc: 102609 Release 0.4.11 library change * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/MutexSemaphoreGroup.cpp: 102674 MutexSemaphoreGroup degredation 2000-03-06 frankc * /cvsroot/corelinux/corelinux/index.html, /cvsroot/corelinux/corelinux/README, /cvsroot/corelinux/corelinux/src/testdrivers/ex13/examp13.cpp: 102435 0.4.10 Release * /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/CoreLinuxGuardGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/CoreLinuxGuardPool.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/GatewaySemaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/GatewaySemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/MutexSemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreGroup.cpp: 101873 Continue Implementation of 1589-Semaphore 2000-03-04 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/CoreLinuxGuardPool.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Synchronized.cpp: 101873 Added release to Synchronized::Guard and CoreLinuxGuardPool::isLocked 2000-03-03 frankc * /cvsroot/corelinux/corelinux/index.html: 101873 Updates for Semaphore * /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/CoreLinuxGuardPool.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/MutexSemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Synchronized.cpp: 101873 Updates for 1589-Semaphore 2000-03-01 frankc * /cvsroot/corelinux/corelinux/index.html, /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/README: 101873 and 0.4.9 * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/AbstractSemaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Identifier.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/MutexSemaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/MutexSemaphoreGroup.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Semaphore.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/SemaphoreGroup.cpp: 101873 Semaphores and 0.4.9 * /cvsroot/corelinux/corelinux/src/testdrivers/ex13/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex13/examp13.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex13/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex13/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/Dictionary.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/include/Dictionary.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/include/Modeler.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/include/ObjectFactory.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/include/Object.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/Modeler.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/Object.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/ObjectFactory.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/ObjectModel.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/makefile: 101873 Updates and additions to testdrivers * /cvsroot/corelinux/corelinux/doc/reqs.html: 101873 Updates for 1589-Semaphore 2000-02-17 frankc * /cvsroot/corelinux/corelinux/doc/reqs.html: 101873 Added Semaphore SRS link 2000-02-12 frankc * /cvsroot/corelinux/corelinux/doc/reqs.html, /cvsroot/corelinux/corelinux/index.html, /cvsroot/corelinux/corelinux/README: 101685 Release 0.4.8 2000-02-11 frankc * /cvsroot/corelinux/corelinux/doc/reqs.html, /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/examp9.cpp: 101186 Updated for 5099-Singleton pattern * /cvsroot/corelinux/corelinux/doc/reqs.html, /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/EightCylinderEngine.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/EngineBridge.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/Engine.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/examp4.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/include/EightCylinderEngine.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/include/EngineBridge.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/include/Engine.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/include/SixCylinderEngine.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/SixCylinderEngine.cpp: 101185 Updates for 5098-Prototype pattern 2000-02-10 frankc * /cvsroot/corelinux/corelinux/src/testdrivers/ex4/include/EightCylinderEngine.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/include/EngineBridge.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/include/Engine.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/include/SixCylinderEngine.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/include/EquipmentComposite.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/include/Equipment.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/include/HardDrive.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/include/PowerSupply.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/include/BannerComponent.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/include/PostBanner.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/include/PreBanner.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/include/Dictionary.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/include/Modeler.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/include/ObjectFactory.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/include/Object.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/include/ObjectModel.hpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/include/MazeBuilder.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/include/MazeFactory.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/include/Maze.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/include/AbstractBankAccount.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/include/AccountProxy.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/include/BankAccount.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/include/RestrictedAccountProxy.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/include/Person.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex2/examp2.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/include/Bar.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/include/FooBarClassAdapter.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/include/FooBarObjectAdapter.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/include/Foo.hpp: 101801 Changed DEFINE_TYPE and DEFINE_CLASS to DECLARE_TYPE and DECLARE_CLASS * /cvsroot/corelinux/corelinux/doc/cppstnd.html: Updates to C++ Standard Documents * /cvsroot/corelinux/corelinux/index.html: Updates to classref and standard docs 2000-02-08 frankc * /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/README: 101336 Updated 0.4.7 * /cvsroot/corelinux/corelinux/index.html: 101682 Updated for news and 0.4.7 * /cvsroot/corelinux/corelinux/doc/reqs.html: 100596 3147-Proxy pattern completed * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/AccountProxy.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/BankAccount.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/examp12.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/include/AbstractBankAccount.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/include/AccountProxy.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/include/BankAccount.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/include/RestrictedAccountProxy.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex12/RestrictedAccountProxy.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/makefile: 100596 3147-Proxy pattern 2000-02-06 frankc * /cvsroot/corelinux/corelinux/doc/reqs.html: 100596 Design for 3147-Proxy pattern * /cvsroot/corelinux/corelinux/doc/reqs.html: 101183 Completed 5096-Builder pattern * /cvsroot/corelinux/corelinux/master.dxx: Added Builder * /cvsroot/corelinux/corelinux/src/testdrivers/makefile, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/examp11.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/include/MazeBuilder.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/include/MazeFactory.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/include/Maze.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/MazeBuilder.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/Maze.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/MazeFactory.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex11/project.inc: 101183 5096-Builder pattern * /cvsroot/corelinux/corelinux/src/testdrivers/ex9/MazeFactory.cpp: 101628 returnAllocator did not return the AllocatorPtr 2000-02-04 frankc * /cvsroot/corelinux/corelinux/doc/reqs.html: 101183 5096-Builder and 101184 5097 Factory Method 2000-02-03 frankc * /cvsroot/corelinux/corelinux/doc/reqs.html: 100595 Flyweight and Builder updates * /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Flyweight.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex10/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex10/examp10.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex10/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex10/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex10/WallFactory.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex10/WallFlyweight.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/makefile: 100595 Implementation 3146-Flyweight Pattern 2000-02-01 frankc * /cvsroot/corelinux/corelinux/doc/reqs.html: 100595 Design for 3146-Flyweight Pattern 2000-01-29 frankc * /cvsroot/corelinux/corelinux/README: 101214 Release 0.4.6 * /cvsroot/corelinux/corelinux/index.html: 101333 101334 Updated for Patch Manager, FAQ, and CVS archive * /cvsroot/corelinux/corelinux/clfaq.html: 101332 Updated for Patch Manager, Defect definition, and CVS archive * /cvsroot/corelinux/corelinux/master.dxx: New types: AbstractFactory et.al. and AssociativeIterator * /cvsroot/corelinux/corelinux/src/testdrivers/ex9/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/Door.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/examp9.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/MazeFactory.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/NameIdentifier.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex9/Room.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/makefile: 101182 AbstractFactory example code * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/AbstractFactoryException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/AllocatorAlreadyExistsException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Allocator.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/AllocatorNotFoundException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Identifier.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc: 101182 AbstractFactory Implementation * /cvsroot/corelinux/corelinux/doc/reqs.html: Changes for AbstractFactory and Iterator 2000-01-26 frankc * /cvsroot/corelinux/corelinux/doc/reqs.html: Creational Patterns SRS 2000-01-25 frankc * /cvsroot/corelinux/corelinux/index.html: Added direct download link to release 2000-01-24 frankc * /cvsroot/corelinux/corelinux/master.dxx: 100594 Updated for 3145-Facade pattern * /cvsroot/corelinux/corelinux/index.html, /cvsroot/corelinux/corelinux/README: 101072 Release 0.4.5 * /cvsroot/corelinux/corelinux/src/testdrivers/ex8/Dictionary.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/examp8.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/include/Dictionary.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/include/Modeler.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/include/ObjectFactory.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/include/Object.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/include/ObjectModel.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/Modeler.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/Object.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/ObjectFactory.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/ObjectModel.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex8/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/makefile: 100594 Implementation for 3145-Facade pattern 2000-01-23 frankc * /cvsroot/corelinux/corelinux/src/testdrivers/ex7/makefile: 100546 Decorator pattern * /cvsroot/corelinux/corelinux/index.html: Changed layout * /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Facade.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile: 100594 Implementation for 3145-Facade pattern * /cvsroot/corelinux/corelinux/doc/reqs.html: 100594 Design for 3145-Facade pattern 2000-01-22 frankc * /cvsroot/corelinux/corelinux/master.dxx: 100546 Implementation of 3144-Decorator * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/BannerComponent.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/examp7.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/include/BannerComponent.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/include/PostBanner.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/include/PreBanner.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/PostBanner.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/PreBanner.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex7/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/makefile: 100546 Implementation of 3144-Decorator * /cvsroot/corelinux/corelinux/doc/reqs.html: 100546 Decorator Design * /cvsroot/corelinux/corelinux/index.html: 100599 MagicDraw donation 2000-01-21 frankc * /cvsroot/corelinux/corelinux/index.html: 100983 Release 0.4.4 2000-01-21 jrkoontz * /cvsroot/corelinux/corelinux/doc/reqs.html: Added the link and "updated" flag to the string (req4568.html) requirements document 2000-01-21 frankc * /cvsroot/corelinux/corelinux/README: 100983 Release 0.4.4 * /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Component.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/CompositeException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/InvalidCompositeException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/EquipmentComposite.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/Equipment.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/examp6.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/HardDrive.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/include/EquipmentComposite.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/include/Equipment.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/include/HardDrive.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/include/PowerSupply.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/PowerSupply.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex6/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/makefile: 100545 Implementation for 3143-Composite Pattern 2000-01-19 frankc * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Bridge.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/EngineBridge.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/include/EngineBridge.hpp: 101018 Bridge changed to template for type reasoning * /cvsroot/corelinux/corelinux/doc/reqs.html: 101018 Redesign Bridge as parametized class * /cvsroot/corelinux/corelinux/doc/cppstnd.html, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/include/Person.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/FooBarObjectAdapter.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/include/Bar.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/include/FooBarClassAdapter.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/include/FooBarObjectAdapter.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/include/Foo.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/include/EngineBridge.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/include/Engine.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/Person.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/Bar.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/FooBarClassAdapter.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/Foo.cpp: 101017 Removed using namespace in headers 2000-01-18 frankc * /cvsroot/corelinux/corelinux/doc/reqs.html: 100545 Updated for Composite * /cvsroot/corelinux/corelinux/README: 100946 Release 0.4.2 * /cvsroot/corelinux/corelinux/src/testdrivers/ex5/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex5/examp5.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex5/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex5/project.inc: 100945 Iterator Test Source * /cvsroot/corelinux/corelinux/src/testdrivers/makefile: 100945 Added source make for ex5 * /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Exception.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/InvalidIteratorException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/IteratorBoundsException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/IteratorException.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc: 100945 Implementation for 5972-Iterator 2000-01-17 frankc * /cvsroot/corelinux/corelinux/doc/reqs.html: 100945 Added link to 5972-Iterator Pattern 2000-01-15 frankc * /cvsroot/corelinux/corelinux/doc/cppstnd.html: 100932 added exception details * /cvsroot/corelinux/corelinux/doc/process.html: 100930 - Finer ownership policy 2000-01-11 frankc * /cvsroot/corelinux/corelinux/src/testdrivers/ex2/examp2.cpp: Release 0.4.1 * /cvsroot/corelinux/corelinux/README: 100846 Release 0.4.1 * /cvsroot/corelinux/corelinux/src/testdrivers/ex4/include/EightCylinderEngine.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/include/EngineBridge.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/include/Engine.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/include/SixCylinderEngine.hpp: 100531 3142-Bridge Pattern Test case * /cvsroot/corelinux/corelinux/src/testdrivers/ex4/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/EightCylinderEngine.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/EngineBridge.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/Engine.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/examp4.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/project.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex4/SixCylinderEngine.cpp: 100531 3142-Bridge test case * /cvsroot/corelinux/corelinux/src/testdrivers/makefile: 100531 Bridge Test Driver * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc: 100846 0.4.1 library change * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Bridge.cpp: 100531 Bridge Implementation * /cvsroot/corelinux/corelinux/index.html: Corrected Copyright * /cvsroot/corelinux/corelinux/index.html: Numerous Updates * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/AbstractString.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Bridge.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/CoreLinuxObject.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile: 100531 3142-Bridge implementation * /cvsroot/corelinux/corelinux/doc/cppstnd.html, /cvsroot/corelinux/corelinux/develop.html: 100846 updated for process and 0.4.1 * /cvsroot/corelinux/corelinux/master.dxx: 100846 update include CoreLinuxObject, Adapter, Bridge * /cvsroot/corelinux/corelinux/doc/cppstnd.html: Updated for HTML documentation comment requirement * /cvsroot/corelinux/corelinux/doc/process.html: 100796 Updated to include implementation 2000-01-10 frankc * /cvsroot/corelinux/corelinux/doc/process.html: 100795 Updated process for design details 2000-01-09 frankc * /cvsroot/corelinux/corelinux/src/testdrivers/ex3/Bar.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/examp3.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/FooBarClassAdapter.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/FooBarObjectAdapter.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/Foo.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/include/Bar.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/include/FooBarClassAdapter.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/include/FooBarObjectAdapter.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/include/Foo.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex3/project.inc: 100547 Test Case for Adapter pattern * /cvsroot/corelinux/corelinux/src/testdrivers/makefile: 100547 Added Adapter Test Case * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Adapter.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile: 100547 Adapter Implementation * /cvsroot/corelinux/corelinux/doc/reqs.html: Added catagorization to index * /cvsroot/corelinux/corelinux/doc/funcreq.html: 100788 SRS Cross Reference 2000-01-08 frankc * /cvsroot/corelinux/corelinux/doc/reqs.html: Added updates for Facade, Flyweight, and Proxy * /cvsroot/corelinux/corelinux/doc/reqs.html: 100546 Added update for Decorator Link * /cvsroot/corelinux/corelinux/doc/reqs.html: 100545 Added update to 3143-Composite Pattern 2000-01-07 frankc * /cvsroot/corelinux/corelinux/doc/reqs.html: Added update flags to Adapter and Bridge 2000-01-05 frankc * /cvsroot/corelinux/corelinux/index.html: Added updates sign to process and requirements * /cvsroot/corelinux/corelinux/doc/process.html: 100685 Updated for Analysis Process * /cvsroot/corelinux/corelinux/index.html: Added Counter 1999-12-29 frankc * /cvsroot/corelinux/corelinux/doc/reqs.html: 100594 for req 3145, 100595 for req 3146, and 100596 for req 3147 * /cvsroot/corelinux/corelinux/index.html: 100597 Changed Source Forge Logo 1999-12-24 frankc * /cvsroot/corelinux/corelinux/doc/reqs.html: 100545, 100546 added Composite and Decorator references 1999-12-23 frankc * /cvsroot/corelinux/corelinux/README: 100534 Release 0.4.0 * /cvsroot/corelinux/corelinux/doc/reqs.html: 100531 Added Requirement 3142 * /cvsroot/corelinux/corelinux/doc/process.html: 100532 Process changes * /cvsroot/corelinux/corelinux/clfaq.html: 100530 Documentation errors 1999-12-22 frankc * /cvsroot/corelinux/corelinux/develop.html, /cvsroot/corelinux/corelinux/index.html: Added Process and Date Changed Support * /cvsroot/corelinux/corelinux/doc/funcreq.html, /cvsroot/corelinux/corelinux/doc/process.html, /cvsroot/corelinux/corelinux/doc/reqs.html: Support for Process * /cvsroot/corelinux/corelinux/doc/cppstnd.html, /cvsroot/corelinux/corelinux/doc/oostnd.html: Added modification date 1999-12-12 frankc * /cvsroot/corelinux/corelinux/master.dxx, /cvsroot/corelinux/corelinux/README: Task 10356 * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc: 0.3.0 release * /cvsroot/corelinux/corelinux/index.html, /cvsroot/corelinux/corelinux/clfaq.html: Task 10356 * /cvsroot/corelinux/corelinux/clfaq.html, /cvsroot/corelinux/corelinux/index.html: Updated for FAQ Link 1999-12-09 frankc * /cvsroot/corelinux/corelinux/doc/oostnd.html: More types * /cvsroot/corelinux/corelinux/index.html: Added update to OOA-OOD document * /cvsroot/corelinux/corelinux/doc/oostnd.html: Fixed typos, added rationale. Sections 4-6 1999-12-05 frankc * /cvsroot/corelinux/corelinux/index.html: Final correction * /cvsroot/corelinux/corelinux/index.html: Fix e-mail address on page 1999-12-04 frankc * /cvsroot/corelinux/corelinux/README, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/AbstractString.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Exception.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/StringUtf8.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/include/Person.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex2/examp2.cpp: Release 0.2.0 * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Assertion.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Exception.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/include/Person.hpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/Person.cpp: Task 10240 - Changes to reflect C++ Standard changes 1999-12-03 frankc * /cvsroot/corelinux/corelinux/index.html, /cvsroot/corelinux/corelinux/doc/cppstnd.html: Changes from feedback 1999-12-02 frankc * /cvsroot/corelinux/corelinux/src/testdrivers/ex2/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex2/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/ex2/examp2.cpp, /cvsroot/corelinux/corelinux/src/testdrivers/ex2/project.inc: Initial upload * /cvsroot/corelinux/corelinux/src/testdrivers/makefile: Added ex2 to build 1999-12-01 frankc * /cvsroot/corelinux/corelinux/doc/cppstnd.html: Initial import * /cvsroot/corelinux/corelinux/doc/cppstnd.html: New file. * /cvsroot/corelinux/corelinux/doc/oostnd.html: Initial import * /cvsroot/corelinux/corelinux/doc/oostnd.html: New file. * /cvsroot/corelinux/corelinux/src/testdrivers/ex1/include/Person.hpp: Initial import * /cvsroot/corelinux/corelinux/src/testdrivers/ex1/include/Person.hpp: New file. * /cvsroot/corelinux/corelinux/src/testdrivers/ex1/Person.cpp: Initial import * /cvsroot/corelinux/corelinux/src/testdrivers/ex1/Person.cpp: New file. * /cvsroot/corelinux/corelinux/src/testdrivers/ex1/examp1.cpp: Initial import * /cvsroot/corelinux/corelinux/src/testdrivers/ex1/examp1.cpp: New file. * /cvsroot/corelinux/corelinux/src/testdrivers/ex1/cleanchk, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/project.inc: Initial import * /cvsroot/corelinux/corelinux/src/testdrivers/ex1/cleanchk, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/makefile, /cvsroot/corelinux/corelinux/src/testdrivers/ex1/project.inc: New file. * /cvsroot/corelinux/corelinux/src/testdrivers/ex1/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/makefile: Initial import * /cvsroot/corelinux/corelinux/src/testdrivers/ex1/dirs.inc, /cvsroot/corelinux/corelinux/src/testdrivers/makefile: New file. * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Exception.cpp: Initial import * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Exception.cpp: New file. * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Assertion.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/cleanchk, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile: Initial import * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Assertion.cpp, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/cleanchk, /cvsroot/corelinux/corelinux/src/classlibs/corelinux/makefile: New file. * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/dirs.inc: Initial import * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/dirs.inc: New file. * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc, /cvsroot/corelinux/corelinux/src/classlibs/makefile: Initial import * /cvsroot/corelinux/corelinux/src/classlibs/corelinux/project.inc, /cvsroot/corelinux/corelinux/src/classlibs/makefile: New file. * /cvsroot/corelinux/corelinux/mkbuiltins.mk: Initial import * /cvsroot/corelinux/corelinux/mkbuiltins.mk: New file. * /cvsroot/corelinux/corelinux/dirs.inc: Initial import * /cvsroot/corelinux/corelinux/dirs.inc: New file. * /cvsroot/corelinux/corelinux/makefile, /cvsroot/corelinux/corelinux/makefile.tm, /cvsroot/corelinux/corelinux/project.inc: Initial import * /cvsroot/corelinux/corelinux/makefile, /cvsroot/corelinux/corelinux/makefile.tm, /cvsroot/corelinux/corelinux/project.inc: New file. * /cvsroot/corelinux/corelinux/index.html: Initial import * /cvsroot/corelinux/corelinux/index.html: New file. * /cvsroot/corelinux/corelinux/develop.html: Initial import * /cvsroot/corelinux/corelinux/develop.html: New file. * /cvsroot/corelinux/corelinux/COPYING.LIB: Initial import * /cvsroot/corelinux/corelinux/COPYING.LIB: New file. * /cvsroot/corelinux/corelinux/COPYING.DOC: Initial import * /cvsroot/corelinux/corelinux/COPYING.DOC: New file. * /cvsroot/corelinux/corelinux/project.tm: Initial import * /cvsroot/corelinux/corelinux/project.tm: New file. * /cvsroot/corelinux/corelinux/dirs.tm: Initial import * /cvsroot/corelinux/corelinux/dirs.tm: New file. * /cvsroot/corelinux/corelinux/README: Initial import * /cvsroot/corelinux/corelinux/README: New file. libcorelinux-0.4.32/acconfig.h0000664000000000000000000000062007132436151013111 0ustar /* Define if the C++ compiler supports BOOL */ #undef HAVE_BOOL #undef VERSION #undef PACKAGE /* defines if having libgif (always 1) */ #undef HAVE_LIBGIF /* defines if having libjpeg (always 1) */ #undef HAVE_LIBJPEG /* defines which to take for ksize_t */ #undef ksize_t /* define if you have setenv */ #undef HAVE_FUNC_SETENV /* Define to 1 if NLS is requested. */ #undef ENABLE_NLS libcorelinux-0.4.32/stamp-h.in0000664000000000000000000000001207361346401013065 0ustar timestamp libcorelinux-0.4.32/AUTHORS0000664000000000000000000000015007100671013012226 0ustar Frank V. Castellucci Contributors: christophe Prud'homme libcorelinux-0.4.32/master.dxx0000664000000000000000000000650107116073261013214 0ustar //@Include: corelinux/Common.hpp //@Include: corelinux/Environment.hpp //@Include: corelinux/Memory.hpp //@Include: corelinux/Storage.hpp //@Include: corelinux/TransientStorage.hpp //@Include: corelinux/MemoryStorage.hpp //@Include: corelinux/CoreLinuxObject.hpp //@Include: corelinux/Identifier.hpp //@Include: corelinux/ScalarIdentifiers.hpp //@Include: corelinux/Exception.hpp //@Include: corelinux/SemaphoreException.hpp //@Include: corelinux/IteratorException.hpp //@Include: corelinux/InvalidIteratorException.hpp //@Include: corelinux/IteratorBoundsException.hpp //@Include: corelinux/CompositeException.hpp //@Include: corelinux/InvalidCompositeException.hpp //@Include: corelinux/AbstractFactoryException.hpp //@Include: corelinux/AllocatorAlreadyExistsException.hpp //@Include: corelinux/AllocatorNotFoundException.hpp //@Include: corelinux/AbstractFactoryException.hpp //@Include: corelinux/NullPointerException.hpp //@Include: corelinux/StorageException.hpp //@Include: corelinux/BoundsException.hpp //@Include: corelinux/Assertion.hpp //@Include: corelinux/AbstractString.hpp //@Include: corelinux/AbstractSemaphore.hpp //@Include: corelinux/Context.hpp //@Include: corelinux/Event.hpp //@Include: corelinux/Mediator.hpp //@Include: corelinux/Colleague.hpp //@Include: corelinux/Memento.hpp //@Include: corelinux/Subject.hpp //@Include: corelinux/Observer.hpp //@Include: corelinux/Visitor.hpp //@Include: corelinux/State.hpp //@Include: corelinux/Strategy.hpp //@Include: corelinux/AbstractCommand.hpp //@Include: corelinux/Command.hpp //@Include: corelinux/CommandFrame.hpp //@Include: corelinux/CommandFrameException.hpp //@Include: corelinux/StringUtf8.hpp //@Include: corelinux/ThreadException.hpp //@Include: corelinux/InvalidThreadException.hpp //@Include: corelinux/Thread.hpp //@Include: corelinux/ThreadContext.hpp //@Include: corelinux/Semaphore.hpp //@Include: corelinux/GuardSemaphore.hpp //@Include: corelinux/MutexSemaphore.hpp //@Include: corelinux/GatewaySemaphore.hpp //@Include: corelinux/Synchronized.hpp //@Include: corelinux/SemaphoreGroup.hpp //@Include: corelinux/SemaphoreCommon.hpp //@Include: corelinux/MutexSemaphoreGroup.hpp //@Include: corelinux/GatewaySemaphoreGroup.hpp //@Include: corelinux/CoreLinuxGuardPool.hpp //@Include: corelinux/CoreLinuxGuardGroup.hpp //@Include: corelinux/Adapter.hpp //@Include: corelinux/Bridge.hpp //@Include: corelinux/Decorator.hpp //@Include: corelinux/Facade.hpp //@Include: corelinux/Component.hpp //@Include: corelinux/TransparentComponent.hpp //@Include: corelinux/Flyweight.hpp //@Include: corelinux/Proxy.hpp //@Include: corelinux/Allocator.hpp //@Include: corelinux/AbstractAllocator.hpp //@Include: corelinux/AbstractFactory.hpp //@Include: corelinux/Builder.hpp //@Include: corelinux/Prototype.hpp //@Include: corelinux/Singleton.hpp //@Include: corelinux/Iterator.hpp //@Include: corelinux/Handler.hpp //@Include: corelinux/Request.hpp //@Include: corelinux/CoreLinuxIterator.hpp //@Include: corelinux/AssociativeIterator.hpp //@Include: corelinux/CoreLinuxAssociativeIterator.hpp //@Include: corelinux/List.hpp //@Include: corelinux/Map.hpp //@Include: corelinux/Pair.hpp //@Include: corelinux/Queue.hpp //@Include: corelinux/Set.hpp //@Include: corelinux/Stack.hpp //@Include: corelinux/Vector.hpp //@Include: corelinux/Types.hpp //@Include: corelinux/Limits.hpp //@Include: corelinux/AccessRights.hpp libcorelinux-0.4.32/corelinux.spec.in0000664000000000000000000001005607227704304014467 0ustar %define name libcorelinux %define version @CORELINUX_VERSION@ %define prefix %{_prefix} %define lib_name libcl++ %define release 1 Name: %{name} Summary: OOA and OOD for Linux Version: %{version} Release: 1 Epoch: 1 Source: http://dowload.sourceforge.net/corelinux/libcorelinux-%{version}.tar.gz URL: http://corelinux.sourceforge.net Group: System Environment/Libraries Packager: Christophe Prud'homme License: LGPL BuildRoot: /var/tmp/%{name}-buildroot %description OOA and OOD for Linux dynamic libraries. This package provides the shared libraries for corelinux so that you can run any corelinux based code on the machine. OOA: Object Oriented Analysis OOD: Object Oriented Design check http://corelinux.sourceforge.net %package dev Group: Development/Libraries Summary: Header files, static library and manual pages for libcorelinux Requires: libcorelinux = %{version} %description dev OOA and OOD for Linux development kit. This package provides the include files, the manpages and the static library for development with corelinux. OOA: Object Oriented Analysis OOD: Object Oriented Design check http://corelinux.sourceforge.net %package doc Group: Development/Libraries Summary: Reference manual for libcorelinux Requires: libcorelinux = %{version} %description doc OOA and OOD for Linux: reference manual. This package provides the full reference manual in HTML, PS and PDF format. HTML: /usr/doc/%{name}-doc-%{version}/html/index.html PS: /usr/doc/%{name}-doc-%{version}/corelinux-ref.ps.gz PDF: /usr/doc/%{name}-doc-%{version}/corelinux-ref.pdf.gz OOA: Object Oriented Analysis OOD: Object Oriented Design check http://corelinux.sourceforge.net %package examples Group: Development/Libraries Summary: Examples for libcorelinux Requires: libcorelinux = %{version} %description examples OOA and OOD for Linux: examples. This package provides examples for corelinux. OOA: Object Oriented Analysis OOD: Object Oriented Design check http://corelinux.sourceforge.net %prep %setup -q ./autorun.sh %build ./configure make -j 2 # create the reference manual (rm -rf doc/html doc/man && cd doc && doxygen corelinux.cfg) #(cd doc/latex && for i in *.eps; do epstopdf $i; done) #(mkdir doc/ps) #(mkdir doc/pdf) #(cd doc/latex && make pdf && mv refman.pdf ../pdf/corelinux-ref.pdf && mv refman.ps ../ps/corelinux-ref.ps) #(gzip doc/ps/corelinux-ref.ps) #(gzip doc/pdf/corelinux-ref.pdf) # the manual pages (mkdir -p $RPM_BUILD_ROOT%{prefix}/man/man3) (cp -r doc/man/* $RPM_BUILD_ROOT%{prefix}/man/man3) # the examples (mkdir -p examples) (find src/testdrivers -name "*.[ch]*[pp]*" | xargs -ifilename cp filename examples) (perl debian/genmake.pl examples) (for i in examples/*; do gzip $i; done) %install # install all the stuff (cd corelinux && make install prefix=$RPM_BUILD_ROOT%{prefix} includedir=$RPM_BUILD_ROOT%{prefix}/include/corelinux) (cd src/classlibs && make install prefix=$RPM_BUILD_ROOT%{prefix} includedir=$RPM_BUILD_ROOT%{prefix}/include/corelinux) (/bin/sh admin/mkinstalldirs $RPM_BUILD_ROOT%{prefix}/man/man3 ) (cd doc/man/man3 && cp *.3 $RPM_BUILD_ROOT%{prefix}/man/man3/) %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %clean # remove BuildRoot rm -rf $RPM_BUILD_ROOT # we are in /usr/src/redhat/BUID/%{name}-%{version} and we want to delete it cd .. && rm -rf %{name}-%{version} %files %defattr(-,root,root) %doc AUTHORS COPYING COPYING.LIB README NEWS ChangeLog README.emacs debian/README.Redhat %attr(755,root,root) %{_libdir}/%{lib_name}.so* %files dev %defattr(-,root,root) %{_includedir}/corelinux/* %{_libdir}/%{lib_name}.a %{_libdir}/%{lib_name}.la %{_mandir}/man3/*.3.gz %doc debian/README.Redhat %files doc %defattr(-,root,root) #%doc doc/html doc/ps doc/pdf %doc doc/html %doc debian/README.Redhat %files examples %defattr(-,root,root) %doc examples debian/README.examples debian/README.Redhat %changelog * Fri Jan 12 2001 Christophe Prud'homme @CORELINUX_VERSION@-1 - removed ps and pdf generation for the reference manual * Thu Jul 27 2000 Christophe Prud'homme - initial libcorelinux-0.4.32/configure.in0000664000000000000000000000767407266172421013525 0ustar AC_INIT(Makefile.am) AC_PREREQ(2.12) AC_REVISION($Id: configure.in,v 1.30 2001/04/15 01:10:41 frankc Exp $)dnl dnl ---------------------------------------------------------------------- dnl PACKAGE+VERSION dnl stole in gtk configure.in dnl ---------------------------------------------------------------------- CORELINUX_MAJOR_VERSION=0 CORELINUX_MINOR_VERSION=4 CORELINUX_MICRO_VERSION=32 dnl CORELINUX_VERSION=$CORELINUX_MAJOR_VERSION.$CORELINUX_MINOR_VERSION.$CORELINUX_MICRO_VERSION AC_SUBST(CORELINUX_MAJOR_VERSION) AC_SUBST(CORELINUX_MINOR_VERSION) AC_SUBST(CORELINUX_MICRO_VERSION) AC_SUBST(CORELINUX_VERSION) dnl libtool versioning # # +1 : ? : +1 == new interface that does not break old one # +1 : ? : 0 == new interface that breaks old one # ? : ? : 0 == no new interfaces, but breaks apps # ? :+1 : ? == just some internal changes, nothing breaks but might work # better # CURRENT: REVISION : AGE LIBCORELINUX_SO_VERSION=2:0:1 AC_SUBST(LIBCORELINUX_SO_VERSION) LIBEXMPLSUPP_SO_VERSION=1:0:0 AC_SUBST(LIBEXMPLSUPP_SO_VERSION) dnl LT_RELEASE=$CORELINUX_MAJOR_VERSION.$CORELINUX_MINOR_VERSION dnl LT_CURRENT=$CORELINUX_MICRO_VERSION dnl LT_REVISION=$CORELINUX_MINOR_VERSION dnl LT_AGE=0 dnl AC_SUBST(LT_RELEASE) dnl AC_SUBST(LT_CURRENT) dnl AC_SUBST(LT_REVISION) dnl AC_SUBST(LT_AGE) dnl PACKAGE=libcorelinux VERSION=$CORELINUX_VERSION dnl Where are the files for the configure script AC_CONFIG_AUX_DIR(admin) # init automake AM_INIT_AUTOMAKE(${PACKAGE},${VERSION}) AM_CONFIG_HEADER(config.h) dnl Checks for programs. AC_PROG_CXX CORELINUX_CHECK_COMPILERS AC_PROG_LN_S AC_PROG_RANLIB AC_PROG_MAKE_SET # check for install AC_PROG_INSTALL # Turn off shared libraries during beta-testing, since they # make the build process take too long. #AC_DISABLE_SHARED AC_LIBTOOL_DLOPEN AM_PROG_LIBTOOL dnl Checks for libraries. dnl Checks for header files. AC_HEADER_STDC dnl Checks for typedefs, structures, and compiler characteristics. CPPFLAGS="${CPPFLAGS} -I\$(top_srcdir)/corelinux/ -I\$(top_srcdir)/ -I\$(top_srcdir)/src/testdrivers/include -I\$(srcdir)/include " dnl Checks for library functions. AC_OUTPUT(Makefile \ corelinux.spec \ admin/Makefile \ debian/Makefile \ doc/Makefile \ doc/corelinux.cfg \ corelinux/Makefile \ src/Makefile \ src/classlibs/Makefile \ src/classlibs/corelinux/Makefile \ src/utils/Makefile \ src/utils/csamon/Makefile \ src/testdrivers/Makefile \ src/testdrivers/include/Makefile \ src/testdrivers/exmplsupport/Makefile \ src/testdrivers/ex1/Makefile \ src/testdrivers/ex1/include/Makefile \ src/testdrivers/ex2/Makefile \ src/testdrivers/ex3/Makefile \ src/testdrivers/ex3/include/Makefile \ src/testdrivers/ex4/Makefile \ src/testdrivers/ex4/include/Makefile \ src/testdrivers/ex5/Makefile \ src/testdrivers/ex6/Makefile \ src/testdrivers/ex6/include/Makefile \ src/testdrivers/ex7/Makefile \ src/testdrivers/ex7/include/Makefile \ src/testdrivers/ex8/Makefile \ src/testdrivers/ex8/include/Makefile \ src/testdrivers/ex9/Makefile \ src/testdrivers/ex10/Makefile \ src/testdrivers/ex11/Makefile \ src/testdrivers/ex11/include/Makefile \ src/testdrivers/ex12/Makefile \ src/testdrivers/ex12/include/Makefile \ src/testdrivers/ex13/Makefile \ src/testdrivers/ex14/Makefile \ src/testdrivers/ex15/Makefile \ src/testdrivers/ex15/include/Makefile \ src/testdrivers/ex16/Makefile \ src/testdrivers/ex17/Makefile \ src/testdrivers/ex17/include/Makefile \ src/testdrivers/ex18/Makefile \ src/testdrivers/ex18/include/Makefile \ src/testdrivers/ex19/Makefile \ src/testdrivers/ex19/include/Makefile src/testdrivers/ex20/Makefile \ src/testdrivers/ex20/include/Makefile \ src/testdrivers/ex21/Makefile \ src/testdrivers/ex21/include/Makefile \ src/testdrivers/ex22/Makefile \ src/testdrivers/ex22/include/Makefile , [ chmod +x debian/rules ] ) libcorelinux-0.4.32/Makefile.am0000664000000000000000000000145707141116261013231 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 16-Mar-00 at 21:47:56 # LAST-MOD: 30-Jul-00 at 17:22:26 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc EXTRA_DIST = autorun.sh master.dxx README.emacs SUBDIRS = admin debian corelinux src doc corelinux.spec: corelinux.spec.in rpm: corelinux.spec make dist cp libcorelinux-@CORELINUX_VERSION@.tar.gz /usr/src/redhat/SOURCES rpm -bb corelinux.spec # now the rpm are in /usr/src/redhat/RPMS// # some cleanup rm /usr/src/redhat/SOURCES/libcorelinux-@CORELINUX_VERSION@.tar.gz deb: debian/rules build debian/rules binarylibcorelinux-0.4.32/Makefile.in0000664000000000000000000004361207743170743013256 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 16-Mar-00 at 21:47:56 # LAST-MOD: 30-Jul-00 at 17:22:26 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = . am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc EXTRA_DIST = autorun.sh master.dxx README.emacs SUBDIRS = admin debian corelinux src doc subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = corelinux.spec DIST_SOURCES = RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \ ps-recursive install-info-recursive uninstall-info-recursive \ all-recursive install-data-recursive install-exec-recursive \ installdirs-recursive install-recursive uninstall-recursive \ check-recursive installcheck-recursive DIST_COMMON = README $(srcdir)/Makefile.in $(srcdir)/configure AUTHORS \ COPYING COPYING.LIB ChangeLog INSTALL Makefile.am NEWS \ acconfig.h aclocal.m4 config.h.in configure configure.in \ corelinux.spec.in DIST_SUBDIRS = $(SUBDIRS) all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe) $(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) cd $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): configure.in cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) config.h: stamp-h1 @if test ! -f $@; then \ rm -f stamp-h1; \ $(MAKE) stamp-h1; \ else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) $(top_srcdir)/acconfig.h cd $(top_srcdir) && $(AUTOHEADER) touch $(srcdir)/config.h.in distclean-hdr: -rm -f config.h stamp-h1 corelinux.spec: $(top_builddir)/config.status corelinux.spec.in cd $(top_builddir) && $(SHELL) ./config.status $@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if (etags --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ else \ include_option=--include; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -f $$subdir/TAGS && \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = . distdir = $(PACKAGE)-$(VERSION) am__remove_distdir = \ { test ! -d $(distdir) \ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr $(distdir); }; } GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print distdir: $(DISTFILES) $(am__remove_distdir) mkdir $(distdir) $(mkinstalldirs) $(distdir)/. $(distdir)/doc @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ || exit 1; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" \ distdir=../$(distdir)/$$subdir \ distdir) \ || exit 1; \ fi; \ done -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist dist-all: distdir $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist $(am__remove_distdir) GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf - chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && cd $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && $(mkinstalldirs) "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist-gzip \ && rm -f $(distdir).tar.gz \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck $(am__remove_distdir) @echo "$(distdir).tar.gz is ready for distribution" | \ sed 'h;s/./=/g;p;x;p;x' distuninstallcheck: @cd $(distuninstallcheck_dir) \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile config.h installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr distclean-libtool \ distclean-tags dvi: dvi-recursive dvi-am: info: info-recursive info-am: install-data-am: install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \ clean-generic clean-libtool clean-recursive ctags \ ctags-recursive dist dist-all dist-gzip distcheck distclean \ distclean-generic distclean-hdr distclean-libtool \ distclean-recursive distclean-tags distcleancheck distdir \ distuninstallcheck dvi dvi-am dvi-recursive info info-am \ info-recursive install install-am install-data install-data-am \ install-data-recursive install-exec install-exec-am \ install-exec-recursive install-info install-info-am \ install-info-recursive install-man install-recursive \ install-strip installcheck installcheck-am installdirs \ installdirs-am installdirs-recursive maintainer-clean \ maintainer-clean-generic maintainer-clean-recursive mostlyclean \ mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \ pdf pdf-am pdf-recursive ps ps-am ps-recursive tags \ tags-recursive uninstall uninstall-am uninstall-info-am \ uninstall-info-recursive uninstall-recursive corelinux.spec: corelinux.spec.in rpm: corelinux.spec make dist cp libcorelinux-@CORELINUX_VERSION@.tar.gz /usr/src/redhat/SOURCES rpm -bb corelinux.spec # now the rpm are in /usr/src/redhat/RPMS// # some cleanup rm /usr/src/redhat/SOURCES/libcorelinux-@CORELINUX_VERSION@.tar.gz deb: debian/rules build debian/rules binary # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/0000775000000000000000000000000007743170744011773 5ustar libcorelinux-0.4.32/src/testdrivers/0000775000000000000000000000000007743170745014352 5ustar libcorelinux-0.4.32/src/testdrivers/ex9/0000775000000000000000000000000007743170761015055 5ustar libcorelinux-0.4.32/src/testdrivers/ex9/examp9.cpp0000664000000000000000000002375007153560234016764 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** \example examp9.cpp This example is to show use of the AbstractFactory and Singleton patterns. What we are working with is right out of the GoF book, the maze factory example with a couple of twists: A. We are not creating the Maze game, just a AbstractFactory. B. The behavior of the MapSite objects are not fully defined. I forced some assertion semantics on some things, but I left it mostly alone. C. Sometimes something happens when you enter it, others are undefined. And a couple of notes where the libcorelinux differs from the pattern example in the book: 1. We have included a Singleton type template in the library. It's success depends on the adherence to protocol that you won't instantiate the object the singleton guards. The constructor for the Singleton will guard against multiple instantiations of the same type (Singleton aFoo; Singleton bFoo; the bFoo will assert). 2. The CoreLinux++ implementation of AbstractFactory relies on a collection [0..n] of AbstractAllocators. This was to preserve the abstraction of the factory down to the problem domain; in this case the Maze example. 3. We defered the binding of Key and collection in AbstractFactory so that the developer will have the ultimate flexibility in their designs. 4. In libcorelinux++ we define a macro CORELINUX_DEFAULT_ALLOCATOR which is used when you just want the ::new and ::delete memory management. This increases ease of use, and with the addition of instrumentation in both the Allocator base and AbstractFactory, it is easy to monitor which allocations are called more frequently. Of course, any suggestions to make it better are welcome. Anyway: We use the corelinux::Identifier as a base for NameIdentifier, we will use this to bind allocators instead of some numbering scheme. They are also self describing in the example. We will use the CORELINUX_DEFAULT_ALLOCATOR, @see MazeFactory.cpp The adventerous are welcome to submit more complex Memory Management scenarios. */ #include #include #include #include #include using namespace corelinux; #include #include CORELINUX_VECTOR( DoorPtr , DoorVector ); CORELINUX_VECTOR( WallPtr , WallVector ); CORELINUX_MAP( RoomNumber, RoomPtr, less , RoomMap ); // // In module function prototypes // int main( void ); void doWork( MazeFactoryPtr aFactory ); // // Functions that work with Engine types // void handleAssertion( AssertionCref ); void handleException( ExceptionCref ); int main( void ) { // // Practice gracefull exception management // cout << endl; try { Singleton aFactory; doWork( aFactory.instance() ); } catch( AssertionRef aAssert ) { handleAssertion(aAssert); } catch( ExceptionRef aException ) { handleException(aException); } catch( std::exception & e ) { cerr << e.what() << endl; } catch( ... ) { cerr << "Unknown exception." << endl; } return 0; } void displayMenu( void ) { cout << endl; cout << "\tCreate a Room 1" << endl; cout << "\tCreate a Wall 2" << endl; cout << "\tCreate a Room 3" << endl; cout << "\tQuit the example 4" << endl; cout << endl; } Int getCommand( void ) { displayMenu(); Int aOption; cout << "Enter the option number on the right to execute : "; cin >> aOption; return aOption; } void doWork( MazeFactoryPtr aFactory ) { bool keepWorking(true); DoorVector doors; WallVector walls; RoomMap rooms; do { Int aCommand( getCommand() ); if( aCommand > 4 || aCommand < 0 ) { cerr << "You can't enter non-numeric options!" << endl; aCommand = 4; } else { ; // do nothing } switch( aCommand ) { // // Create a new room and insure that the same // doesn't already exist // case 1: { RoomNumber aNumber(0); cout << endl; cout << "Enter a RoomNumber for the new room : "; cin >> aNumber; if( rooms.find(aNumber) == rooms.end() ) { RoomPtr aRoom( aFactory->createRoom(aNumber) ); rooms[aNumber] = aRoom ; } else { cerr << "Room " << aNumber << " already exists!" << endl; } break; } // // Create a Wall. This is a yawner, but the Room interface allows // setting up its four sides with walls or doors. // case 2: { walls.push_back( aFactory->createWall() ); cout << endl; cout << "You now have " << walls.size() << " wall" << ( walls.size() > 1 ? "s." : "." ) << endl; cout << endl; break; } // // Create a door, we need two (2) valid rooms that the door // connects // case 3: { RoomNumber aFirstNumber(0); RoomNumber aSecondNumber(0); cout << endl; cout << "Enter the first room the door connects : "; cin >> aFirstNumber; cout << endl; cout << "Enter the second room the door connects : "; cin >> aSecondNumber; if( rooms.find(aFirstNumber) == rooms.end() || rooms.find(aSecondNumber) == rooms.end() ) { cerr << "You need to enter valid room numbers." << endl; } else { doors.push_back ( aFactory->createDoor ( (*rooms.find(aFirstNumber)).second, (*rooms.find(aSecondNumber)).second ) ); cout << "You now have " << doors.size() << " door" << ( doors.size() > 1 ? "s." : "." ) << endl; } break; } // // Add a parent to an object // case 4: keepWorking=false; break; default: ; //do nothing break; } } while( keepWorking == true ); // // Now we can display info and clean up // cout << endl; cout << "Pre-cleanup Factory Statistics" << endl; cout << "==============================" << endl; cout << "Total Creates : " << aFactory->getTotalAllocates() << endl; cout << "Total Destroys : " << aFactory->getTotalDeallocates() << endl; cout << "Room Creates : " << rooms.size() << endl; cout << "Wall Creates : " << walls.size() << endl; cout << "Door Creates : " << doors.size() << endl; cout << endl; // // Clean out doors // DoorVectorIterator dItr( doors.begin() ); while( dItr != doors.end() ) { aFactory->destroyDoor( (*dItr ) ); ++dItr; } doors.clear(); // // Clean out walls // WallVectorIterator wItr( walls.begin() ); while( wItr != walls.end() ) { aFactory->destroyWall( (*wItr) ); ++wItr; } walls.clear(); // // Clean out rooms // RoomMapIterator rItr( rooms.begin() ); while( rItr != rooms.end() ) { aFactory->destroyRoom( (*rItr).second ); ++rItr; } rooms.clear(); // // Final statistics // cout << endl; cout << "Post-cleanup Factory Statistics" << endl; cout << "-------------------------------" << endl; cout << "Total Creates : " << aFactory->getTotalAllocates() << endl; cout << "Total Destroys : " << aFactory->getTotalDeallocates() << endl; cout << endl; } // // Peform default (just show it) // void handleAssertion( AssertionCref aAssert ) { cerr << aAssert.getFile() << ":" << aAssert.getLine() << ":" << "Assertion: "; if( aAssert.getType() == Assertion::NEVERGETHERE ) { cerr << "NEVER_GET_HERE"; } else { if( aAssert.getType() == Assertion::REQUIRE ) { cerr << "REQUIRE"; } else if( aAssert.getType() == Assertion::ENSURE ) { cerr << "ENSURE"; } else if( aAssert.getType() == Assertion::CHECK ) { cerr << "CHECK"; } else { cerr << "ASSERT"; } cerr << "( " << aAssert.getWhy() << " )"; } cerr << endl; } void handleException( ExceptionCref aExcp ) { cerr << aExcp.getFile() << ":" << aExcp.getLine() << ":" << "Exception: " << aExcp.getWhy() << endl; } /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.4 $ $Date: 2000/08/31 22:47:56 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex9/Makefile.am0000664000000000000000000000105407137764266017117 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 08:34:22 # LAST-MOD: 23-Apr-00 at 16:14:56 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc bin_PROGRAMS = ex9 ex9_SOURCES = examp9.cpp ex9_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la ${top_builddir}/src/testdrivers/exmplsupport/libexmplsupport.la libcorelinux-0.4.32/src/testdrivers/ex9/Makefile.in0000664000000000000000000003405307743170761017127 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 08:34:22 # LAST-MOD: 23-Apr-00 at 16:14:56 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc bin_PROGRAMS = ex9 ex9_SOURCES = examp9.cpp ex9_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la ${top_builddir}/src/testdrivers/exmplsupport/libexmplsupport.la subdir = src/testdrivers/ex9 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = bin_PROGRAMS = ex9$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) am_ex9_OBJECTS = examp9.$(OBJEXT) ex9_OBJECTS = $(am_ex9_OBJECTS) ex9_DEPENDENCIES = ${top_builddir}/src/classlibs/corelinux/libcl++.la \ ${top_builddir}/src/testdrivers/exmplsupport/libexmplsupport.la ex9_LDFLAGS = DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/admin/depcomp am__depfiles_maybe = depfiles @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/examp9.Po CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ DIST_SOURCES = $(ex9_SOURCES) DIST_COMMON = $(srcdir)/Makefile.in Makefile.am SOURCES = $(ex9_SOURCES) all: all-am .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc .lo .obj $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex9/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(bindir) @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f $(DESTDIR)$(bindir)/$$f"; \ rm -f $(DESTDIR)$(bindir)/$$f; \ done clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done ex9$(EXEEXT): $(ex9_OBJECTS) $(ex9_DEPENDENCIES) @rm -f ex9$(EXEEXT) $(CXXLINK) $(ex9_LDFLAGS) $(ex9_OBJECTS) $(ex9_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) core *.core distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/examp9.Po@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: $(mkinstalldirs) $(DESTDIR)$(bindir) install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-exec-am: install-binPROGRAMS install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libtool ctags distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-exec install-exec-am \ install-info install-info-am install-man install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/include/0000775000000000000000000000000007743170762015774 5ustar libcorelinux-0.4.32/src/testdrivers/include/WallFactory.hpp0000664000000000000000000000554007077737467020753 0ustar #if !defined(__WALLFACTORY_HPP) #define __WALLFACTORY_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__ABSTRACTALLOCATOR_HPP) #include #endif #if !defined(__WALLFLYWEIGHT_HPP) #include #endif DECLARE_CLASS( WallFactory ); /** The WallFactory is provided to manage the WallFlyweight and the sharing of same. */ class WallFactory : public CORELINUX(AbstractAllocator) { public: // // Constructors and destructor // /// Default constructor WallFactory( void ); /// Copy constructor WallFactory( WallFactoryCref ); /// Virtual Destructor virtual ~WallFactory( void ); // // Operator overloads // /// Assignment operator WallFactoryRef operator=( WallFactoryCref ); /// Equality operator bool operator==( WallFactoryCref ) const; // // We let the public factory methods in AbstractAllocator // go to town so there is no more public interface required // here // protected: // // Factory implementations required from AbstractAllocator // /** allocates a object @param WallFlyweight pointer */ virtual WallFlyweightPtr allocateObject( void ) ; /** de-allocates a object @param WallFlyweight pointer */ virtual void deallocateObject( WallFlyweightPtr ) ; private: // // Because a wall can be shared, we only need one // true instance. Therefore, we create a static that // is used for all allocates // /// The solitary wall used in the universe static WallFlyweight theFlyweight; }; #endif /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/04/21 02:38:47 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/include/MazeFactory.hpp0000664000000000000000000001542507153560234020730 0ustar #if !defined(__MAZEFACTORY_HPP) #define __MAZEFACTORY_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__ABSTRACTFACTORY_HPP) #include #endif #if !defined(__ALLOCATOR_HPP) #include #endif #if !defined(__MAP_HPP) #include #endif #if !defined(__NAMEIDENTIFIER_HPP) #include #endif #if !defined(__DOOR_HPP) #include #endif #if !defined(__ROOM_HPP) #include #endif #if !defined(__WALL_HPP) #include #endif // // We use a map for storing our allocators. We could have fire-walled this // as well. // CORELINUX_MAP( NameIdentifier, CORELINUX(AllocatorPtr), less, NamedAllocators ); /** Maze Factory creates Rooms, Doors, and Walls. It is a AbstractFactory that uses a NameIdentifier as a key association to the respective Allocators (DoorAllocator, etc.). We use protected inheritence for the AbstractFactory because we are not interested letting the application have to do the work, they just need to create things! */ DECLARE_CLASS( MazeFactory ); class MazeFactory : protected CORELINUX(AbstractFactory) { public: // // Constructors and destructor // /// Default constructor MazeFactory( void ); /// Copy constructor MazeFactory( MazeFactoryCref ); /// Virtual Destructor virtual ~MazeFactory( void ); // // Operator overloads // /// Assignment operator MazeFactoryRef operator=( MazeFactoryCref ) throw(CORELINUX(Exception)); /// Equality operator bool operator==( MazeFactoryCref ) const; // // Accessors // /// Return number of allocators registered CORELINUX(Count) getAllocatorCount( void ) const; /// Return some instrumentation for this Factory CORELINUX(Count) getTotalAllocates( void ) const; /// Return some instrumentation for this Factory CORELINUX(Count) getTotalDeallocates( void ) const; // // Factory methods // /// Create a Room and give it a number virtual RoomPtr createRoom( RoomNumberCref ) const throw(CORELINUX(AllocatorNotFoundException)); /// Create a Wall virtual WallPtr createWall( void ) const throw(CORELINUX(AllocatorNotFoundException)); /// Create a door joining two rooms virtual DoorPtr createDoor( RoomPtr, RoomPtr ) const throw(CORELINUX(AllocatorNotFoundException)); /// Destroy a Room virtual void destroyRoom( RoomPtr ) const throw(CORELINUX(AllocatorNotFoundException)); /// Destroy a Wall virtual void destroyWall( WallPtr ) const throw(CORELINUX(AllocatorNotFoundException)); /// Destroy a Door virtual void destroyDoor( DoorPtr ) const throw(CORELINUX(AllocatorNotFoundException)); protected: // // Accessors overriden from AbstractFactory // /// Get the total MapSite objects created virtual CORELINUX(Count) getCreateCount( void ) const; /// Get the total MapSite objects destroyed virtual CORELINUX(Count) getDestroyCount( void ) const; /// Get the allocator identifier by NameIdentifier virtual CORELINUX(AllocatorPtr) getAllocator( NameIdentifier ) const throw(CORELINUX(AllocatorNotFoundException)); // // Mutators overriden from AbstractFactory // /// Add a allocator to the factory virtual void addAllocator( NameIdentifier, CORELINUX(AllocatorPtr) ) throw(CORELINUX(AllocatorAlreadyExistsException)); /// Remove the allocator from the factory and return to the /// caller virtual CORELINUX(AllocatorPtr) removeAllocator( NameIdentifier ) throw(CORELINUX(AllocatorNotFoundException)); // // Overides Iterator factory methods from AbstractFactory // /** Interface for creating an Iterator to iterate through the Allocators of an implementation. @return Iterator pointer of type Allocator pointer */ virtual CORELINUX(Iterator)* createIterator( void ) const; /** Interface for returning a created Iterator. @return Iterator pointer of type Allocator pointer */ virtual void destroyIterator( CORELINUX(Iterator)* ) const; /** Interface for creating an AssociativeIterator to iterate through the Identifiers and Allocators of an implementation. @return AssociativeIterator pointer of type */ virtual corelinux::AssociativeIterator* createAssociativeIterator( void ) const; /** Interface for returning a created AssociativeIterator. @return Iterator pointer of type */ virtual void destroyAssociativeIterator ( corelinux::AssociativeIterator* ) const; protected: /// Routine to flush contents from map void flushAllocators( void ); private: NamedAllocators theAllocators; }; #endif // if !defined(__MAZEFACTORY_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.2 $ $Date: 2000/08/31 22:47:56 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/include/NameIdentifier.hpp0000664000000000000000000000763107077737467021412 0ustar #if !defined(__NAMEIDENTIFIER_HPP) #define __NAMEIDENTIFIER_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__IDENTIFIER_HPP) #include #endif #include DECLARE_TYPE( std::string, Name ); /** NameIdentifier is a string identifier. */ DECLARE_CLASS( NameIdentifier ); class NameIdentifier : public CORELINUX(Identifier) { public: // // Constructors and destructors // /// Instance constructor NameIdentifier( NameCref ); /// Copy constructor NameIdentifier( NameIdentifierCref ) ; /// Virtual destructor virtual ~NameIdentifier( void ); // // Operator overloads // /// Assignment operator NameIdentifierRef operator=( NameIdentifierCref ); /// Equality operator bool operator==( NameIdentifierCref ); // // Accessors // /// Retrieve the name for this identifier NameCref getName( void ) const; protected: // // Constructors // /// Must have identity NameIdentifier( void ) throw(CORELINUX(Assertion)); // // Identifier overloads // /** Equality method @param Identifier const reference @return true if equal, false otherwise */ virtual bool isEqual( CORELINUX(IdentifierCref) ) const ; /** Less than method @param Identifier const reference @return true if less than, false otherwise */ virtual bool isLessThan( CORELINUX(IdentifierCref) ) const ; /** Less than or equal method. @param Identifier const reference @return true if less than or equal, false otherwise */ virtual bool isLessThanOrEqual ( CORELINUX(IdentifierCref) ) const ; /** Greater than method. @param Identifier const reference @return true if greater than, false otherwise */ virtual bool isGreaterThan( CORELINUX(IdentifierCref) ) const ; /** Greater than or equal method. @param Identifier const reference @return true if greater than or equal, false otherwise */ virtual bool isGreaterThanOrEqual ( CORELINUX(IdentifierCref) ) const ; private: Name theName; /// Instance name }; #endif // if !defined(__NAMEIDENTIFIER_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/04/21 02:38:47 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/include/WallFlyweight.hpp0000664000000000000000000000447007077737467021307 0ustar #if !defined(__WALLFLYWEIGHT_HPP) #define __WALLFLYWEIGHT_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__FLYWEIGHT_HPP) #include #endif #if !defined(__MAPSITE_HPP) #include #endif DECLARE_CLASS( WallFlyweight ); /** The WallFlyweight is utilized for scale. Because the high probability that rooms will have more walls than doors we can represent all walls with a single flyweight. */ class WallFlyweight : public MapSite, public CORELINUX( Flyweight ) { public: // // Constructors and destructor // /// Default constructor WallFlyweight( void ); /// Copy constructor WallFlyweight( WallFlyweightCref ); /// Virtual Destructor virtual ~WallFlyweight( void ); // // Operator overloads // /// Assignment operator WallFlyweightRef operator=( WallFlyweightCref ); /// Equality operator bool operator==( WallFlyweightCref ) const; // // Operations declared in our type that we // are a flyweight representation // /// Operation defined in MapSite virtual void enter( void ); }; #endif // if !defined(__WALLFLYWEIGHT_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/04/21 02:38:47 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/include/MapSite.hpp0000664000000000000000000000515007077737467020063 0ustar #if !defined(__MAPSITE_HPP) #define __MAPSITE_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif // // Domain : These are the positions of various // objects in the maze // enum Direction { NORTH = 0, SOUTH, EAST, WEST }; DECLARE_CLASS( MapSite ); /** MapSite is a common abstraction for all components of a maze. */ class MapSite { public: // // Constructors and destructor // /// Default constructor MapSite( void ) { ; // do nothing } /// Copy constructor MapSite( MapSiteCref ) { ; // do nothing } /// Virtual destructor virtual ~MapSite( void ) { ; // do nothing } // // Operator overloads // /// Assignment operator MapSiteRef operator=( MapSiteCref ) { return (*this); } /// Equality operator returns true /// if instances are the same bool operator==( MapSiteCref aRef ) const { return ( this == &aRef ); } // // Pure virtual // /** The one operation "enter", the meaning depends on the derivation, or what it is you are entering */ virtual void enter( void ) = 0; }; #endif // if !defined(__MAPSITE_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/04/21 02:38:47 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/include/Door.hpp0000664000000000000000000000656307077737467017435 0ustar #if !defined( __DOOR_HPP) #define __DOOR_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__MAPSITE_HPP) #include #endif enum DoorState { DOOROPEN=0, DOORCLOSED }; DECLARE_CLASS( Room ); DECLARE_CLASS( Door ); /** Doors join two rooms */ class Door : public MapSite { public: // // Constructor and destructor // /** Default constructor can take one or two rooms @param Room pointer Room 1 @param Room pointer Room 2 */ Door( RoomPtr = NULLPTR, RoomPtr = NULLPTR ); /// Copy constructor Door( DoorCref ); /// Virtual Destructor virtual ~Door( void ); // // Operator overloads // /// Assignment operator DoorRef operator=( DoorCref ) throw(CORELINUX(Assertion)); /// Equality operator bool operator==( DoorCref aRef ) const; // // Accessors // /// Is door open - true is yes bool isOpen( void ) const; /// Is door closed - true is yes bool isClosed( void ) const; /// Get the first room RoomPtr getFirstRoom( void ) const; /// Get the second room RoomPtr getSecondRoom( void ) const; /// Get the opposite room from the argument RoomPtr otherSideFrom( RoomPtr ) const throw(CORELINUX(Assertion)); // // Mutator // /// Opens door if closed void setOpen( void ); /// Closes door if open void setClosed( void ); /// Magical Room Change void setFirstRoom( RoomPtr ) throw(CORELINUX(Assertion)); /// Magical Room Change void setSecondRoom( RoomPtr ) throw(CORELINUX(Assertion)); // // Pure virtual // /** The one operation "enter", the meaning depends on the derivation, or what it is you are entering */ virtual void enter( void ); private: RoomPtr theFirstRoom; RoomPtr theSecondRoom; DoorState theDoorState; }; #endif // if !defined(__DOOR_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/04/21 02:38:47 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/include/Wall.hpp0000664000000000000000000000502407140163451017371 0ustar #if !defined(__WALL_HPP) #define __WALL_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__MAPSITE_HPP) #include #endif #include using namespace std; DECLARE_CLASS( Wall ); /** Walls may be on some side of a room */ class Wall : public MapSite { public: // // Constructor and destructor // /// Default constructor Wall( void ) { ; // do nothing } /// Copy constructor Wall( WallCref ) { ; // do nothing } /// Virtual destructor virtual ~Wall( void ) { ; // do nothing } // // Operator overloads // /// Assignment operator WallRef operator=( WallCref ) { return (*this); } /// Equality operator bool operator==( WallCref aRef ) { return (this == &aRef); } // // Pure virtual // /** The one operation "enter", the meaning depends on the derivation, or what it is you are entering */ virtual void enter( void ) { cout << "BAAAAAM! You just hit a wall" << endl; } }; #endif // if !defined(__WALL_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/07/28 01:51:37 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/include/Makefile.am0000664000000000000000000000113607100671014020010 0ustar # -*- Mode: makefile -*- # SUMMARY : # USAGE : make # AUTHOR : Christophe Prud'homme # ORG : Christophe Prud'homme # E-MAIL : # ORIG-DATE : 26-Apr-89 # LAST-MOD : 12-Apr-00 at 15:49:03 by Christophe Prud'homme # DESCRIPTION : # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc include_HEADERS = MazeFactory.hpp Room.hpp NameIdentifier.hpp WallFlyweight.hpp WallFactory.hpp Door.hpp MapSite.hpp Wall.hpp # Common rcs information do not modify # $Author: prudhomm $ # $Revision: 1.1 $ # $Date: 2000/04/23 21:58:36 $ # $Locker: $ libcorelinux-0.4.32/src/testdrivers/include/Makefile.in0000664000000000000000000002466407743170762020055 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY : # USAGE : make # AUTHOR : Christophe Prud'homme # ORG : Christophe Prud'homme # E-MAIL : # ORIG-DATE : 26-Apr-89 # LAST-MOD : 12-Apr-00 at 15:49:03 by Christophe Prud'homme # DESCRIPTION : # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc include_HEADERS = MazeFactory.hpp Room.hpp NameIdentifier.hpp WallFlyweight.hpp WallFactory.hpp Door.hpp MapSite.hpp Wall.hpp subdir = src/testdrivers/include ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = DIST_SOURCES = HEADERS = $(include_HEADERS) DIST_COMMON = $(include_HEADERS) $(srcdir)/Makefile.in Makefile.am all: all-am .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/include/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: includeHEADERS_INSTALL = $(INSTALL_HEADER) install-includeHEADERS: $(include_HEADERS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(includedir) @list='$(include_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " $(includeHEADERS_INSTALL) $$d$$p $(DESTDIR)$(includedir)/$$f"; \ $(includeHEADERS_INSTALL) $$d$$p $(DESTDIR)$(includedir)/$$f; \ done uninstall-includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(include_HEADERS)'; for p in $$list; do \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " rm -f $(DESTDIR)$(includedir)/$$f"; \ rm -f $(DESTDIR)$(includedir)/$$f; \ done ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: $(mkinstalldirs) $(DESTDIR)$(includedir) install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-includeHEADERS install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-includeHEADERS uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am info \ info-am install install-am install-data install-data-am \ install-exec install-exec-am install-includeHEADERS \ install-info install-info-am install-man install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ uninstall-am uninstall-includeHEADERS uninstall-info-am # Common rcs information do not modify # $Author: prudhomm $ # $Revision: 1.1 $ # $Date: 2000/04/23 21:58:36 $ # $Locker: $ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/include/Room.hpp0000664000000000000000000000624207077737467017440 0ustar #if !defined(__ROOM_HPP) #define __ROOM_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__MAPSITE_HPP) #include #endif DECLARE_TYPE( CORELINUX(Dword), RoomNumber ); DECLARE_CLASS( Room ); /** Room is a concrete subclass of MapSite that defines a key relationship between components in the maze. It also contains a identifier for rooms in the maze RoomNumber. As rooms go, this one has four walls only. */ class Room : public MapSite { public: // // Constructors and destructor // /// Default constructor Room( void ); /// Default with RoomNumber Room( RoomNumberCref aRoomNumber ); /// Copy constructor Room( RoomCref ) throw( CORELINUX(Assertion) ); /// Virtual destructor virtual ~Room( void ); // // Operator overloads // /// Assignment operator RoomRef operator=( RoomCref aRef ) throw( CORELINUX(Assertion) ); /// Equality operator returns true /// if instances are the same bool operator==( RoomCref aRef ) const; // // Accessors // /// Gets the room number RoomNumberCref getRoomNumber( void ) const; /// Retrieve the MapSite object given a direction MapSitePtr getSide( Direction ) const; // // Mutator // /// Sets the room number void setRoomNumber( RoomNumberCref aRef ); /// Sets a object for the given direction side void setSide( Direction, MapSitePtr ); // // Pure virtual definition // /** The one operation "enter", the meaning depends on the derivation, or what it is you are entering */ virtual void enter( void ); protected: private: /// Our walls, windows, etc. MapSitePtr theSides[4]; /// Our room number RoomNumber theRoomNumber; }; #endif // if !defined(__ROOM_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/04/21 02:38:47 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex5/0000775000000000000000000000000010771017615015042 5ustar libcorelinux-0.4.32/src/testdrivers/ex5/examp5.cpp0000664000000000000000000001130510771017615016745 0ustar /* CoreLinux++ Copyright (C) 1999 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** \example examp5.cpp This example is to test the Iterator pattern implementations in libcorelinux++. A more comprehensive test will be provided in ex6 which is destined for the Composite pattern implementation. */ #include #include #include #include #include #include using namespace corelinux; using namespace std; CORELINUX_LIST( Int , IntList ); CORELINUX_VECTOR( Real , RealVector ); // // In module function prototypes // int main( void ); // Function template for iterating over the elements template void dumpIterator( Iterator *aIteratorPtr ); // // Standard issue // void handleAssertion( AssertionCref aAssert ); void handleException( ExceptionCref aExcp ); int main( void ) { // // Practice gracefull exception management // try { // // Our first test is with a Iterator for Integers // Iterator *aIntIterator(NULLPTR); IntList aIntList; aIntList.push_back(5); aIntList.push_back(6); aIntList.push_back(7); // // Construct the STL list iterator // aIntIterator = new CoreLinuxIterator ( aIntList.begin(), aIntList.end() ); dumpIterator(aIntIterator); delete aIntIterator; // // Now try it with a Iterator for Real // Iterator *aRealIterator( NULLPTR ); RealVector aRealVector; aRealVector.push_back(0.7); aRealVector.push_back(2.8); aRealVector.push_back(7.19823); // // Construct the STL vector iterator // aRealIterator = new CoreLinuxIterator ( aRealVector.begin(), aRealVector.end() ); dumpIterator(aRealIterator); delete aRealIterator; } // // We want to reason with the exception type to give the // user a more informative message. // catch( InvalidIteratorExceptionRef aInvalidIterator ) { cerr << "Invalid iterator constructed." << endl; handleException(aInvalidIterator); } catch( IteratorBoundsExceptionRef aBoundsException ) { cerr << "Bounds exception occured during traversel." << endl; handleException(aBoundsException); } catch( AssertionRef aAssert ) { handleAssertion(aAssert); } catch( std::exception & e ) { cerr << e.what() << endl; } catch( ... ) { cerr << "Unknown exception." << endl; } return 0; } template void dumpIterator( Iterator *aIteratorPtr ) { while( aIteratorPtr->isValid() ) { cout << aIteratorPtr->getElement() << endl; aIteratorPtr->setNext(); } } // // Peform default (just show it) // void handleAssertion( AssertionCref aAssert ) { cerr << aAssert.getFile() << ":" << aAssert.getLine() << ":" << "Assertion: "; if( aAssert.getType() == Assertion::NEVERGETHERE ) { cerr << "NEVER_GET_HERE"; } else { if( aAssert.getType() == Assertion::REQUIRE ) { cerr << "REQUIRE"; } else if( aAssert.getType() == Assertion::ENSURE ) { cerr << "ENSURE"; } else if( aAssert.getType() == Assertion::CHECK ) { cerr << "CHECK"; } else { cerr << "ASSERT"; } cerr << "( " << aAssert.getWhy() << " )"; } cerr << endl; } void handleException( ExceptionCref aExcp ) { cerr << aExcp.getFile() << ":" << aExcp.getLine() << ":" << "Exception: " << aExcp.getWhy() << endl; } /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.2 $ $Date: 2000/08/31 22:49:01 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex5/Makefile.am0000664000000000000000000000075307137764236017115 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 08:34:22 # LAST-MOD: 23-Apr-00 at 16:14:07 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc bin_PROGRAMS = ex5 ex5_SOURCES = examp5.cpp ex5_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la libcorelinux-0.4.32/src/testdrivers/ex5/Makefile.in0000664000000000000000000003364707743170757017140 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 08:34:22 # LAST-MOD: 23-Apr-00 at 16:14:07 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc bin_PROGRAMS = ex5 ex5_SOURCES = examp5.cpp ex5_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la subdir = src/testdrivers/ex5 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = bin_PROGRAMS = ex5$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) am_ex5_OBJECTS = examp5.$(OBJEXT) ex5_OBJECTS = $(am_ex5_OBJECTS) ex5_DEPENDENCIES = ${top_builddir}/src/classlibs/corelinux/libcl++.la ex5_LDFLAGS = DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/admin/depcomp am__depfiles_maybe = depfiles @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/examp5.Po CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ DIST_SOURCES = $(ex5_SOURCES) DIST_COMMON = $(srcdir)/Makefile.in Makefile.am SOURCES = $(ex5_SOURCES) all: all-am .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc .lo .obj $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex5/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(bindir) @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f $(DESTDIR)$(bindir)/$$f"; \ rm -f $(DESTDIR)$(bindir)/$$f; \ done clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done ex5$(EXEEXT): $(ex5_OBJECTS) $(ex5_DEPENDENCIES) @rm -f ex5$(EXEEXT) $(CXXLINK) $(ex5_LDFLAGS) $(ex5_OBJECTS) $(ex5_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) core *.core distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/examp5.Po@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: $(mkinstalldirs) $(DESTDIR)$(bindir) install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-exec-am: install-binPROGRAMS install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libtool ctags distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-exec install-exec-am \ install-info install-info-am install-man install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/ex6/0000775000000000000000000000000010771017615015043 5ustar libcorelinux-0.4.32/src/testdrivers/ex6/Equipment.cpp0000664000000000000000000000406707041753001017515 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__EQUIPMENT_HPP) #include #endif using namespace corelinux; // // Default constructor throws // exception // Equipment::Equipment( void ) throw( CompositeException ) : theName("") { throw CompositeException( LOCATION ); } // // Valid default constructor // Equipment::Equipment( NameCref aName ) : theName( aName ) { ; // do nothing } // // Copy constructor // Equipment::Equipment( EquipmentCref aRef ) : theName( aRef.getName() ) { ; // do nothing } // // Destructor // Equipment::~Equipment( void ) { ; // do nothing } // // Assignment operator throws exception // EquipmentRef Equipment::operator=( EquipmentCref ) throw(CORELINUX(CompositeException)) { throw CompositeException( LOCATION ); return (*this); } // // Equality operator overload // bool Equipment::operator==( EquipmentCref aRef ) const { return (theName == aRef.getName() ); } // // Retrieve theName // NameCref Equipment::getName( void ) const { return theName; } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/01/21 03:44:01 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex6/include/0000775000000000000000000000000007743170760016474 5ustar libcorelinux-0.4.32/src/testdrivers/ex6/include/PowerSupply.hpp0000664000000000000000000000443407050545765021525 0ustar #if !defined(__POWERSUPPLY_HPP) #define __POWERSUPPLY_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__EQUIPMENT_HPP) #include #endif /** PowerSupply is a leaf component. */ DECLARE_CLASS( PowerSupply ); class PowerSupply : public Equipment { public: // // Constructors and Destructors // /// Always requires a name in derivations PowerSupply( NameCref ); /// Copy constructor PowerSupply( PowerSupplyCref ); /// Virtual destructor virtual ~PowerSupply( void ); // // Operators // /// Equal if theName == theName bool operator==( PowerSupplyCref ) const; // // Accessors // /// Return the power requirement virtual Watt getPower( void ); protected: /// Default constructor not allowed PowerSupply( void ) throw(CORELINUX(CompositeException)); /// Assignment operator can't overwrite name PowerSupplyRef operator=( PowerSupplyCref ) throw(CORELINUX(CompositeException)); }; #endif // if !defined(__POWERSUPPLY_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/02/10 14:32:21 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex6/include/EquipmentComposite.hpp0000664000000000000000000000700307153560334023032 0ustar #if !defined(__EQUIPMENTCOMPOSITE_HPP) #define __EQUIPMENTCOMPOSITE_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__COMPOSITEEXCEPTION_HPP) #include #endif #if !defined(__EQUIPMENT_HPP) #include #endif /// Domain list DECLARE_CLASS( EquipmentComposite ); /** EquipmentComposite implements the TransparentComponent children management routines as well as the domain behavior of Equipment. In our implementation we use the EquipmentComposite as the concrete composite. Other implementations may wish to extend the Equipment composite to real world composit types of the problem domain. */ class EquipmentComposite : public Equipment { public: // // Constructors and Destructors // /// Always requires a name in derivations EquipmentComposite( NameCref ); /// Copy constructor - DEEP copy EquipmentComposite( EquipmentCompositeCref ); /// Virtual destructor virtual ~EquipmentComposite( void ); // // Operators // /// Equal if theName == theName bool operator==( EquipmentCompositeCref ) const; // // Accessors // /// Return the power requirement virtual Watt getPower( void ) ; // // Mutators overloaded from TransparentComponent // virtual void addComponent( EquipmentPtr ) throw(CORELINUX(InvalidCompositeException)); virtual void removeComponent( EquipmentPtr ) throw(CORELINUX(InvalidCompositeException)); // // Factory overloaded from TransparentComponent // /// Create a iterator and manage it's instance virtual CORELINUX(Iterator)* createIterator( void ) throw(CORELINUX(InvalidCompositeException)); /// Destroy the iterator if it is ours virtual void destroyIterator( CORELINUX(Iterator)* ) throw(CORELINUX(InvalidCompositeException)); protected: // // Constructors // /// Default constructor not allowed EquipmentComposite( void ) throw(CORELINUX(CompositeException)); // // Operators // /// Assignment operator can't overwrite name EquipmentCompositeRef operator=( EquipmentCompositeCref ) throw(CORELINUX(CompositeException)); private: }; #endif // if !defined(__EQUIPMENTCOMPOSITE_HPP); /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.3 $ $Date: 2000/08/31 22:49:00 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex6/include/Equipment.hpp0000664000000000000000000000554207050545765021164 0ustar #if !defined(__EQUIPMENT_HPP) #define __EQUIPMENT_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__TRANSPARENTCOMPONENT_HPP) #include #endif #if !defined(__COMPOSITEEXCEPTION_HPP) #include #endif #if !defined(__INVALIDCOMPOSITEEXCEPTION_HPP) #include #endif #include DECLARE_CLASS( Equipment ); /// Define domain types DECLARE_TYPE( CORELINUX(Dword), Watt ); DECLARE_TYPE( std::string, Name ); /** Equipment defines an interface in the part-whole hierarchy. We use the transparent component because we don't want to differentiate types at run time. */ class Equipment : public CORELINUX(TransparentComponent) { public: // // Constructors and Destructors // /// Copy constructor Equipment( EquipmentCref ); /// Virtual destructor virtual ~Equipment( void ); // // Operators // /// Equal if theName == theName bool operator==( EquipmentCref ) const; // // Accessors // /// Return the components name NameCref getName( void ) const; /// Return the power requirement virtual Watt getPower( void ) = 0; protected: /// Default constructor not allowed Equipment( void ) throw(CORELINUX(CompositeException)); /// Always requires a name in derivations Equipment( NameCref ); /// Assignment operator can't overwrite name EquipmentRef operator=( EquipmentCref ) throw(CORELINUX(CompositeException)); private: /// The equipments name Name theName; }; #endif /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/02/10 14:32:21 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex6/include/Makefile.am0000664000000000000000000000072207100671014020512 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 13:12:28 # LAST-MOD: 10-Apr-00 at 13:12:55 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc noinst_HEADERS = EquipmentComposite.hpp Equipment.hpp HardDrive.hpp PowerSupply.hpplibcorelinux-0.4.32/src/testdrivers/ex6/include/Makefile.in0000664000000000000000000002300007743170760020534 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 13:12:28 # LAST-MOD: 10-Apr-00 at 13:12:55 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc noinst_HEADERS = EquipmentComposite.hpp Equipment.hpp HardDrive.hpp PowerSupply.hpp subdir = src/testdrivers/ex6/include ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = DIST_SOURCES = HEADERS = $(noinst_HEADERS) DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.in Makefile.am all: all-am .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex6/include/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am info \ info-am install install-am install-data install-data-am \ install-exec install-exec-am install-info install-info-am \ install-man install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags uninstall uninstall-am uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/ex6/include/HardDrive.hpp0000664000000000000000000000437707050545765021072 0ustar #if !defined(__HARDDRIVE_HPP) #define __HARDDRIVE_HPP /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__EQUIPMENT_HPP) #include #endif /** HardDrive is a leaf component. */ DECLARE_CLASS( HardDrive ); class HardDrive : public Equipment { public: // // Constructors and Destructors // /// Always requires a name in derivations HardDrive( NameCref ); /// Copy constructor HardDrive( HardDriveCref ); /// Virtual destructor virtual ~HardDrive( void ); // // Operators // /// Equal if theName == theName bool operator==( HardDriveCref ) const; // // Accessors // /// Return the power requirement virtual Watt getPower( void ); protected: /// Default constructor not allowed HardDrive( void ) throw(CORELINUX(CompositeException)); /// Assignment operator can't overwrite name HardDriveRef operator=( HardDriveCref ) throw(CORELINUX(CompositeException)); }; #endif // if !defined(__HARDDRIVE_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/02/10 14:32:21 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex6/PowerSupply.cpp0000664000000000000000000000417407041753001020056 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__POWERSUPPLY_HPP) #include #endif using namespace corelinux; const Watt PowerSupplyWattage(15); // // Default constructor throws // exception // PowerSupply::PowerSupply( void ) throw( CompositeException ) : Equipment() { ; // do nothing } // // Valid default constructor // PowerSupply::PowerSupply( NameCref aName ) : Equipment( aName ) { ; // do nothing } // // Copy constructor // PowerSupply::PowerSupply( PowerSupplyCref aRef ) : Equipment( aRef ) { ; // do nothing } // // Destructor // PowerSupply::~PowerSupply( void ) { ; // do nothing } // // Assignment operator throws exception // PowerSupplyRef PowerSupply::operator=( PowerSupplyCref aRef ) throw(CORELINUX(CompositeException)) { Equipment::operator=(aRef); return (*this); } // // Equality operator overload // bool PowerSupply::operator==( PowerSupplyCref aRef ) const { return Equipment::operator==(aRef); } // // Return the power supply power requirement. // Watt PowerSupply::getPower( void ) { return PowerSupplyWattage; } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/01/21 03:44:01 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex6/EquipmentComposite.cpp0000664000000000000000000002131610771017615021404 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__EQUIPMENTCOMPOSITE_HPP) #include #endif #if !defined(__MAP_HPP) #include #endif #if !defined(__SET_HPP) #include #endif #if !defined(__LIST_HPP) #include #endif #if !defined(__CORELINUXITERATOR_HPP) #include #endif using namespace corelinux; using namespace std; // // We firewall each of the composite collections as the // involvement of the Iterator, and by defintion, hiding the // collection implementation. // // A set which insures that there is only member of the same instance // allowed in our child collection. CORELINUX_SET( EquipmentPtr, less , EquipmentList ); // A list of iterators that we pass out. We could use Set or // Vector as well. CORELINUX_LIST( CORELINUX(Iterator)* , IteratorList ); // A map of our instance (key) to our equipment (children) CORELINUX_MAP ( EquipmentCompositePtr, EquipmentListPtr, less, EquipmentMap ); // A map of our instance (key) to our iterators CORELINUX_MAP ( EquipmentCompositePtr, IteratorListPtr, less, IteratorMap ); // // Finally, we declare the maps globally to all // composite instances. // static EquipmentMap gEquipment; static IteratorMap gIterator; // // Default constructor, throws exception // EquipmentComposite::EquipmentComposite( void ) throw(CompositeException) : Equipment() { ; // do nothing } // // Constructor with a name. In the process we // register ourselves in the maps of lists // EquipmentComposite::EquipmentComposite( NameCref aName ) : Equipment( aName ) { gEquipment[EquipmentCompositePtr(this)] = new EquipmentList; gIterator[EquipmentCompositePtr(this)] = new IteratorList ; } // // Copy constructor. Same registration effort with the addition // of copying in the references children. // EquipmentComposite::EquipmentComposite( EquipmentCompositeCref aRef ) : Equipment( aRef ) { // Lookup the guests registered children EquipmentMapConstIterator guest ( gEquipment.find( EquipmentCompositePtr(&aRef) ) ); // If we find it then construct our list with // a semi-deep copy of theirs. // Otherwise we just have an empty list // to start with if( guest != gEquipment.end() ) { EquipmentListPtr aPtr( new EquipmentList ); (*aPtr) = *(*guest).second; gEquipment[EquipmentCompositePtr(this)] = aPtr; } else { gEquipment[EquipmentCompositePtr(this)] = new EquipmentList; } gIterator[EquipmentCompositePtr(this)] = new IteratorList ; } // // Destructor. Our main effort is removing the // maps of our list collections. // EquipmentComposite::~EquipmentComposite( void ) { // // Clear out the IteratorList. // Because we are the factory for the iterators // we must delete them individually. // IteratorMapIterator aIItr( gIterator.find(this) ); if( aIItr != gIterator.end() ) { IteratorListIterator begin( (*aIItr).second->begin() ); IteratorListIterator end( (*aIItr).second->end() ); while( begin != end ) { delete (*begin); ++begin; } delete (*aIItr).second; gIterator.erase(aIItr); } else { ; // do nothing } // // Empty the children. // EquipmentMapIterator aEItr( gEquipment.find(this) ); if( aEItr != gEquipment.end() ) { delete (*aEItr).second; gEquipment.erase(aEItr); } else { ; // do nothing } } // // Equality operator. Depending on your requirements you may // want to perform a memberwise comparison. // bool EquipmentComposite::operator==( EquipmentCompositeCref aRef ) const { return (Equipment::operator==(aRef)); } // // Assignment operator. This throws an exception, // EquipmentCompositeRef EquipmentComposite::operator= ( EquipmentCompositeCref aRef ) throw(CompositeException) { Equipment::operator=(aRef); return (*this); } // // Get power should total the childrens Watt requirement // Watt EquipmentComposite::getPower( void ) { Watt aWattTotal(0); // // We use our own iterator capability // to collect the total wattage // Iterator *aIterator( this->createIterator() ); CHECK( aIterator != NULLPTR ); while( aIterator->isValid() ) { aWattTotal += aIterator->getElement()->getPower(); aIterator->setNext(); } this->destroyIterator( aIterator ); return aWattTotal; } // // Add a child component to our children list. We make // sure that the instance is not already a child. We // could also use the iterator return // void EquipmentComposite::addComponent( EquipmentPtr aPtr ) throw(CORELINUX(InvalidCompositeException)) { REQUIRE( aPtr != NULLPTR ); // // Look for the registered list and add the // pointer. The result of a map insert is // that the returned pair second member is // true if successful, false if the value // is not unique. // EquipmentMapIterator aEItr( gEquipment.find(this) ); CHECK( aEItr != gEquipment.end() ); pair aResult = (*aEItr).second->insert( aPtr ) ; CHECK( aResult.second == true ); } // // After insuring that the child exists in the list, // we remove it. We use assertions to indicate a real // problem. // We use a series of assertions during development to // flush out any problems. // void EquipmentComposite::removeComponent( EquipmentPtr aPtr ) throw(CORELINUX(InvalidCompositeException)) { REQUIRE( aPtr != NULLPTR ); // // We find our registered children // EquipmentMapIterator aEItr( gEquipment.find(this) ); CHECK( aEItr != gEquipment.end() ); // // We find the target to be removed. // EquipmentListIterator aCItr( (*aEItr).second->find(aPtr) ); CHECK( aCItr != (*aEItr).second->end() ); (*aEItr).second->erase(aCItr); } // // We use a CoreLinuxIterator as it works with the STL // collections of C++. We also register the new iterator // so we can verify ownership when it is returned. // We use a series of assertions during development to // flush out any problems. // Iterator *EquipmentComposite::createIterator( void ) throw(CORELINUX(InvalidCompositeException)) { EquipmentMapIterator aEItr( gEquipment.find(this) ); CHECK( aEItr != gEquipment.end() ); // // Create the iterator with our children set // Iterator *aPtr = new CoreLinuxIterator ( (*aEItr).second->begin() , (*aEItr).second->end() ); CHECK( aPtr != NULLPTR ); // // We register the iterator as being "loaned" out // by this composite. // IteratorMapIterator aIItr( gIterator.find(this) ); CHECK( aIItr != gIterator.end() ); (*aIItr).second->push_back(aPtr); return aPtr; } // // We are asked to destroy the iterator we have created. // Of course, we check that the iterator belongs to us // by validating it against our list of "loaned" iterators. // void EquipmentComposite::destroyIterator( Iterator *aPtr ) throw(CORELINUX(InvalidCompositeException)) { REQUIRE( aPtr != NULLPTR ); IteratorMapIterator aIItr( gIterator.find(this) ); CHECK( aIItr != gIterator.end() ); IteratorListIterator begin( (*aIItr).second->begin() ); IteratorListIterator end( (*aIItr).second->end() ); while( begin != end ) { if( (*begin) == aPtr ) { (*aIItr).second->erase(begin); delete aPtr; begin = end; } else { ++begin; } } } /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.2 $ $Date: 2000/08/31 22:49:01 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex6/HardDrive.cpp0000664000000000000000000000411207041753001017405 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__HARDDRIVE_HPP) #include #endif using namespace corelinux; const Watt DriveWattage(10); // // Default constructor throws // exception // HardDrive::HardDrive( void ) throw( CompositeException ) : Equipment() { ; // do nothing } // // Valid default constructor // HardDrive::HardDrive( NameCref aName ) : Equipment( aName ) { ; // do nothing } // // Copy constructor // HardDrive::HardDrive( HardDriveCref aRef ) : Equipment( aRef ) { ; // do nothing } // // Destructor // HardDrive::~HardDrive( void ) { ; // do nothing } // // Assignment operator throws exception // HardDriveRef HardDrive::operator=( HardDriveCref aRef ) throw(CORELINUX(CompositeException)) { Equipment::operator=(aRef); return (*this); } // // Equality operator overload // bool HardDrive::operator==( HardDriveCref aRef ) const { return Equipment::operator==(aRef); } // // Return the hard drive power requirement // Watt HardDrive::getPower( void ) { return DriveWattage; } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/01/21 03:44:01 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex6/Makefile.am0000664000000000000000000000110307137764254017104 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 08:34:22 # LAST-MOD: 23-Apr-00 at 16:14:14 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = include bin_PROGRAMS = ex6 ex6_SOURCES = examp6.cpp EquipmentComposite.cpp PowerSupply.cpp HardDrive.cpp Equipment.cpp ex6_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la libcorelinux-0.4.32/src/testdrivers/ex6/Makefile.in0000664000000000000000000004432107743170757017130 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 08:34:22 # LAST-MOD: 23-Apr-00 at 16:14:14 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = include bin_PROGRAMS = ex6 ex6_SOURCES = examp6.cpp EquipmentComposite.cpp PowerSupply.cpp HardDrive.cpp Equipment.cpp ex6_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la subdir = src/testdrivers/ex6 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = bin_PROGRAMS = ex6$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) am_ex6_OBJECTS = examp6.$(OBJEXT) EquipmentComposite.$(OBJEXT) \ PowerSupply.$(OBJEXT) HardDrive.$(OBJEXT) Equipment.$(OBJEXT) ex6_OBJECTS = $(am_ex6_OBJECTS) ex6_DEPENDENCIES = ${top_builddir}/src/classlibs/corelinux/libcl++.la ex6_LDFLAGS = DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/admin/depcomp am__depfiles_maybe = depfiles @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/Equipment.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/EquipmentComposite.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/HardDrive.Po ./$(DEPDIR)/PowerSupply.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/examp6.Po CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ DIST_SOURCES = $(ex6_SOURCES) RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \ ps-recursive install-info-recursive uninstall-info-recursive \ all-recursive install-data-recursive install-exec-recursive \ installdirs-recursive install-recursive uninstall-recursive \ check-recursive installcheck-recursive DIST_COMMON = $(srcdir)/Makefile.in Makefile.am DIST_SUBDIRS = $(SUBDIRS) SOURCES = $(ex6_SOURCES) all: all-recursive .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc .lo .obj $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex6/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(bindir) @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f $(DESTDIR)$(bindir)/$$f"; \ rm -f $(DESTDIR)$(bindir)/$$f; \ done clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done ex6$(EXEEXT): $(ex6_OBJECTS) $(ex6_DEPENDENCIES) @rm -f ex6$(EXEEXT) $(CXXLINK) $(ex6_LDFLAGS) $(ex6_OBJECTS) $(ex6_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) core *.core distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Equipment.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/EquipmentComposite.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/HardDrive.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PowerSupply.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/examp6.Po@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if (etags --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ else \ include_option=--include; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -f $$subdir/TAGS && \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ || exit 1; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" \ distdir=../$(distdir)/$$subdir \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(PROGRAMS) installdirs: installdirs-recursive installdirs-am: $(mkinstalldirs) $(DESTDIR)$(bindir) install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: info: info-recursive info-am: install-data-am: install-exec-am: install-binPROGRAMS install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \ clean-binPROGRAMS clean-generic clean-libtool clean-recursive \ ctags ctags-recursive distclean distclean-compile \ distclean-generic distclean-libtool distclean-recursive \ distclean-tags distdir dvi dvi-am dvi-recursive info info-am \ info-recursive install install-am install-binPROGRAMS \ install-data install-data-am install-data-recursive \ install-exec install-exec-am install-exec-recursive \ install-info install-info-am install-info-recursive install-man \ install-recursive install-strip installcheck installcheck-am \ installdirs installdirs-am installdirs-recursive \ maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \ pdf pdf-am pdf-recursive ps ps-am ps-recursive tags \ tags-recursive uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-info-am uninstall-info-recursive uninstall-recursive # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/ex6/examp6.cpp0000664000000000000000000001313707153560335016756 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** \example examp6.cpp This example is to show use of the Composite types and pattern. In our scenario we have non-typed composites (other than the fact they are Equipment) and concrete equipment types (HardDrive, PowerSupply). We could have created concrete composites (Bus, Case, etc.) and added semantics to them. For example, is it semantically correct for a Case to have a hard-drive, or a Bus to have a power-supply? We leave that to the curious. We use the TransparentComponent to reduce the amount of type checking. This has its drawbacks as can be seen in the recursion function "dumpComposites". */ #include #include #include #include #include using namespace corelinux; #include #include // // In module function prototypes // int main( void ); // // Routine to walk tree // void dumpComposites( EquipmentRef ); // // Functions that work with Engine types // void handleAssertion( AssertionCref ); void handleException( ExceptionCref ); int main( void ) { // // Practice gracefull exception management // cout << endl; try { // // Build up a part-whole hierarchy with // some composites // EquipmentComposite aSystem("System"); EquipmentComposite aCase("Case"); EquipmentComposite aBus("Bus"); // // And leafs // PowerSupply aPowerSupply("200 Watt Supply"); HardDrive aHardDrive("40 Gigabyte Drive"); // // Build up the hierarchy // aSystem.addComponent( &aCase ); aCase.addComponent( &aPowerSupply ); aCase.addComponent( &aBus ); aBus.addComponent( &aHardDrive ); dumpComposites(aSystem); // // Our composits rid themselves during // auto destruction. // } catch( AssertionRef aAssert ) { handleAssertion(aAssert); } catch( ExceptionRef aException ) { handleException(aException); } catch( std::exception & e ) { cerr << e.what() << endl; } catch( ... ) { cerr << "Unknown exception." << endl; } return 0; } // // A depth recursive routine which checks for // exceptions based on leaf/composite // void dumpComposites( EquipmentRef aRef ) { Iterator *aIterator( NULLPTR ); try { aIterator = aRef.createIterator(); cout << endl; cout << "Composite : " << aRef.getName() << " has" ; // // If we have anything but the nul iterator, dig // deeper. // if( aIterator->isValid() ) { cout << " components " << " with a total power requirement of " << aRef.getPower() << " watts." << endl; do { dumpComposites( *aIterator->getElement() ); aIterator->setNext(); } while( aIterator->isValid() ); } else { cout << " no components." << endl; } // // Because of the implementation, this step // is optional as the composit maintains the // list of iterators that it "loans" out. BUT // this is memory friendly in larger scale // scenarios // aRef.destroyIterator( aIterator ); } // // This shows how the transparent type implementation needs to // watch for using leaves in a composit scenario. // catch( InvalidCompositeExceptionRef icExcp ) { cerr << "Attempt to access a leaf as composite exception" << endl; cerr << aRef.getName() << " is a Leaf not a composite!" << endl; cout << aRef.getName() << " requires " << aRef.getPower() << " watts." << endl; } } // // Peform default (just show it) // void handleAssertion( AssertionCref aAssert ) { cerr << aAssert.getFile() << ":" << aAssert.getLine() << ":" << "Assertion: "; if( aAssert.getType() == Assertion::NEVERGETHERE ) { cerr << "NEVER_GET_HERE"; } else { if( aAssert.getType() == Assertion::REQUIRE ) { cerr << "REQUIRE"; } else if( aAssert.getType() == Assertion::ENSURE ) { cerr << "ENSURE"; } else if( aAssert.getType() == Assertion::CHECK ) { cerr << "CHECK"; } else { cerr << "ASSERT"; } cerr << "( " << aAssert.getWhy() << " )"; } cerr << endl; } void handleException( ExceptionCref aExcp ) { cerr << aExcp.getFile() << ":" << aExcp.getLine() << ":" << "Exception: " << aExcp.getWhy() << endl; } /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.2 $ $Date: 2000/08/31 22:49:01 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex1/0000775000000000000000000000000007743170746015050 5ustar libcorelinux-0.4.32/src/testdrivers/ex1/include/0000775000000000000000000000000007743170746016473 5ustar libcorelinux-0.4.32/src/testdrivers/ex1/include/Person.hpp0000664000000000000000000000717607050545764020462 0ustar #if !defined(__PERSON_HPP) #define __PERSON_HPP /* CoreLinux++ Copyright (C) 1999 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif // // This gives our Person the types // that is more reasonable for the // domain. // DECLARE_TYPE( CORELINUX(StringUtf8), Name ); DECLARE_TYPE( CORELINUX(Long), Age ); // // Person is a concrete non-polymorphice class that // examples some CoreLinux++ style and constraints. In this domain // it is enforced that no Person can be the same as another Person. // This is a soft approach as in a real world application uniqueness // in a domain would have to consider ALL persons in a domain. // DECLARE_CLASS( Person ); class Person { public: // // Public Constructors and destructors // // // Default constructor forces taking // a name because what is a person // without one. The other constructors // not allowed are in the protected area // with assertions! // Person( NameCref, Age ); virtual ~Person( void ); // // Operator overloads. // // Operator equality down to the name bool operator==( PersonCref ) const; // // Accessors // // Explicit name fetch NameCref getName( void ) const; // Coercion name fetch operator NameCref( void ) const; // Explicit age fetch AgeCref getAge( void ) const; // Coercion age fetch operator AgeCref( void ) const; // // Mutators // // Prefered method void setAge( Age ); protected: // // As stated, this can't be // because a Person has a Name // Person( void ); // // This would violate the same // person existing twice in the // domain. // Person( PersonCref ); // ditto PersonRef operator=( PersonCref ); private: // // Use the language to enforce that the name // is only set once. // NameCref theName; // // Whereas the age can change but is constrained // to >= 0 and and <= corelinux::Limits::LONGMAX // Age theAge; }; #endif // if !defined(__PERSON_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.6 $ $Date: 2000/02/10 14:32:20 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex1/include/Makefile.am0000664000000000000000000000063207100671013020504 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 10:50:05 # LAST-MOD: 10-Apr-00 at 10:50:19 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc noinst_HEADERS = Person.hpplibcorelinux-0.4.32/src/testdrivers/ex1/include/Makefile.in0000664000000000000000000002271007743170746020542 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 10:50:05 # LAST-MOD: 10-Apr-00 at 10:50:19 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc noinst_HEADERS = Person.hpp subdir = src/testdrivers/ex1/include ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = DIST_SOURCES = HEADERS = $(noinst_HEADERS) DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.in Makefile.am all: all-am .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex1/include/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am info \ info-am install install-am install-data install-data-am \ install-exec install-exec-am install-info install-info-am \ install-man install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags uninstall uninstall-am uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/ex1/Person.cpp0000664000000000000000000000743707041345157017024 0ustar /* CoreLinux++ Copyright (C) 1999 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ // // Implementation of Person. Note the pre and post invariants // enforcing age changes, as well as the assertion for illegal // construction or assignment. See notes in header concerning // real world application which enforces uniqueness in a domain // #if !defined(__COMMON_HPP) #include #endif #if !defined(__PERSON_HPP) #include #endif using namespace corelinux; // // The default (only!) constructor. Note: This is for example // only. Clearly the fact that we are using a constant string ref // no way insures that the originating string will be removed from // the stack without violating our invarience. // Person::Person( NameCref aName, Age aAge ) : theName(aName), theAge( aAge ) { REQUIRE( theName.empty() == false ); REQUIRE( theAge >= 0 && theAge < Limits::LONGMAX ); } // // Illegal constructors defined. You could optionally // change the assertion to more explicit exceptions // as shown in the copy constructor // Person::Person( void ) : theName(TEXT("")), theAge(0) { NEVER_GET_HERE; } Person::Person( PersonCref ) : theName(TEXT("")), theAge(0) { throw Exception ( TEXT("No two Persons can have the same name in this domain"), LOCATION ); } // // Destructor. With Person there is really nothing to clean up // Person::~Person( void ) { ; // do nothing } // Operator compares down to the name if applicable bool Person::operator==( PersonCref aPerson ) const { bool isMe(true); if( this != &aPerson || this->getName() != aPerson.getName()) { isMe = false; } else { ; // do nothing } return isMe; } // Illegal operator dealt with PersonRef Person::operator=( PersonCref ) { NEVER_GET_HERE; // Assignment no allowed return *this; // avoid compiler errors } // Explicit name fetch NameCref Person:: getName( void ) const { return theName; } // Coercion name fetch Person::operator NameCref( void ) const { return theName; } // Explicit age fetch AgeCref Person:: getAge( void ) const { return theAge; } // Coercion age fetch Person::operator AgeCref( void ) const { return theAge; } // // Here we can change the age while at // the same time showing a good practice, // mainly INSURING THAT THE STATE OF THE // PERSON IS PRESERVED!!! Another note // is that the assertions from Assertion.hpp // can be compiled away. It is up to the // developer to understand what type constraints // should live forever, or just during development. // void Person::setAge( Age aAge ) { REQUIRE( aAge >= 0 ); // Copy for restore Age aTempAge(this->getAge()); theAge = aAge; try { ENSURE( theAge < Limits::LONGMAX ); } catch( AssertionRef e ) { theAge = aTempAge; throw; } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.3 $ $Date: 2000/01/19 14:30:07 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex1/Makefile.am0000664000000000000000000000101307137764144017075 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 08:34:22 # LAST-MOD: 23-Apr-00 at 16:13:26 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = include bin_PROGRAMS = ex1 ex1_SOURCES = Person.cpp examp1.cpp ex1_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la libcorelinux-0.4.32/src/testdrivers/ex1/Makefile.in0000664000000000000000000004333607743170746017126 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 08:34:22 # LAST-MOD: 23-Apr-00 at 16:13:26 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = include bin_PROGRAMS = ex1 ex1_SOURCES = Person.cpp examp1.cpp ex1_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la subdir = src/testdrivers/ex1 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = bin_PROGRAMS = ex1$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) am_ex1_OBJECTS = Person.$(OBJEXT) examp1.$(OBJEXT) ex1_OBJECTS = $(am_ex1_OBJECTS) ex1_DEPENDENCIES = ${top_builddir}/src/classlibs/corelinux/libcl++.la ex1_LDFLAGS = DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/admin/depcomp am__depfiles_maybe = depfiles @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/Person.Po ./$(DEPDIR)/examp1.Po CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ DIST_SOURCES = $(ex1_SOURCES) RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \ ps-recursive install-info-recursive uninstall-info-recursive \ all-recursive install-data-recursive install-exec-recursive \ installdirs-recursive install-recursive uninstall-recursive \ check-recursive installcheck-recursive DIST_COMMON = $(srcdir)/Makefile.in Makefile.am DIST_SUBDIRS = $(SUBDIRS) SOURCES = $(ex1_SOURCES) all: all-recursive .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc .lo .obj $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex1/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(bindir) @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f $(DESTDIR)$(bindir)/$$f"; \ rm -f $(DESTDIR)$(bindir)/$$f; \ done clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done ex1$(EXEEXT): $(ex1_OBJECTS) $(ex1_DEPENDENCIES) @rm -f ex1$(EXEEXT) $(CXXLINK) $(ex1_LDFLAGS) $(ex1_OBJECTS) $(ex1_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) core *.core distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Person.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/examp1.Po@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if (etags --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ else \ include_option=--include; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -f $$subdir/TAGS && \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ || exit 1; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" \ distdir=../$(distdir)/$$subdir \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(PROGRAMS) installdirs: installdirs-recursive installdirs-am: $(mkinstalldirs) $(DESTDIR)$(bindir) install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: info: info-recursive info-am: install-data-am: install-exec-am: install-binPROGRAMS install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \ clean-binPROGRAMS clean-generic clean-libtool clean-recursive \ ctags ctags-recursive distclean distclean-compile \ distclean-generic distclean-libtool distclean-recursive \ distclean-tags distdir dvi dvi-am dvi-recursive info info-am \ info-recursive install install-am install-binPROGRAMS \ install-data install-data-am install-data-recursive \ install-exec install-exec-am install-exec-recursive \ install-info install-info-am install-info-recursive install-man \ install-recursive install-strip installcheck installcheck-am \ installdirs installdirs-am installdirs-recursive \ maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \ pdf pdf-am pdf-recursive ps ps-am ps-recursive tags \ tags-recursive uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-info-am uninstall-info-recursive uninstall-recursive # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/ex1/examp1.cpp0000664000000000000000000001541107153560525016742 0ustar /* CoreLinux++ Copyright (C) 1999 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** \example examp1.cpp This example is to show use of CoreLinux includes and define capability, while also setting up a build. CoreLinux C++ standards shown in this example: Section 3.0 Liberal comments Code and comments visually seperated Header comments (thats what this is) Block comments Spaces instead of tabs 3 spaces used for indentation other examples are noted in the code. */ // // Common.hpp included before anything else. This is not // required but it makes things consistent. You can also // wrap it with: // // #if !defined(_COMMON_HPP) // #include // #endif // // if file i/o during compilation should be reduced. // Each CoreLinux header has itself wrapped as well so // multiple includes or cross-includes are harmless // #include #include using namespace corelinux; #include using namespace std; #include // // In module function prototypes // int main( void ); // Aligned trailing comments void checkWifesAge( AgeCref, AgeCref ); // (Section 3.0) void bar( void ); // WRONG! Comment should line up // // Assertion and Exception handlers // void handleAssertion( AssertionCref aAssert ); void handleException( ExceptionCref ); int main( void ) { Age oldAge(99); // Use constructor syntax Age agetErr = 0; // WRONG! Use constructor syntax // We would construct and then // assign if real object. // // Practice gracefull exception management // try { Name franksName(TEXT("Frank")); Person frank(franksName,42); // Person instance // // Comment out the following if you want to // ignore test invarient and illegal attempts // cout << frank.getName() << " is " << frank.getAge() << endl; try { frank.setAge(Limits::LONGMAX); } catch( AssertionRef aAssert ) { handleAssertion(aAssert); } catch( ExceptionRef aException ) { handleException(aException); } cout << frank.getName() << " is " << frank.getAge() << endl; // // The following is to show that the developer // knows the intent of the if test, and clearly // shows this by the empty else (Section 4.3). // See ex2 for assertion examples // if( frank < oldAge ) { cout << "Ahh, to be young again!" << endl; } else { ; // do nothing } // // WRONG! Line too long, no continuation, etc. // if( frank > oldAge ) cout << "Wow, they let you out in the world? " << agetErr << endl; // // This shows that we don't want to instantiate until needed // Name wifesName(TEXT("Jane")); Person franksWife(wifesName,21); Age wifesRealAge(41); // // Test wife units age and call her on it (Section 3.0) // cout << "My wife " << franksWife.getName() << " says that she is " << AgeCref(franksWife) << " years old. Lets see about that..." << endl; checkWifesAge( franksWife,wifesRealAge ); // // Section 4.3 // if( agetErr < 0 ) { ; // do nothing } else if( agetErr > 0 ) { ; // do nothing } else { // NEVER_GET_HERE; throw Exception(TEXT("Un-handled situation"),LOCATION); } } catch( AssertionRef aAssert ) { handleAssertion(aAssert); } catch( ExceptionRef aException ) { handleException(aException); } catch( std::exception & e ) { cerr << e.what() << endl; } catch( ... ) { cerr << "Unknown exception." << endl; } // No line exceeds the 78 column positions (Section 4.6) --| return 0; // Single exit point (Section 4.0) } // // Routine to check what age was specified against // the reality of it. // void checkWifesAge( AgeCref aToldAge, AgeCref aRealAge ) { if( aToldAge < aRealAge ) { // // Two points: // 1. Comment block is indented to indicate what it is // that is being commented on. (Section 3.0) // 2. Wrapping indents continuation lines (Section 4.6) // cout << "She has some explaining to do because " << aRealAge - aToldAge << " years is a big difference! "; } else if( aToldAge == aRealAge ) // Section 4.3 { cout << "I'll never tell"; } else { cout << "Don't worry, you look great."; } // Flush buffer cout << endl; return; // not required on void } // // Peform default (just show it) // void handleAssertion( AssertionCref aAssert ) { cerr << aAssert.getFile() << ":" << aAssert.getLine() << ":" << "Assertion: "; if( aAssert.getType() == Assertion::NEVERGETHERE ) { cerr << "NEVER_GET_HERE"; } else { if( aAssert.getType() == Assertion::REQUIRE ) { cerr << "REQUIRE"; } else if( aAssert.getType() == Assertion::ENSURE ) { cerr << "ENSURE"; } else if( aAssert.getType() == Assertion::CHECK ) { cerr << "CHECK"; } else { cerr << "ASSERT"; } cerr << "( " << aAssert.getWhy() << " )"; } cerr << endl; } void handleException( ExceptionCref aExcp ) { cerr << aExcp.getFile() << ":" << aExcp.getLine() << ":" << "Exception: " << aExcp.getWhy() << endl; } // Trailer CVS information only (Section 3.0) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.3 $ $Date: 2000/08/31 22:51:01 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex21/0000775000000000000000000000000010771017616015121 5ustar libcorelinux-0.4.32/src/testdrivers/ex21/include/0000775000000000000000000000000007743170755016555 5ustar libcorelinux-0.4.32/src/testdrivers/ex21/include/ex21.hpp0000664000000000000000000000341607116611356020040 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__EX21_HPP) #define __EX21_HPP #if !defined(__COMMON_HPP) #include #endif #if !defined(__ABSTRACTSEMAPHORE_HPP) #include #endif #if !defined(__MUTEXSEMAPHOREGROUP_HPP) #include #endif #if !defined(__MEMORY_HPP) #include #endif using namespace corelinux; // // Type declarations // struct _TransferBlock { Int theTotalSize; Int theEntrySize; Char theData[1]; }; DECLARE_TYPE( struct _TransferBlock, TransferBlock ); // // Constants // const CharCptr theSemName = {"ex21sem"}; const CharCptr theMemName = {"ex21mem"}; static SemaphoreIdentifier theServerSemId(0); static SemaphoreIdentifier theClientSemId(1); #endif /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/06/05 02:39:42 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex21/include/Makefile.am0000664000000000000000000000103707116216244020576 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 13:16:42 # LAST-MOD: $Id: Makefile.am,v 1.1 2000/06/03 14:56:36 frankc Exp $ # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc noinst_HEADERS = ex21.hpp # Common rcs information do not modify # $Author: frankc $ # $Revision: 1.1 $ # $Date: 2000/06/03 14:56:36 $ # $Locker: $ libcorelinux-0.4.32/src/testdrivers/ex21/include/Makefile.in0000664000000000000000000002311607743170755020625 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 13:16:42 # LAST-MOD: $Id: Makefile.am,v 1.1 2000/06/03 14:56:36 frankc Exp $ # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc noinst_HEADERS = ex21.hpp subdir = src/testdrivers/ex21/include ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = DIST_SOURCES = HEADERS = $(noinst_HEADERS) DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.in Makefile.am all: all-am .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex21/include/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am info \ info-am install install-am install-data install-data-am \ install-exec install-exec-am install-info install-info-am \ install-man install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags uninstall uninstall-am uninstall-info-am # Common rcs information do not modify # $Author: frankc $ # $Revision: 1.1 $ # $Date: 2000/06/03 14:56:36 $ # $Locker: $ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/ex21/examp21c.cpp0000664000000000000000000001471610771017616017256 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** \example examp21c.cpp This example is the client for showing the use of the SemaphoreCommon cross process shared groups. What it does is start up, open up the Semaphore group that should be available via the server process. When ready it prompts the user for input strings to pump across the shared memory segment. */ #if !defined(__EX21_HPP) #include #endif #include #include // // In module function prototypes // int main( int argc, char *argv[] ); // // General Functions // using namespace corelinux; using namespace std; void handleAssertion( AssertionCref ); void handleException( ExceptionCref ); // // Type declarations // // // Main entry point // int main( int argc, char *argv[] ) { cout << endl; // // Practice graceful exception management // try { bool keepGoing(true); MutexSemaphoreGroupPtr aControlGroup( NULLPTR ); AbstractSemaphore *aServerSem( NULLPTR ); AbstractSemaphore *aClientSem( NULLPTR ); MemoryStoragePtr aTransfer( NULLPTR ); TransferBlockPtr aBlock( NULLPTR ); try { aControlGroup = new MutexSemaphoreGroup ( 0,theSemName,0,FAIL_IF_NOTEXISTS ); aServerSem = aControlGroup->createSemaphore ( theServerSemId, FAIL_IF_NOTEXISTS ); aClientSem = aControlGroup->createLockedSemaphore ( theClientSemId, FAIL_IF_NOTEXISTS ); aTransfer = Memory::createStorage ( theMemName, 0, FAIL_IF_NOTEXISTS, 0 ); aBlock = TransferBlockPtr( *aTransfer ); cout << "Client process ready to go." << endl; do { aServerSem->lockWithWait(); // // get input from user // Signal the server // cout << "Child has control" << endl; cout << "Enter a string to send, or 'exit' to finish: "; cin >> aBlock->theData; aBlock->theEntrySize = strlen(aBlock->theData); // // Determine if we should exit // if( strcmp(aBlock->theData,"exit") == 0 ) { aBlock->theEntrySize = 0; keepGoing = false; } if( aBlock->theEntrySize == 0 ) { } else { ; // do nothing } aClientSem->release(); } while( keepGoing == true ); aServerSem->release(); aControlGroup->destroySemaphore( aServerSem ); aServerSem = NULLPTR; aControlGroup->destroySemaphore( aClientSem ); aClientSem = NULLPTR; Memory::destroyStorage( aTransfer ); aTransfer = NULLPTR; } catch( SemaphoreExceptionRef aSemExcp ) { cerr << "Semaphore Exception Received" << endl; handleException(aSemExcp); } catch( AssertionRef aAssert ) { handleAssertion(aAssert); } catch( ExceptionRef aException ) { handleException(aException); } catch(...) { cerr << "Unknown exception received" << endl; } cout << "Client process exiting." << endl; if( aTransfer != NULLPTR ) { Memory::destroyStorage( aTransfer ); aTransfer = NULLPTR; } else { ; // do nothing } if( aControlGroup != NULLPTR ) { if( aServerSem != NULLPTR ) { aControlGroup->destroySemaphore( aServerSem ); } else { ; // do nothing } if( aClientSem != NULLPTR ) { aControlGroup->destroySemaphore( aClientSem ); } else { ; // do nothing } delete aControlGroup; } } catch( NullPointerException aException ) { cerr << "Received NullPointerException!" << endl; handleException(aException); } catch( AssertionRef aAssert ) { handleAssertion(aAssert); } catch( ExceptionRef aException ) { handleException(aException); } catch( std::exception & e ) { cerr << e.what() << endl; } catch( ... ) { cerr << "Unknown exception." << endl; } return 0; } // // Some utility functions // // // Error handlers // void handleAssertion( AssertionCref aAssert ) { cerr << aAssert.getFile() << ":" << aAssert.getLine() << ":" << "Assertion: "; if( aAssert.getType() == Assertion::NEVERGETHERE ) { cerr << "NEVER_GET_HERE"; } else { if( aAssert.getType() == Assertion::REQUIRE ) { cerr << "REQUIRE"; } else if( aAssert.getType() == Assertion::ENSURE ) { cerr << "ENSURE"; } else if( aAssert.getType() == Assertion::CHECK ) { cerr << "CHECK"; } else { cerr << "ASSERT"; } cerr << "( " << aAssert.getWhy() << " )"; } cerr << endl; } void handleException( ExceptionCref aExcp ) { cerr << aExcp.getFile() << ":" << aExcp.getLine() << ":" << "Exception: " << aExcp.getWhy() << endl; } /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.5 $ $Date: 2000/08/31 22:49:01 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex21/examp21s.cpp0000664000000000000000000001535210771017616017273 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** \example examp21s.cpp This example is the server for showing the use of the SemaphoreCommon cross process shared groups. What it does is start up, initialize the shared memory IPC and wait for a client to go live. It then waits on a semaphore for receiving input from the client. */ #if !defined(__EX21_HPP) #include #endif #include #include extern "C" { #include } // // In module function prototypes // int main( int argc, char *argv[] ); // // General Functions // using namespace corelinux; using namespace std; void handleAssertion( AssertionCref ); void handleException( ExceptionCref ); // // Type declarations // const Int POOLSIZE(256); // // Main entry point // int main( int argc, char *argv[] ) { cout << endl; // // Practice graceful exception management // try { bool keepGoing(true); MutexSemaphoreGroupPtr aControlGroup( NULLPTR ); AbstractSemaphore *aServerSem( NULLPTR ); AbstractSemaphore *aClientSem( NULLPTR ); MemoryStoragePtr aTransfer( NULLPTR ); TransferBlockPtr aBlock( NULLPTR ); try { aControlGroup = new MutexSemaphoreGroup ( 2, theSemName, OWNER_ALL|GROUP_ALL|PUBLIC_ALL,FAIL_IF_EXISTS ); aTransfer = Memory::createStorage ( theMemName, POOLSIZE, FAIL_IF_EXISTS, OWNER_ALL | GROUP_ALL | PUBLIC_ALL ); aBlock = TransferBlockPtr( *aTransfer ); aBlock->theTotalSize = POOLSIZE - sizeof(TransferBlock); aBlock->theEntrySize = 0; aServerSem = aControlGroup->createLockedSemaphore ( theServerSemId, FAIL_IF_EXISTS ); aClientSem = aControlGroup->createSemaphore ( theClientSemId, FAIL_IF_EXISTS ); cout << "Server process has lock " << endl; cout << "Waiting for client to become active." << endl; while( aClientSem->isLocked() == false ) { sleep(1); } cout << "A client has arrived!" << endl; aServerSem->release(); cout << "Waiting for client input" << endl; do { aClientSem->lockWithWait(); cout << "Server has control" << endl; // // Read length, read memory // if( aBlock->theEntrySize != 0 ) { cout << "Client sent " << aBlock->theData << endl; aServerSem->release(); } else { cout << "Client sent exit request." << endl; keepGoing = false; } } while( keepGoing == true ); aServerSem->release(); aControlGroup->destroySemaphore( aServerSem ); aServerSem = NULLPTR; aControlGroup->destroySemaphore( aClientSem ); aClientSem = NULLPTR; Memory::destroyStorage( aTransfer ); aTransfer = NULLPTR; } catch( SemaphoreExceptionRef aSemExcp ) { cerr << "Semaphore Exception Received" << endl; handleException(aSemExcp); } catch( AssertionRef aAssert ) { handleAssertion(aAssert); } catch( ExceptionRef aException ) { handleException(aException); } catch(...) { cerr << "Unknown exception received" << endl; } cout << "Server process exiting." << endl; if( aTransfer != NULLPTR ) { Memory::destroyStorage( aTransfer ); aTransfer = NULLPTR; } else { ; // do nothing } if( aControlGroup != NULLPTR ) { if( aServerSem != NULLPTR ) { aControlGroup->destroySemaphore( aServerSem ); aServerSem = NULLPTR; } else { ; // do nothing } if( aClientSem != NULLPTR ) { aControlGroup->destroySemaphore( aClientSem ); aClientSem = NULLPTR; } else { ; // do nothing } delete aControlGroup; } } catch( NullPointerException aException ) { cerr << "Received NullPointerException!" << endl; handleException(aException); } catch( AssertionRef aAssert ) { handleAssertion(aAssert); } catch( ExceptionRef aException ) { handleException(aException); } catch( std::exception & e ) { cerr << e.what() << endl; } catch( ... ) { cerr << "Unknown exception." << endl; } return 0; } // // Some utility functions // // // Error handlers // void handleAssertion( AssertionCref aAssert ) { cerr << aAssert.getFile() << ":" << aAssert.getLine() << ":" << "Assertion: "; if( aAssert.getType() == Assertion::NEVERGETHERE ) { cerr << "NEVER_GET_HERE"; } else { if( aAssert.getType() == Assertion::REQUIRE ) { cerr << "REQUIRE"; } else if( aAssert.getType() == Assertion::ENSURE ) { cerr << "ENSURE"; } else if( aAssert.getType() == Assertion::CHECK ) { cerr << "CHECK"; } else { cerr << "ASSERT"; } cerr << "( " << aAssert.getWhy() << " )"; } cerr << endl; } void handleException( ExceptionCref aExcp ) { cerr << aExcp.getFile() << ":" << aExcp.getLine() << ":" << "Exception: " << aExcp.getWhy() << endl; } /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.5 $ $Date: 2000/08/31 22:49:01 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex21/Makefile.am0000664000000000000000000000133607137764224017166 0ustar # -*- Mode: makefile -*- # SUMMARY : # USAGE : make # AUTHOR : Christophe Prud'homme # ORG : Christophe Prud'homme # E-MAIL : # ORIG-DATE : 26-Apr-89 # LAST-MOD : $Id: Makefile.am,v 1.4 2000/07/27 07:45:24 prudhomm Exp $ # DESCRIPTION : # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = include bin_PROGRAMS = ex21s ex21c ex21s_SOURCES = examp21s.cpp ex21s_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la ex21c_SOURCES = examp21c.cpp ex21c_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la # Common rcs information do not modify # $Author: prudhomm $ # $Revision: 1.4 $ # $Date: 2000/07/27 07:45:24 $ # $Locker: $ libcorelinux-0.4.32/src/testdrivers/ex21/Makefile.in0000664000000000000000000004445707743170754017214 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY : # USAGE : make # AUTHOR : Christophe Prud'homme # ORG : Christophe Prud'homme # E-MAIL : # ORIG-DATE : 26-Apr-89 # LAST-MOD : $Id: Makefile.am,v 1.4 2000/07/27 07:45:24 prudhomm Exp $ # DESCRIPTION : # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = include bin_PROGRAMS = ex21s ex21c ex21s_SOURCES = examp21s.cpp ex21s_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la ex21c_SOURCES = examp21c.cpp ex21c_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la subdir = src/testdrivers/ex21 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = bin_PROGRAMS = ex21s$(EXEEXT) ex21c$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) am_ex21c_OBJECTS = examp21c.$(OBJEXT) ex21c_OBJECTS = $(am_ex21c_OBJECTS) ex21c_DEPENDENCIES = ${top_builddir}/src/classlibs/corelinux/libcl++.la ex21c_LDFLAGS = am_ex21s_OBJECTS = examp21s.$(OBJEXT) ex21s_OBJECTS = $(am_ex21s_OBJECTS) ex21s_DEPENDENCIES = ${top_builddir}/src/classlibs/corelinux/libcl++.la ex21s_LDFLAGS = DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/admin/depcomp am__depfiles_maybe = depfiles @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/examp21c.Po ./$(DEPDIR)/examp21s.Po CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ DIST_SOURCES = $(ex21c_SOURCES) $(ex21s_SOURCES) RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \ ps-recursive install-info-recursive uninstall-info-recursive \ all-recursive install-data-recursive install-exec-recursive \ installdirs-recursive install-recursive uninstall-recursive \ check-recursive installcheck-recursive DIST_COMMON = $(srcdir)/Makefile.in Makefile.am DIST_SUBDIRS = $(SUBDIRS) SOURCES = $(ex21c_SOURCES) $(ex21s_SOURCES) all: all-recursive .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc .lo .obj $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex21/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(bindir) @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f $(DESTDIR)$(bindir)/$$f"; \ rm -f $(DESTDIR)$(bindir)/$$f; \ done clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done ex21c$(EXEEXT): $(ex21c_OBJECTS) $(ex21c_DEPENDENCIES) @rm -f ex21c$(EXEEXT) $(CXXLINK) $(ex21c_LDFLAGS) $(ex21c_OBJECTS) $(ex21c_LDADD) $(LIBS) ex21s$(EXEEXT): $(ex21s_OBJECTS) $(ex21s_DEPENDENCIES) @rm -f ex21s$(EXEEXT) $(CXXLINK) $(ex21s_LDFLAGS) $(ex21s_OBJECTS) $(ex21s_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) core *.core distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/examp21c.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/examp21s.Po@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if (etags --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ else \ include_option=--include; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -f $$subdir/TAGS && \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ || exit 1; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" \ distdir=../$(distdir)/$$subdir \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(PROGRAMS) installdirs: installdirs-recursive installdirs-am: $(mkinstalldirs) $(DESTDIR)$(bindir) install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: info: info-recursive info-am: install-data-am: install-exec-am: install-binPROGRAMS install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \ clean-binPROGRAMS clean-generic clean-libtool clean-recursive \ ctags ctags-recursive distclean distclean-compile \ distclean-generic distclean-libtool distclean-recursive \ distclean-tags distdir dvi dvi-am dvi-recursive info info-am \ info-recursive install install-am install-binPROGRAMS \ install-data install-data-am install-data-recursive \ install-exec install-exec-am install-exec-recursive \ install-info install-info-am install-info-recursive install-man \ install-recursive install-strip installcheck installcheck-am \ installdirs installdirs-am installdirs-recursive \ maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \ pdf pdf-am pdf-recursive ps ps-am ps-recursive tags \ tags-recursive uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-info-am uninstall-info-recursive uninstall-recursive # Common rcs information do not modify # $Author: prudhomm $ # $Revision: 1.4 $ # $Date: 2000/07/27 07:45:24 $ # $Locker: $ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/ex8/0000775000000000000000000000000010771017615015045 5ustar libcorelinux-0.4.32/src/testdrivers/ex8/include/0000775000000000000000000000000010771017615016470 5ustar libcorelinux-0.4.32/src/testdrivers/ex8/include/Dictionary.hpp0000664000000000000000000000701010771017615021304 0ustar #if !defined(__DICTIONARY_HPP) #define __DICTIONARY_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__MAP_HPP) #include #endif #if !defined(__OBJECT_HPP) #include #endif #include using namespace std; CORELINUX_MAP( DwordIdentifier, string, less, NameMap ) ; /** The Dictionary manages the identifier to object name information. The names must be unique within case */ DECLARE_CLASS( Dictionary ); class Dictionary { public: // // Constructors and destructor // /// Default constructor Dictionary( void ); /// Copy constructor Dictionary( DictionaryCref ); /// Virtual destructor virtual ~Dictionary( void ); /// Assignment operator DictionaryRef operator=( DictionaryCref ); /// Equality operator bool operator==( DictionaryCref ) const; // // Accessors // /** Retrieves the identifier key for a name @param string const reference to name @return Identifier for object name */ DwordIdentifier getIdentifierForName( const string & ) const; /** Retrieves the object name for the identifier key @param Identifier const reference to key @return string the object name */ string getNameForIdentifier( DwordIdentifierCref ) const; /** Retrieves the Identifier to Name map @return NameMap const reference */ NameMapCref getMap( void ) const; // // Mutators // /// Add a new name with object identifier key void addName( const string &, DwordIdentifierCref ); /// Change the name of an object. Resolves key internally. void changeName( const string &, const string & ); /// Change the name of an object given its identifier key void changeName( DwordIdentifierCref , const string & ); /// Removes the entry from the dictionary void removeName( const string & ); /// Removes the entry from the dictionary void removeName( DwordIdentifierCref ); protected: private: NameMap theNameMap; /// The Identifier to Name map. }; #endif // if !defined(__DICTIONARY_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.4 $ $Date: 2000/08/31 22:47:56 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex8/include/Object.hpp0000664000000000000000000000445107057107122020407 0ustar #if !defined(__OBJECT_HPP) #define __OBJECT_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif /** Object is nothing really, I needed something for the example. */ DECLARE_CLASS( Object ); class Object { public: // // Constructors and destructor // /// Default constructor requires ID Object( DwordIdentifierCref ); /// Virtual destructor virtual ~Object( void ); // // Operator overloads // /// Equality operator bool operator==( ObjectCref ) const; // // Accessors // /** Retrieves the identifier of the object instance @return Identifier const reference */ DwordIdentifierCref getIdentity( void ) const; protected: // // Constructors // /// Default constructor Object( void ); /// Copy constructor Object( ObjectCref ); // // Operator overloads // /// Assignment operator ObjectRef operator=( ObjectCref ); private: DwordIdentifier theIdentity; /// The Object ID }; #endif /* Common rcs information do not modify $Author: frankc $ $Revision: 1.3 $ $Date: 2000/03/01 03:28:18 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex8/include/Modeler.hpp0000664000000000000000000000752510771017615020601 0ustar #if !defined(__MODELER_HPP) #define __MODELER_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__MAP_HPP) #include #endif #if !defined(__VECTOR_HPP) #include #endif #if !defined(__OBJECT_HPP) #include #endif using namespace std; CORELINUX_VECTOR( DwordIdentifier , IdVector ) ; CORELINUX_MAP( DwordIdentifier, IdVector, less, IdMap ) ; /** The Modeler encapsulates the associations between object parent and child relationships. */ DECLARE_CLASS( Modeler ); class Modeler { public: // // Constructors and destructor // /// Default constructor Modeler( void ); /// Copy constructor Modeler( ModelerCref ); /// Virtual destructor virtual ~Modeler( void ); // // Operator overloads // /// Assignment operator ModelerRef operator=( ModelerCref ); /// Equality operator bool operator==( ModelerCref ) const; // // Accessors // /** Retrieves the count of parents for this identifier @param Identifier const reference @return Count - the number of parents */ CORELINUX(Count) getParentCount( DwordIdentifierCref ) const; /** Retrieves a vector of parents for this identifier @param Identifier const reference @return IdVector - std::vector of parents @exception Exception if id has no parents */ IdVector getParents( DwordIdentifierCref ) const throw(CORELINUX(Exception)) ; // // Mutators // /** Creates a parent relationship @param Identifier const reference to child @param Identifier const reference to parent */ void addParent( DwordIdentifierCref, DwordIdentifierCref ); /** Removes a parent relationship @param Identifier const reference to child @param Identifier const reference to parent */ void removeParent( DwordIdentifierCref, DwordIdentifierCref ); /** Removes all parent relationships @param Identifier const reference to child */ void removeParents( DwordIdentifierCref ); /** Removes myself from any parent relationships @param Identifier const reference to object to dereference */ void removeChildren( DwordIdentifierCref ); protected: private: IdMap theParentsMap; /// The Parent relationship map }; #endif // if !defined(__MODELER_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.4 $ $Date: 2000/08/31 22:47:56 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex8/include/Makefile.am0000664000000000000000000000072707100671014020521 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 13:14:15 # LAST-MOD: 10-Apr-00 at 13:14:56 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc noinst_HEADERS = Dictionary.hpp Modeler.hpp Object.hpp ObjectFactory.hpp ObjectModel.hpplibcorelinux-0.4.32/src/testdrivers/ex8/include/Makefile.in0000664000000000000000000002300507743170761020544 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 13:14:15 # LAST-MOD: 10-Apr-00 at 13:14:56 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc noinst_HEADERS = Dictionary.hpp Modeler.hpp Object.hpp ObjectFactory.hpp ObjectModel.hpp subdir = src/testdrivers/ex8/include ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = DIST_SOURCES = HEADERS = $(noinst_HEADERS) DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.in Makefile.am all: all-am .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex8/include/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am info \ info-am install install-am install-data install-data-am \ install-exec install-exec-am install-info install-info-am \ install-man install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags uninstall uninstall-am uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/ex8/include/ObjectFactory.hpp0000664000000000000000000000632207057107122021736 0ustar #if !defined(__OBJECTFACTORY_HPP) #define __OBJECTFACTORY_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__OBJECT_HPP) #include #endif /** ObjectFactory is responsible for creating new instances of Objects, deleting Objects, or returning ones that already exists. */ DECLARE_CLASS( ObjectFactory ); class ObjectFactory { public: // // Destructor // /** Destructor */ ~ObjectFactory( void ); // // Factory methdods // /** Creates a new unique identifier @return Identifier */ static DwordIdentifier getNewIdentifier( void ); /** Creates a new object using the unique identifier @param DwordIdentifier @return Object const reference */ static ObjectCref createObject( DwordIdentifier ); /** Destroys a object given it's identifier @param DwordIdentifier - object id to destroy */ static void destroyObject( DwordIdentifier ); /** Destroys a object @param Object const reference - the object to destroy. */ static void destroyObject( ObjectCref ); /** Destroys all objects managed by this Factory. */ static void destroyAllObjects( void ); protected: private: // // Constructors are not allowed // /// Default constructor ObjectFactory( void ); /// Copy constructor ObjectFactory( ObjectFactoryCref ); // // Operator not allowed // /// Assignment operator ObjectFactoryRef operator=( ObjectFactoryCref ); /// Equality operator bool operator==( ObjectFactoryCref ) const; private: /// Current identifier marker static DwordIdentifier theCurrentIdentifier; }; #endif // if !defined(__OBJECTFACTORY_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.3 $ $Date: 2000/03/01 03:28:18 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex8/include/ObjectModel.hpp0000664000000000000000000001346510771017615021401 0ustar #if !defined(__OBJECTMODEL_HPP) #define __OBJECTMODEL_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__FACADE_HPP) #include #endif #if !defined(__OBJECT_HPP) #include #endif #include using namespace std; DECLARE_CLASS( Dictionary ); DECLARE_CLASS( Modeler ); DECLARE_TYPE( CORELINUX(Exception), NameExistException ); DECLARE_TYPE( CORELINUX(Exception), NameNotExistException ); /** ObjectModel is the concentrator, or Facade for the underlying subsystems for managing object creation, the name dictionary, and hierarchical relationships. */ DECLARE_CLASS( ObjectModel ); class ObjectModel : public CORELINUX(Facade) { public: // // Constructors and destructor // /** Default constructor requires a name for the Model instance @param string const reference */ ObjectModel( const string & ); /// Virtual destructor virtual ~ObjectModel( void ); // // Operator overloads // /** Equality operator @param ObjectModel const reference @return bool - true if same instance */ bool operator==( ObjectModelCref ) const; // // Accessors // /** Retrieves the ObjectModel instance name @return string const reference */ const string & getName( void ) const; // // Mutators // // // Service calls // /** Create object adds a object to the model, making "Root" the default parent @param string const reference to object name @exception NameExistsException if the name being asked to create already exists */ virtual void createObject( const string & ) throw (NameExistException); /** Destroy an existing object. @param string const reference to object name @exception NameNotExistException if the name being asked to destroy does not exists */ virtual void destroyObject( const string & ) throw (NameNotExistException); /** Change the name of an object @param string const reference to old name @param string const reference to new name @exception NameNotExistException if the old name does not exists @exception NameExistsException if the new name already exists */ virtual void changeName( const string &, const string & ) throw( NameExistException, NameNotExistException ); /** Add parent to an object @param string const reference to child name @param string const reference to parent name @exception NameNotExistException if the either name does not exists */ virtual void addParent( const string &, const string & ) throw (NameNotExistException); /** Remove a parent from an object @param string const reference to child name @param string const reference to parent name @exception NameNotExistException if the either name does not exists */ virtual void removeParent( const string &, const string & ) throw (NameNotExistException); /** Displays information on a particular object. @param string const reference to object name @param ostream reference to output stream @exception NameNotExistException if the name does not exists */ virtual void display( const string &, ostream & ) throw (NameNotExistException); /** Displays information on the entire model @param ostream reference to output stream */ virtual void display( ostream & ); protected: /// Default constructor ObjectModel( void ); /// Copy constructor ObjectModel( ObjectModelCref ); /// Assignment operator ObjectModelRef operator=( ObjectModelCref ); private: ObjectCref theRoot; /// The root object of the model string theName; /// The ObjectModel name DictionaryPtr theDictionary; /// The Object name dictionary ModelerPtr theModeler; /// The object relationships }; #endif // if !defined(__OBJECTMODEL_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/02/10 14:32:21 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex8/ObjectModel.cpp0000664000000000000000000002070107057107122017734 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif using namespace corelinux; #if !defined(__OBJECTMODEL_HPP) #include #endif #if !defined(__OBJECTFACTORY_HPP) #include #endif #if !defined( __DICTIONARY_HPP ) #include #endif #if !defined( __MODELER_HPP ) #include #endif // // Default constructor // static Object dummy(0); ObjectModel::ObjectModel( void ) : Facade(), theRoot( dummy ), theName( "" ), theDictionary( NULLPTR ), theModeler( NULLPTR ) { NEVER_GET_HERE; } // // Proper constructor // ObjectModel::ObjectModel( const string &aName ) : Facade(), theRoot ( ObjectFactory::createObject ( ObjectFactory::getNewIdentifier() ) ), theName( aName ), theDictionary( new Dictionary ), theModeler( new Modeler ) { ENSURE( theDictionary != NULLPTR ); ENSURE( theModeler != NULLPTR ); ENSURE( theRoot.getIdentity() != dummy.getIdentity() ); theDictionary->addName("Root", theRoot.getIdentity() ); } // // Copy constructor // ObjectModel::ObjectModel( ObjectModelCref aRef ) : Facade( aRef ), theRoot( dummy ), theName( "" ), theDictionary( NULLPTR ), theModeler( NULLPTR ) { NEVER_GET_HERE; } // // Destructor // ObjectModel::~ObjectModel( void ) { ObjectFactory::destroyAllObjects(); if( theDictionary != NULLPTR ) { delete theDictionary; theDictionary = NULLPTR; } else { NEVER_GET_HERE; } if( theModeler != NULLPTR ) { delete theModeler; theModeler = NULLPTR; } else { NEVER_GET_HERE; } } // // Assignment operator // ObjectModelRef ObjectModel::operator=( ObjectModelCref ) { NEVER_GET_HERE; return (*this); } // // Equality operator // bool ObjectModel::operator==( ObjectModelCref aRef ) const { return (theName == aRef.getName() ); } // // Retrieve my name // const string & ObjectModel::getName( void ) const { return theName; } // // Create a new object // void ObjectModel::createObject( const string &aName ) throw (NameExistException) { Identifier aId( theDictionary->getIdentifierForName(aName) ); // // If the object name doesn't already exist we create it // add it's name to the dictionary, and tie a parent to // the root. // if( aId == DwordIdentifier(0) ) { ObjectCref aObject ( ObjectFactory::createObject( ObjectFactory::getNewIdentifier() ) ); theDictionary->addName( aName, aObject.getIdentity() ); theModeler->addParent( aObject.getIdentity(), theRoot.getIdentity() ); } // // Otherwise collision alert // else { string emsg(aName); emsg += " already exists in dictionary."; throw NameExistException(emsg.data(),LOCATION); } } // // Destroy an object // void ObjectModel::destroyObject( const string &aName ) throw (NameNotExistException) { DwordIdentifier aId( theDictionary->getIdentifierForName(aName) ); // // If the name exists, we clean it up // if( aId == theRoot.getIdentity() ) { cerr << "Can't destroy Root" << endl; } else if( aId != DwordIdentifier(0) ) { theModeler->removeParents( aId ); theModeler->removeChildren( aId ); theDictionary->removeName( aId ); ObjectFactory::destroyObject( aId ); } // // Otherwise we say we can't find it // else { string emsg(aName); emsg += " does not exists in dictionary."; throw NameNotExistException(emsg.data(),LOCATION); } } // // Change the name of the object // void ObjectModel::changeName ( const string &aOldName, const string &aNewName ) throw( NameExistException, NameNotExistException ) { DwordIdentifier aIdOld( theDictionary->getIdentifierForName(aOldName) ); DwordIdentifier aIdNew( theDictionary->getIdentifierForName(aNewName) ); // // We validate that the old name exists and the new // name is not taken. // if( aIdOld == DwordIdentifier(0) ) { string emsg(aOldName); emsg += " does not exists in dictionary."; throw NameNotExistException(emsg.data(),LOCATION); } else if( aIdNew != DwordIdentifier(0) ) { string emsg(aNewName); emsg += " already exists in dictionary."; throw NameExistException(emsg.data(),LOCATION); } // // All clear, change the name // else { theDictionary->changeName( aIdOld, aNewName ); } } // // Add a parent to an object // void ObjectModel::addParent ( const string &aChild, const string &aParent ) throw (NameNotExistException) { DwordIdentifier aIdChild( theDictionary->getIdentifierForName(aChild) ); DwordIdentifier aIdParent( theDictionary->getIdentifierForName(aParent) ); if( aIdChild == DwordIdentifier(0) ) { string emsg(aChild); emsg += " does not exists in dictionary."; throw NameNotExistException(emsg.data(),LOCATION); } else if( aIdParent == DwordIdentifier(0) ) { string emsg(aParent); emsg += " does not exists in dictionary."; throw NameNotExistException(emsg.data(),LOCATION); } else { theModeler->addParent( aIdChild, aIdParent ); } } // // Removes parent from object // void ObjectModel::removeParent ( const string &aChild, const string &aParent ) throw (NameNotExistException) { DwordIdentifier aIdChild( theDictionary->getIdentifierForName(aChild) ); DwordIdentifier aIdParent( theDictionary->getIdentifierForName(aParent) ); if( aIdChild == DwordIdentifier(0) ) { string emsg(aChild); emsg += " does not exists in dictionary."; throw NameNotExistException(emsg.data(),LOCATION); } else if( aIdParent == DwordIdentifier(0) ) { string emsg(aParent); emsg += " does not exists in dictionary."; throw NameNotExistException(emsg.data(),LOCATION); } else { theModeler->removeParent( aIdChild, aIdParent ); } } // // Dump information about object // void ObjectModel::display( const string &aObject, ostream &aStream ) throw (NameNotExistException) { DwordIdentifier aId( theDictionary->getIdentifierForName(aObject) ); if( aId != DwordIdentifier(0) ) { Count aParentCount( theModeler->getParentCount(aId) ); aStream << aObject << " is a object with " << aParentCount << " parents :" << endl; if( aParentCount > 0 ) { IdVector aParentVector( theModeler->getParents(aId) ); for( Count x=0; x < aParentCount; ++x ) { aStream << "Parent " << x+1 << " : " << theDictionary->getNameForIdentifier( aParentVector[x] ) << endl; } } } else { string emsg(aObject); emsg += " does not exists in dictionary."; throw NameNotExistException(emsg.data(),LOCATION); } } void ObjectModel::display( ostream &aStream ) { aStream << "Dumping all objects in " << this->getName() << endl; NameMapCref aMap( theDictionary->getMap() ); NameMapConstIterator begin( aMap.begin() ); NameMapConstIterator end( aMap.end() ); while( begin != end ) { if( (*begin).first != theRoot.getIdentity() ) { this->display( (*begin).second, aStream ); } else { ; // do nothing } ++begin; } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/03/01 03:28:18 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex8/examp8.cpp0000664000000000000000000002271107153560235016757 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** \example examp8.cpp This example is to show use of the Facade pattern, our Facade (ObjectModel) is the application interface to the following: Dictionary(D) - maintains a collection of names for objects in the system. Names can be added and deleted from the Dictionary but there can be no collisions. The following methods are used: addName(string); changeName( string, string ); removeName( string ); getIdentifierForName( string ); getNameForIdentifier( Identifier ); Factory(F) - creates and destroys objects. If the object being asked for create is already in existence, it returns that instance. createObject( Identifier ); destroyObject( Identifier ); Modeler(M) - manages links between parents and children addParent( Identifier, Identifier ); removeParent( Identifier, Identifier ); getParents( Identifier ); With the above, ObjectModel is all the user needs to create and maintain a hierarchy of objects. createObject("name"); // Uses D F, and M destroyObject("name"); // Uses D, F, and M changeName("oldname","newname"); // Uses D addParent("childname","parentname"); // Uses D, F, and M removeParent("childname","parentname");// Uses D, F, and M display("name"); // Uses D, F, and M Objects that are created have a parent ("Root") automatically assigned to them. This parent stays with them regardless of other relationships. For your own experimentation, you can change the semantics around but keep in mind they can get a little hairy, for example: 1. Is it a cylical or acylical? 2. Is it multi-inheritence or single? 3. What is visibility? */ #include #include using namespace corelinux; #include #include // // In module function prototypes // int main( void ); void displayMenu( void ); Int getCommand( void ); void doWork( ObjectModelRef ); // // Functions that work with Engine types // void handleAssertion( AssertionCref ); void handleException( ExceptionCref ); int main( void ) { // // Practice gracefull exception management // cout << endl; try { ObjectModel aModel("The Main Model"); doWork(aModel); } catch( AssertionRef aAssert ) { handleAssertion(aAssert); } catch( ExceptionRef aException ) { handleException(aException); } catch( std::exception & e ) { cerr << e.what() << endl; } catch( ... ) { cerr << "Unknown exception." << endl; } return 0; } void displayMenu( void ) { cout << endl; cout << "\tCreate an object 1" << endl; cout << "\tDelete an object 2" << endl; cout << "\tChange object name 3" << endl; cout << "\tAdd a parent to an objet 4" << endl; cout << "\tRemove a parent from an object 5" << endl; cout << "\tDisplay information on a object 6" << endl; cout << "\tDisplay the entire model 7" << endl; cout << "\tQuit the example 8" << endl; cout << endl; } Int getCommand( void ) { displayMenu(); Int aOption; cout << "Enter the option number on the right to execute :"; cin >> aOption; return aOption; } void doWork( ObjectModelRef aModel ) { bool keepWorking(true); do { Int aCommand( getCommand() ); switch( aCommand ) { // // Create a new object // case 1: { string aNewName; cout << "Enter the name of the object to create : "; cin >> aNewName; if( aNewName.empty() == false ) { aModel.createObject(aNewName); cout << aNewName << " created!" << endl; } else { cerr << "Not a valid name" << endl; } break; } // // Delete an object // case 2: { string aName; cout << "Enter the name of the object to delete : "; cin >> aName; if( aName.empty() == false ) { aModel.destroyObject(aName); cout << aName << " deleted!" << endl; } else { cerr << "Not a valid name" << endl; } break; } // // Change object name // case 3: { string oldName,newName; cout << "Enter the old name of the object : "; cin >> oldName; cout << "Enter the new name for the object : "; cin >> newName; if( oldName.empty() == false && newName.empty() == false ) { aModel.changeName(oldName,newName); cout << oldName << " changed to " << newName << endl; } else { cerr << "Not a valid name" << endl; } break; } // // Add a parent to an object // case 4: { string myName,parName; cout << "Enter the object name : "; cin >> myName; cout << "Enter the new parent object name : "; cin >> parName; if( myName.empty() == false && parName.empty() == false ) { aModel.addParent(myName,parName); cout << parName << " added as parent to " << myName << endl; } else { cerr << "Not a valid name" << endl; } break; } // // Remove a parent from an object // case 5: { string myName,parName; cout << "Enter the object name : "; cin >> myName; cout << "Enter the parent name to remove : "; cin >> parName; if( myName.empty() == false && parName.empty() == false ) { aModel.removeParent(myName,parName); cout << parName << " removed as parent to " << myName << endl; } else { cerr << "Not a valid name" << endl; } break; } // // Display object information // case 6: { string aName; cout << "Enter the name of the object to display : "; cin >> aName; if( aName.empty() == false ) { aModel.display(aName,cout); } else { cerr << "Not a valid name" << endl; } break; } // // Display entire model // case 7: aModel.display(cout); break; case 8: keepWorking=false; break; default: ; //do nothing break; } } while( keepWorking == true ); } // // Peform default (just show it) // void handleAssertion( AssertionCref aAssert ) { cerr << aAssert.getFile() << ":" << aAssert.getLine() << ":" << "Assertion: "; if( aAssert.getType() == Assertion::NEVERGETHERE ) { cerr << "NEVER_GET_HERE"; } else { if( aAssert.getType() == Assertion::REQUIRE ) { cerr << "REQUIRE"; } else if( aAssert.getType() == Assertion::ENSURE ) { cerr << "ENSURE"; } else if( aAssert.getType() == Assertion::CHECK ) { cerr << "CHECK"; } else { cerr << "ASSERT"; } cerr << "( " << aAssert.getWhy() << " )"; } cerr << endl; } void handleException( ExceptionCref aExcp ) { cerr << aExcp.getFile() << ":" << aExcp.getLine() << ":" << "Exception: " << aExcp.getWhy() << endl; } /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.2 $ $Date: 2000/08/31 22:47:57 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex8/Modeler.cpp0000664000000000000000000001201607057107122017134 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__MODELER_HPP) #include #endif using namespace corelinux; // // Default Constructor // Modeler::Modeler( void ) { ; // do nothing } // // Copy constructor // Modeler::Modeler( ModelerCref aRef ) : theParentsMap( aRef.theParentsMap ) { ; // do nothing } // // Destructor // Modeler::~Modeler( void ) { IdMapIterator begin( theParentsMap.begin() ); IdMapIterator end( theParentsMap.end() ); while( begin != end ) { (*begin).second.clear(); ++begin; } theParentsMap.clear(); } // // Assignment operator // ModelerRef Modeler::operator=( ModelerCref aRef ) { theParentsMap = aRef.theParentsMap; return (*this); } // // Equality operator // bool Modeler::operator==( ModelerCref aRef ) const { return (this == &aRef ); } Count Modeler::getParentCount( DwordIdentifierCref aId ) const { Count aCount(0); IdMapConstIterator fItr( theParentsMap.find(aId) ); if( fItr != theParentsMap.end() ) { aCount = (*fItr).second.size(); } else { ; // do nothing } return aCount; } IdVector Modeler::getParents( DwordIdentifierCref aId ) const throw(Exception) { IdVector aVector; IdMapConstIterator fItr( theParentsMap.find(aId) ); if( fItr == theParentsMap.end() ) { throw Exception("Id has no parents",LOCATION); } else { aVector = (*fItr).second; } return aVector; } // // Add a parent to a element // void Modeler::addParent( DwordIdentifierCref aId, DwordIdentifierCref aParent ) { IdMapIterator fItr( theParentsMap.find(aId) ); if( fItr != theParentsMap.end() ) { (*fItr).second.push_back(aParent); } else { IdVector aVec; aVec.push_back(aParent); theParentsMap[aId] = aVec; } } // // Remove a parent from a element // void Modeler::removeParent( DwordIdentifierCref aId, DwordIdentifierCref aParent ) { IdMapIterator fItr( theParentsMap.find(aId) ); if( fItr != theParentsMap.end() ) { IdVectorIterator begin( (*fItr).second.begin() ); IdVectorIterator end( (*fItr).second.end() ); while( begin != end ) { if( (*begin) == aParent ) { (*fItr).second.erase(begin); begin = end; } else { ++begin; } } if( (*fItr).second.size() == 0 ) { theParentsMap.erase(fItr); } else { ; // do nothing } } else { ; // do nothing } } // // Remove all parents from a element // void Modeler::removeParents( DwordIdentifierCref aId ) { IdMapIterator fItr( theParentsMap.find(aId) ); if( fItr != theParentsMap.end() ) { (*fItr).second.clear(); theParentsMap.erase(fItr); } else { ; // do nothing } } // // Find where I am a parent, and remove me from // those lists // void Modeler::removeChildren( DwordIdentifierCref aId ) { IdMapIterator begin( theParentsMap.begin() ); IdMapIterator end( theParentsMap.end() ); IdVector aList; // // Searh the child to parent list // while( begin != end ) { IdVectorIterator ibegin( (*begin).second.begin() ); IdVectorIterator iend( (*begin).second.end() ); // // Look for me in the parent list // while( ibegin != iend ) { // // Note my children // if( (*ibegin) == aId ) { aList.push_back((*begin).first); ibegin = iend; } else { ++ibegin; } } ++begin; } // // If I am a parent to any then get // myself removed // if( aList.size() != 0 ) { IdVectorIterator ibegin( aList.begin() ); IdVectorIterator iend( aList.end() ); while( ibegin != iend ) { this->removeParent( (*ibegin), aId ); ++ibegin; } aList.clear(); } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/03/01 03:28:18 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex8/Makefile.am0000664000000000000000000000111007137764263017104 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 08:34:22 # LAST-MOD: 23-Apr-00 at 16:14:25 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = include bin_PROGRAMS = ex8 ex8_SOURCES = Dictionary.cpp Object.cpp Modeler.cpp ObjectFactory.cpp ObjectModel.cpp examp8.cpp ex8_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la libcorelinux-0.4.32/src/testdrivers/ex8/Makefile.in0000664000000000000000000004444207743170761017131 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 08:34:22 # LAST-MOD: 23-Apr-00 at 16:14:25 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = include bin_PROGRAMS = ex8 ex8_SOURCES = Dictionary.cpp Object.cpp Modeler.cpp ObjectFactory.cpp ObjectModel.cpp examp8.cpp ex8_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la subdir = src/testdrivers/ex8 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = bin_PROGRAMS = ex8$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) am_ex8_OBJECTS = Dictionary.$(OBJEXT) Object.$(OBJEXT) Modeler.$(OBJEXT) \ ObjectFactory.$(OBJEXT) ObjectModel.$(OBJEXT) examp8.$(OBJEXT) ex8_OBJECTS = $(am_ex8_OBJECTS) ex8_DEPENDENCIES = ${top_builddir}/src/classlibs/corelinux/libcl++.la ex8_LDFLAGS = DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/admin/depcomp am__depfiles_maybe = depfiles @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/Dictionary.Po ./$(DEPDIR)/Modeler.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/Object.Po ./$(DEPDIR)/ObjectFactory.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/ObjectModel.Po ./$(DEPDIR)/examp8.Po CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ DIST_SOURCES = $(ex8_SOURCES) RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \ ps-recursive install-info-recursive uninstall-info-recursive \ all-recursive install-data-recursive install-exec-recursive \ installdirs-recursive install-recursive uninstall-recursive \ check-recursive installcheck-recursive DIST_COMMON = $(srcdir)/Makefile.in Makefile.am DIST_SUBDIRS = $(SUBDIRS) SOURCES = $(ex8_SOURCES) all: all-recursive .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc .lo .obj $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex8/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(bindir) @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f $(DESTDIR)$(bindir)/$$f"; \ rm -f $(DESTDIR)$(bindir)/$$f; \ done clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done ex8$(EXEEXT): $(ex8_OBJECTS) $(ex8_DEPENDENCIES) @rm -f ex8$(EXEEXT) $(CXXLINK) $(ex8_LDFLAGS) $(ex8_OBJECTS) $(ex8_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) core *.core distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Dictionary.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Modeler.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Object.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ObjectFactory.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ObjectModel.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/examp8.Po@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if (etags --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ else \ include_option=--include; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -f $$subdir/TAGS && \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ || exit 1; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" \ distdir=../$(distdir)/$$subdir \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(PROGRAMS) installdirs: installdirs-recursive installdirs-am: $(mkinstalldirs) $(DESTDIR)$(bindir) install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: info: info-recursive info-am: install-data-am: install-exec-am: install-binPROGRAMS install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \ clean-binPROGRAMS clean-generic clean-libtool clean-recursive \ ctags ctags-recursive distclean distclean-compile \ distclean-generic distclean-libtool distclean-recursive \ distclean-tags distdir dvi dvi-am dvi-recursive info info-am \ info-recursive install install-am install-binPROGRAMS \ install-data install-data-am install-data-recursive \ install-exec install-exec-am install-exec-recursive \ install-info install-info-am install-info-recursive install-man \ install-recursive install-strip installcheck installcheck-am \ installdirs installdirs-am installdirs-recursive \ maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \ pdf pdf-am pdf-recursive ps ps-am ps-recursive tags \ tags-recursive uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-info-am uninstall-info-recursive uninstall-recursive # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/ex8/Dictionary.cpp0000664000000000000000000001046407057107122017657 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__DICTIONARY_HPP) #include #endif #if !defined(__MAP_HPP) #include #endif using namespace corelinux; // // Default Constructor // Dictionary::Dictionary( void ) { ; // do nothing } // // Copy constructor // Dictionary::Dictionary( DictionaryCref aRef ) : theNameMap( aRef.theNameMap ) { ; // do nothing } // // Destructor // Dictionary::~Dictionary( void ) { theNameMap.clear(); } // // Assignment operator // DictionaryRef Dictionary::operator=( DictionaryCref aRef ) { theNameMap = aRef.theNameMap; return (*this); } // // Equality operator // bool Dictionary::operator==( DictionaryCref aRef ) const { return (this == &aRef ); } // // Retrieve the identifier associated to the name // DwordIdentifier Dictionary::getIdentifierForName( const string &aName ) const { DwordIdentifier aId(0); NameMapConstIterator begin( theNameMap.begin() ); NameMapConstIterator end( theNameMap.end() ); while( begin != end ) { if( (*begin).second == aName ) { aId = (*begin).first; begin = end; } else { ++begin; } } return aId; } // // Retrieve the name associated to the identifier // string Dictionary::getNameForIdentifier( DwordIdentifierCref aId ) const { NameMapConstIterator fItr( theNameMap.find(aId) ); string aName(""); if( fItr != theNameMap.end() ) { aName = (*fItr).second; } else { ; // do nothing } return aName; } // // Get the entire map // NameMapCref Dictionary::getMap( void ) const { return theNameMap; } // // Add an element to the dictionary map // void Dictionary::addName( const string &aName, DwordIdentifierCref aId ) { if( this->getNameForIdentifier( aId ) == "" && this->getIdentifierForName( aName ) == DwordIdentifier(0) ) { theNameMap[aId] = aName; } else { ; // do nothing } } // // Change the name of an existing element // void Dictionary::changeName ( const string &aOldName, const string &aNewName ) { DwordIdentifier aOldId( this->getIdentifierForName( aOldName ) ); if( aOldId != DwordIdentifier(0) && this->getIdentifierForName( aNewName ) == DwordIdentifier(0) ) { theNameMap[aOldId] = aNewName; } else { ; // do nothing } } // // Change the name given an Id and a new name // void Dictionary::changeName( DwordIdentifierCref aId, const string &aNewName ) { if( this->getNameForIdentifier( aId ) != "" && this->getIdentifierForName( aNewName ) == DwordIdentifier(0) ) { theNameMap[aId] = aNewName; } else { ; // do nothing } } // // Remove a element given it's name // void Dictionary::removeName( const string &aName ) { DwordIdentifier aId( this->getIdentifierForName( aName ) ); if( aId != DwordIdentifier(0) ) { theNameMap.erase( theNameMap.find(aId) ); } else { ; // do nothing } } // // Remove a element given it's identifier // void Dictionary::removeName( DwordIdentifierCref aId ) { NameMapIterator fItr( theNameMap.find(aId) ); if( fItr != theNameMap.end() ) { theNameMap.erase( fItr ); } else { ; // do nothing } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/03/01 03:28:18 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex8/Object.cpp0000664000000000000000000000335507057107122016761 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__OBJECT_HPP) #include #endif using namespace corelinux; // // Default constructor // Object::Object( void ) : theIdentity(0) { NEVER_GET_HERE; } // // Proper constructor // Object::Object( DwordIdentifierCref aId ) : theIdentity( aId ) { ; // do nothing } // // Copy constructor // Object::Object( ObjectCref ) { ; // won't ever get here } // // Destructor // Object::~Object( void ) { theIdentity=0; } // // Assignment operator // ObjectRef Object::operator=( ObjectCref ) { NEVER_GET_HERE; return (*this); // won't happen } // // Equality operator // bool Object::operator==( ObjectCref aRef ) const { return (getIdentity() == aRef.getIdentity()); } // // Retrieves my id // DwordIdentifierCref Object::getIdentity( void ) const { return theIdentity; } libcorelinux-0.4.32/src/testdrivers/ex8/ObjectFactory.cpp0000664000000000000000000000650010771017615020310 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__MAP_HPP) #include #endif #if !defined(__OBJECTFACTORY_HPP) #include #endif using namespace corelinux; using namespace std; CORELINUX_MAP( DwordIdentifier, ObjectPtr, less , ObjectMap ); DwordIdentifier ObjectFactory::theCurrentIdentifier(0); static ObjectMap gObjects; // // Default constructor // ObjectFactory::ObjectFactory( void ) { ; // won't ever get here } // // Copy constructor // ObjectFactory::ObjectFactory( ObjectFactoryCref ) { ; // won't ever get here } // // Destructor // ObjectFactory::~ObjectFactory( void ) { ; // no instance no cry } // // Assignment operator // ObjectFactoryRef ObjectFactory::operator=( ObjectFactoryCref ) { return (*this); // won't happen } // // Equality operator // bool ObjectFactory::operator==( ObjectFactoryCref ) const { return false; } // // Creates a new identifier // DwordIdentifier ObjectFactory::getNewIdentifier( void ) { return (++theCurrentIdentifier); } // // Creates a object, or returns the existing one // ObjectCref ObjectFactory::createObject( DwordIdentifier aIdentifier ) { ObjectPtr aObject( NULLPTR ); ObjectMapIterator fItr( gObjects.find( aIdentifier ) ); if( fItr == gObjects.end() ) { DwordIdentifier aId( aIdentifier ); aObject = new Object( aId ); gObjects[aId] = aObject; } else { aObject = (*fItr).second; } return (*aObject); } // // Destroys an existing object if it is cached // void ObjectFactory::destroyObject( DwordIdentifier aIdentifier ) { ObjectMapIterator fItr( gObjects.find( aIdentifier ) ); if( fItr != gObjects.end() ) { delete (*fItr).second; gObjects.erase( fItr ); } else { // // Depending on whether this is acting as a cache // or fully ephemeral the missing object does not // mean an error. If you want it to, uncomment // the last line // // NEVER_GET_HERE; } } // // Destroys ALL the objects // void ObjectFactory::destroyAllObjects( void ) { ObjectMapIterator begin( gObjects.begin() ); ObjectMapIterator end( gObjects.end() ); while( begin != end ) { delete (*begin).second; ++begin; } gObjects.erase(gObjects.begin(),end); } /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.3 $ $Date: 2000/08/31 22:47:57 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex13/0000775000000000000000000000000010771017616015122 5ustar libcorelinux-0.4.32/src/testdrivers/ex13/examp13.cpp0000664000000000000000000002320610771017616017107 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** \example examp13.cpp This example is to show use of the SemaphoreGroup and Semaphore. For this test we use the MutexSemaphoreGroup and related type to emulate a double exchange example: Thread 1 (main) : Performs the housekeeping and data source Thread 2 (child) : Is the data sink Both threads have a control semaphore which the other thread uses to control access to a resource , in this case the the data counter gvalue. They are also used as a synchronization mechanism, A third semaphore is used as a flag/signal to indicate that the threads should drop out of the source->sink loop. */ // // For clone() // extern "C" { #include #include #include } #include #include #include using namespace corelinux; using namespace std; #include #include // // In module function prototypes // int main( void ); // // General Functions // void handleAssertion( AssertionCref ); void handleException( ExceptionCref ); void handleStatus( SemaphoreOperationStatus ); // // Thread entry point declarations // Int threadTest( VoidPtr ); // // Global data // const int STACKSIZE(8192); // Thread stack size SemaphoreIdentifier parentSemId(0); // Identifier for control SemaphoreIdentifier childSemId(1); // Identifier for control SemaphoreIdentifier completeSemId(2); // Identifier for control ThreadIdentifier badThread(-1); // Use for testing Dword gvalue(0); // Resource being protected MutexSemaphoreGroupPtr agGroup( NULLPTR ); // // Main entry point // int main( void ) { cout << endl; AbstractSemaphorePtr amutexParent( NULLPTR ); AbstractSemaphorePtr amutexChild( NULLPTR ); AbstractSemaphorePtr amutexFlag( NULLPTR ); // // Practice graceful exception management // try { // // Setup our SemaphoreGroup and control Semaphores // agGroup = new MutexSemaphoreGroup ( 3, OWNER_ALL | GROUP_ALL | PUBLIC_ALL ); // // Start with two (2) locks enabled, and one not // the flag. // amutexParent = agGroup->createLockedSemaphore ( parentSemId, FAIL_IF_EXISTS ); amutexChild = agGroup->createLockedSemaphore ( childSemId, FAIL_IF_EXISTS ); amutexFlag = agGroup->createSemaphore ( completeSemId, FAIL_IF_EXISTS ); // // Setup thread stack and point to bottom // VoidPtr *newstack((VoidPtr*) new Byte[STACKSIZE]); newstack = (void **)(STACKSIZE + (char *) newstack); // // Spawn thread // threadTest - entry point int (fn*func)(void*arg) // newstack - bos // flags - Share everything // agGroup - SemaphoreGroupPtr (arg) // ThreadIdentifier aChildId = clone ( threadTest, newstack, CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | SIGCHLD, agGroup ); // // Check for errors // if( aChildId != badThread ) { // // Signal handling would be a better mechanism, but for now // loop a few // bool childError( false ); ThreadIdentifier myId(Thread::getThreadIdentifier()); for( int x = 0; x < 10 ; ++x ) { if( amutexFlag->isLocked() == false ) { // // Do some work // ++gvalue; cout << "[" << IntRef(myId) << "]\tWriting resource = " << gvalue << endl; // Prepare the last resource read if( gvalue == 10 ) { amutexFlag->lockWithWait(); amutexParent->release(); } else { amutexParent->release(); amutexChild->lockWithWait(); } } else { childError = true; cout << "Child aborted run." << endl; x = 10; } } Int aStatus(0); waitpid(aChildId.getScalar(),&aStatus,0); // // Clear semaphores // amutexParent->release(); amutexChild->release(); amutexFlag->release(); } else { cerr << "Error number from thread" << Thread::getKernelError() << endl; handleStatus(amutexParent->release()); } // // Housekeeping // agGroup->destroySemaphore(amutexChild); amutexChild = NULLPTR; agGroup->destroySemaphore(amutexParent); amutexParent = NULLPTR; agGroup->destroySemaphore(amutexFlag); amutexParent = NULLPTR; delete agGroup; agGroup = NULLPTR; } catch( SemaphoreExceptionRef aRef ) { handleException(aRef); cerr << "Error number " << aRef.getErrNum() << endl; } catch( AssertionRef aAssert ) { handleAssertion(aAssert); } catch( ExceptionRef aException ) { handleException(aException); } catch( std::exception & e ) { cerr << e.what() << endl; } catch( ... ) { cerr << "Unknown exception." << endl; } // // If we have not gone through the housekeeping // if( agGroup != NULLPTR ) { if( amutexParent != NULLPTR ) { agGroup->destroySemaphore(amutexParent); } else { ; // do nothing } if( amutexChild != NULLPTR ) { agGroup->destroySemaphore(amutexChild); } else { ; // do nothing } if( amutexFlag != NULLPTR ) { agGroup->destroySemaphore(amutexFlag); } else { ; // do nothing } delete agGroup; } return 0; } // // Child thread implementation // Int threadTest( void *aV ) { AbstractSemaphorePtr aParent( NULLPTR ); AbstractSemaphorePtr aChild( NULLPTR ); AbstractSemaphorePtr aFlag( NULLPTR ); ThreadIdentifier myId(Thread::getThreadIdentifier()); try { SemaphoreGroupPtr aSG( (SemaphoreGroupPtr)aV ); aParent = aSG->createSemaphore( parentSemId, FAIL_IF_NOTEXISTS ); aChild = aSG->createSemaphore( childSemId, FAIL_IF_NOTEXISTS ); aFlag = aSG->createSemaphore( completeSemId, FAIL_IF_NOTEXISTS ); while( aFlag->isLocked() == false ) { aParent->lockWithWait(); cout << "\t[" << IntRef(myId) << "]\tReading resource = " << gvalue << endl; aChild->release(); } } catch(SemaphoreExceptionRef aSemExcp ) { cerr << "Thread bailing out with exception" << endl; handleException( aSemExcp ); aFlag->lockWithWait(); } catch( ... ) { cerr << "Thread bailing out with exception" << endl; aFlag->lockWithWait(); } return 0; } // // Peform defaults (just show it) // void handleStatus( SemaphoreOperationStatus aStatus ) { switch( aStatus ) { case SUCCESS: cerr << "Success" << endl; break; case BALKED: cerr << "Request balked" << endl; break; case TIMEDOUT: cerr << "Request timed out" << endl; break; case UNAVAILABLE: cerr << "Request not satisfied" << endl; break; case KERNELERROR: cerr << "Kernel reported error : " << Thread::getKernelError() << endl; break; default: NEVER_GET_HERE; break; } return; } void handleAssertion( AssertionCref aAssert ) { cerr << aAssert.getFile() << ":" << aAssert.getLine() << ":" << "Assertion: "; if( aAssert.getType() == Assertion::NEVERGETHERE ) { cerr << "NEVER_GET_HERE"; } else { if( aAssert.getType() == Assertion::REQUIRE ) { cerr << "REQUIRE"; } else if( aAssert.getType() == Assertion::ENSURE ) { cerr << "ENSURE"; } else if( aAssert.getType() == Assertion::CHECK ) { cerr << "CHECK"; } else { cerr << "ASSERT"; } cerr << "( " << aAssert.getWhy() << " )"; } cerr << endl; } void handleException( ExceptionCref aExcp ) { cerr << aExcp.getFile() << ":" << aExcp.getLine() << ":" << "Exception: " << aExcp.getWhy() << endl; } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.9 $ $Date: 2000/09/07 12:54:44 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex13/Makefile.am0000664000000000000000000000076007137764161017167 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 08:34:22 # LAST-MOD: 23-Apr-00 at 16:18:43 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc bin_PROGRAMS = ex13 ex13_SOURCES = examp13.cpp ex13_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la libcorelinux-0.4.32/src/testdrivers/ex13/Makefile.in0000664000000000000000000003370007743170750017176 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 08:34:22 # LAST-MOD: 23-Apr-00 at 16:18:43 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc bin_PROGRAMS = ex13 ex13_SOURCES = examp13.cpp ex13_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la subdir = src/testdrivers/ex13 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = bin_PROGRAMS = ex13$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) am_ex13_OBJECTS = examp13.$(OBJEXT) ex13_OBJECTS = $(am_ex13_OBJECTS) ex13_DEPENDENCIES = ${top_builddir}/src/classlibs/corelinux/libcl++.la ex13_LDFLAGS = DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/admin/depcomp am__depfiles_maybe = depfiles @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/examp13.Po CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ DIST_SOURCES = $(ex13_SOURCES) DIST_COMMON = $(srcdir)/Makefile.in Makefile.am SOURCES = $(ex13_SOURCES) all: all-am .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc .lo .obj $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex13/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(bindir) @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f $(DESTDIR)$(bindir)/$$f"; \ rm -f $(DESTDIR)$(bindir)/$$f; \ done clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done ex13$(EXEEXT): $(ex13_OBJECTS) $(ex13_DEPENDENCIES) @rm -f ex13$(EXEEXT) $(CXXLINK) $(ex13_LDFLAGS) $(ex13_OBJECTS) $(ex13_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) core *.core distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/examp13.Po@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: $(mkinstalldirs) $(DESTDIR)$(bindir) install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-exec-am: install-binPROGRAMS install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libtool ctags distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-exec install-exec-am \ install-info install-info-am install-man install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/ex15/0000775000000000000000000000000010771017616015124 5ustar libcorelinux-0.4.32/src/testdrivers/ex15/include/0000775000000000000000000000000007743170751016554 5ustar libcorelinux-0.4.32/src/testdrivers/ex15/include/ArgumentContext.hpp0000664000000000000000000001105607073102750022405 0ustar #if !defined(__ARGUMENTCONTEXT_HPP) #define __ARGUMENTCONTEXT_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__THREADCONTEXT_HPP) #include #endif typedef int (*ArgumentFunctionPtr)( const int & ); DECLARE_CLASS( ArgumentContext ) /** ArgumentContext shows off how by extending ThreadContext we can add arguments to the call and use any method not just those prototyped by the system. */ class ArgumentContext : public CORELINUX(ThreadContext) { public: // // Constructors and destructor // /// Default ArgumentContext( ArgumentFunctionPtr, int arg=0 ) throw ( CORELINUX( Assertion ) ); /// With stack ArgumentContext ( ArgumentFunctionPtr, CORELINUX(Size), int arg=0 ) throw ( CORELINUX( Assertion ) ); /// Copy constructor ArgumentContext( ArgumentContextCref ) throw ( CORELINUX( Assertion ) ); /// Virtual destructor virtual ~ArgumentContext( void ); // // Operator overloads // /** Assignment operator changes the context @param ArgumentContext reference to existing context @return ArgumentContext reference @exception ThreadNotWaitingException if the argument context is not in a THREAD_WAITING_TO_START state. */ ArgumentContextRef operator=( ArgumentContextCref ) throw( CORELINUX( Assertion ) ); /** Equality operator compares contexts @param ArgumentContext reference to existing context @return bool true if same */ bool operator==( ArgumentContextCref ) const; // // Accessors // /// Return the argument to the caller const int & getArgument( void ) const; // // Mutators // /// Sets the argument after initialization void setArgument( const int & ) ; protected: // // Constructor // /// Can't use! ArgumentContext( void ) throw ( CORELINUX( Assertion ) ); // // Accessor // /// Return the function to invoke ArgumentFunctionPtr getArgumentFunction( void ); private: /** The default allocation routine for the managers ThreadContext. The copy constructor is called with the argument reference @param ThreadContext reference to the context supplied in the startThread method. @return The newly allocated managed context */ static CORELINUX(ThreadContextPtr) argumentContextCreate ( CORELINUX(ThreadContextRef) ); /** The default destroyer of managed ThreadContexts. @param ThreadContext pointer to managed object. */ static void argumentContextDestroy( CORELINUX(ThreadContextPtr) ); static Int argumentFrame( CORELINUX(ThreadContextPtr) ); private: /// The callers argument int theArgument; }; #endif /* Common rcs information do not modify $Author: frankc $ $Revision: 1.3 $ $Date: 2000/04/06 12:41:12 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex15/include/Makefile.am0000664000000000000000000000064307100671014020574 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 10:46:26 # LAST-MOD: 10-Apr-00 at 10:46:37 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc noinst_HEADERS = ArgumentContext.hpplibcorelinux-0.4.32/src/testdrivers/ex15/include/Makefile.in0000664000000000000000000002272307743170751020627 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 10:46:26 # LAST-MOD: 10-Apr-00 at 10:46:37 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc noinst_HEADERS = ArgumentContext.hpp subdir = src/testdrivers/ex15/include ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = DIST_SOURCES = HEADERS = $(noinst_HEADERS) DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.in Makefile.am all: all-am .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex15/include/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am info \ info-am install install-am install-data install-data-am \ install-exec install-exec-am install-info install-info-am \ install-man install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags uninstall uninstall-am uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/ex15/ArgumentContext.cpp0000664000000000000000000001017107073102750020752 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__ARGUMENTCONTEXT_HPP) #include #endif using namespace corelinux; // Default assertion ArgumentContext::ArgumentContext( void ) throw ( Assertion ) : ThreadContext() { NEVER_GET_HERE; } // Reasonable constructor ArgumentContext::ArgumentContext( ArgumentFunctionPtr aFunction, int arg ) throw ( Assertion ) : ThreadContext( CallerFunctionPtr(aFunction) ), theArgument( arg ) { ThreadContext::setFrameFunction( argumentFrame ); ThreadContext::setContextFunctions ( argumentContextCreate, argumentContextDestroy ); } // Reasonable constructor with stack ArgumentContext::ArgumentContext ( ArgumentFunctionPtr aFunction, Size stackSize, int arg ) throw ( Assertion ) : ThreadContext( CallerFunctionPtr(aFunction), stackSize ), theArgument( arg ) { ThreadContext::setFrameFunction( argumentFrame ); ThreadContext::setContextFunctions ( argumentContextCreate, argumentContextDestroy ); } // Copy constructor ArgumentContext::ArgumentContext( ArgumentContextCref aContext ) throw ( Assertion ) : ThreadContext( aContext ), theArgument( aContext.getArgument() ) { ; // do nothing } // Destructor ArgumentContext::~ArgumentContext( void ) { ; // do nothing } // Assignment operator ArgumentContextRef ArgumentContext::operator= ( ArgumentContextCref aContext ) throw ( Assertion ) { ThreadContext::operator==(aContext); setArgument( aContext.getArgument() ); return ( *this ); } // Equality operator bool ArgumentContext::operator==( ArgumentContextCref aContext ) const { return ThreadContext::operator==(aContext); } // Get the argument const int & ArgumentContext::getArgument( void ) const { return theArgument; } ArgumentFunctionPtr ArgumentContext::getArgumentFunction( void ) { return ArgumentFunctionPtr( ThreadContext::getCallerFunction() ); } // Set the argument void ArgumentContext::setArgument( const int &arg ) { theArgument = arg; } // Factory method redirect to insure we create a ArgumentContext object ThreadContextPtr ArgumentContext::argumentContextCreate ( ThreadContextRef aContext ) { ArgumentContextPtr aArgumentPtr( NULLPTR ); aArgumentPtr = new ArgumentContext ( dynamic_cast(aContext) ); return aArgumentPtr; } // Factory method redirect to insure we destroy a ArgumentContext object void ArgumentContext::argumentContextDestroy( ThreadContextPtr aContext ) { ArgumentContextPtr myArg( NULLPTR ); myArg = dynamic_cast(aContext); if( myArg != NULLPTR ) { delete myArg; } else { ; // TBD } } // Our thread frame which allows us to call the single argument method Int ArgumentContext::argumentFrame( ThreadContextPtr aContext ) { ArgumentContextPtr aArgumentContext ( dynamic_cast(aContext) ); return (aArgumentContext->getArgumentFunction())(aArgumentContext->getArgument()); } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.4 $ $Date: 2000/04/06 12:41:12 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex15/examp15.cpp0000664000000000000000000001362310771017616017115 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** \example examp15.cpp This example is to show use of the initial Thread and ThreadContext. A couple of threads are executed to show off: 1. Default operations 2. Declaring a stack size 3. Redirecting the context allocation to something that takes arguments. The last one may seem like overkill, we could have easily not substituted anything and had the caller entry point cast the ThreadContext to the ArgumentContext and extract any arguments, but then you wouldn't have a live example! */ #include #include #include using namespace corelinux; using namespace std; #include #include // // In module function prototypes // int main( void ); // // General Functions // void handleAssertion( AssertionCref ); void handleException( ExceptionCref ); // // Thread entry point declarations // Int threadTest( ThreadContextPtr ); Int argumentTest( IntCref ); // // Global data // const int STACKSIZE(4096); // Thread stack size const ThreadIdentifier badThread(-1); // Error identifier // // Main entry point // int main( void ) { cout << endl; // // Practice graceful exception management // try { // // Our first example is a simple default thing. // // Setup the context with default stack and // handlers ThreadContext aSimpleContext(threadTest); cout << "Starting default context thread" << endl; // // Start the thread and wait for return // ThreadIdentifier aThreadld( Thread::startThread(aSimpleContext) ); if( aThreadld != badThread ) { Int aRc( Thread::waitForThread(aThreadld) ); cout << "Thread return code = " << aRc << endl; } else { cout << "Thread error!" << endl; } cout << endl; // // Now we try one with a smaller stack // ThreadContext aStackChangedContext(threadTest,STACKSIZE); cout << "Starting restacked context thread" << endl; aThreadld = Thread::startThread(aStackChangedContext); if( aThreadld != badThread ) { Int aRc( Thread::waitForThread(aThreadld) ); cout << "Thread return code = " << aRc << endl; } else { cout << "Thread error!" << endl; } cout << endl; // // Ok, now for the good stuff. We redirect the // context factory methods in the class so that // we provide a different context. We also set // the threadframe to invoke the call as declared // // // Provide holders for the sets // ArgumentContext aArgContext(argumentTest,5); cout << "Starting argument context thread" << endl; aThreadld = Thread::startThread(aArgContext); if( aThreadld != badThread ) { Int aRc( Thread::waitForThread(aThreadld) ); cout << "Thread return code = " << aRc << endl; } else { cout << "Thread error!" << endl; } cout << endl; // We are clean and return the settings to the // originals Thread::dump(); } catch( AssertionRef aAssert ) { handleAssertion(aAssert); } catch( ExceptionRef aException ) { handleException(aException); } catch( std::exception & e ) { cerr << e.what() << endl; } catch( ... ) { cerr << "Unknown exception." << endl; } return 0; } // // Child thread implementation // Int threadTest( ThreadContextPtr aContextPtr ) { Int returnCode(0); try { cout << "In Child!" << endl; cout << "My identifier is " << aContextPtr->getIdentifier().getScalar() << endl; } catch( ... ) { cerr << "Thread bailing out with exception" << endl; throw; } return returnCode; } // // Argument test thread implementation // Int argumentTest( IntCref aArgument ) { cout << "Argument thread has arg value = " << aArgument << endl; return 0; } // // Error handlers // void handleAssertion( AssertionCref aAssert ) { cerr << aAssert.getFile() << ":" << aAssert.getLine() << ":" << "Assertion: "; if( aAssert.getType() == Assertion::NEVERGETHERE ) { cerr << "NEVER_GET_HERE"; } else { if( aAssert.getType() == Assertion::REQUIRE ) { cerr << "REQUIRE"; } else if( aAssert.getType() == Assertion::ENSURE ) { cerr << "ENSURE"; } else if( aAssert.getType() == Assertion::CHECK ) { cerr << "CHECK"; } else { cerr << "ASSERT"; } cerr << "( " << aAssert.getWhy() << " )"; } cerr << endl; } void handleException( ExceptionCref aExcp ) { cerr << aExcp.getFile() << ":" << aExcp.getLine() << ":" << "Exception: " << aExcp.getWhy() << endl; } /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.4 $ $Date: 2000/08/31 22:49:02 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex15/Makefile.am0000664000000000000000000000103107137764171017162 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 08:34:22 # LAST-MOD: 23-Apr-00 at 16:18:55 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = include bin_PROGRAMS = ex15 ex15_SOURCES = ArgumentContext.cpp examp15.cpp ex15_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la libcorelinux-0.4.32/src/testdrivers/ex15/Makefile.in0000664000000000000000000004345107743170750017204 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 08:34:22 # LAST-MOD: 23-Apr-00 at 16:18:55 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = include bin_PROGRAMS = ex15 ex15_SOURCES = ArgumentContext.cpp examp15.cpp ex15_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la subdir = src/testdrivers/ex15 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = bin_PROGRAMS = ex15$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) am_ex15_OBJECTS = ArgumentContext.$(OBJEXT) examp15.$(OBJEXT) ex15_OBJECTS = $(am_ex15_OBJECTS) ex15_DEPENDENCIES = ${top_builddir}/src/classlibs/corelinux/libcl++.la ex15_LDFLAGS = DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/admin/depcomp am__depfiles_maybe = depfiles @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/ArgumentContext.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/examp15.Po CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ DIST_SOURCES = $(ex15_SOURCES) RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \ ps-recursive install-info-recursive uninstall-info-recursive \ all-recursive install-data-recursive install-exec-recursive \ installdirs-recursive install-recursive uninstall-recursive \ check-recursive installcheck-recursive DIST_COMMON = $(srcdir)/Makefile.in Makefile.am DIST_SUBDIRS = $(SUBDIRS) SOURCES = $(ex15_SOURCES) all: all-recursive .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc .lo .obj $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex15/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(bindir) @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f $(DESTDIR)$(bindir)/$$f"; \ rm -f $(DESTDIR)$(bindir)/$$f; \ done clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done ex15$(EXEEXT): $(ex15_OBJECTS) $(ex15_DEPENDENCIES) @rm -f ex15$(EXEEXT) $(CXXLINK) $(ex15_LDFLAGS) $(ex15_OBJECTS) $(ex15_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) core *.core distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ArgumentContext.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/examp15.Po@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if (etags --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ else \ include_option=--include; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -f $$subdir/TAGS && \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ || exit 1; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" \ distdir=../$(distdir)/$$subdir \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(PROGRAMS) installdirs: installdirs-recursive installdirs-am: $(mkinstalldirs) $(DESTDIR)$(bindir) install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: info: info-recursive info-am: install-data-am: install-exec-am: install-binPROGRAMS install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \ clean-binPROGRAMS clean-generic clean-libtool clean-recursive \ ctags ctags-recursive distclean distclean-compile \ distclean-generic distclean-libtool distclean-recursive \ distclean-tags distdir dvi dvi-am dvi-recursive info info-am \ info-recursive install install-am install-binPROGRAMS \ install-data install-data-am install-data-recursive \ install-exec install-exec-am install-exec-recursive \ install-info install-info-am install-info-recursive install-man \ install-recursive install-strip installcheck installcheck-am \ installdirs installdirs-am installdirs-recursive \ maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \ pdf pdf-am pdf-recursive ps ps-am ps-recursive tags \ tags-recursive uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-info-am uninstall-info-recursive uninstall-recursive # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/ex4/0000775000000000000000000000000010771017615015041 5ustar libcorelinux-0.4.32/src/testdrivers/ex4/include/0000775000000000000000000000000007743170757016500 5ustar libcorelinux-0.4.32/src/testdrivers/ex4/include/Engine.hpp0000664000000000000000000000414307050700153020374 0ustar #if !defined(__ENGINE_HPP) #define __ENGINE_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #if !defined(__PROTOTYPE_HPP) #include #endif /// Engine domain type DECLARE_TYPE( CORELINUX(Count), Cylinders ); /** Engine is a abstract base class for engine types. It has a pure virtual method for cloning the engines and a cylinder count accessor. */ DECLARE_CLASS(Engine); class Engine : public CORELINUX(Prototype) { public: /// Default constructor Engine( void ); /// Copy Constructor Engine( EngineCref aRef ); /// Destructor virtual ~Engine( void ); // // Operator overloads // /// Assignment operator EngineRef operator=( EngineCref ); /// Equality operator bool operator==( EngineCref aRef ) const; // // Accessors // /// Return the Cylinders count virtual CylindersCref getCylinders( void ) const = 0; }; #endif // if !defined __ENGINE_HPP /* Common rcs information do not modify $Author: frankc $ $Revision: 1.5 $ $Date: 2000/02/11 03:22:19 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex4/include/SixCylinderEngine.hpp0000664000000000000000000000442707050700153022557 0ustar #if !defined(__SIXCYLINDERENGINE_HPP) #define __SIXCYLINDERENGINE_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #if !defined(__ENGINE_HPP) #include #endif /** SixCylinderEngine is concrete Engine that has six (6) cylinders. */ DECLARE_CLASS(SixCylinderEngine); class SixCylinderEngine : public Engine { public: /// Default constructor SixCylinderEngine( void ); /// Copy Constructor SixCylinderEngine( SixCylinderEngineCref aRef ); /// Destructor virtual ~SixCylinderEngine( void ); // // Operator overloads // /// Assignment operator SixCylinderEngineRef operator=( SixCylinderEngineCref ); /// Equality operator bool operator==( SixCylinderEngineCref aRef ) const; // // Accessors // /// Return the Cylinders count virtual CylindersCref getCylinders( void ) const ; // // Factory method // /// Duplicates the engine virtual EnginePtr clone( void ) const; protected: /// Fixed cylinder count static Cylinders theCylinders; }; #endif // if !defined __SIXCYLINDERENGINE_HPP /* Common rcs information do not modify $Author: frankc $ $Revision: 1.3 $ $Date: 2000/02/11 03:22:19 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex4/include/EightCylinderEngine.hpp0000664000000000000000000000446407050700153023055 0ustar #if !defined(__EIGHTCYLINDERENGINE_HPP) #define __EIGHTCYLINDERENGINE_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #if !defined(__ENGINE_HPP) #include #endif /** EightCylinderEngine is concrete Engine that has eight (8) cylinders. */ DECLARE_CLASS(EightCylinderEngine); class EightCylinderEngine : public Engine { public: /// Default constructor EightCylinderEngine( void ); /// Copy Constructor EightCylinderEngine( EightCylinderEngineCref aRef ); /// Destructor virtual ~EightCylinderEngine( void ); // // Operator overloads // /// Assignment operator EightCylinderEngineRef operator=( EightCylinderEngineCref ); /// Equality operator bool operator==( EightCylinderEngineCref aRef ) const; // // Accessors // /// Return the Cylinders count virtual CylindersCref getCylinders( void ) const ; // // Factory method // /// Duplicates the engine virtual EnginePtr clone( void ) const; protected: /// Fixed cylinder count static Cylinders theCylinders; }; #endif // if !defined __EIGHTCYLINDERENGINE_HPP /* Common rcs information do not modify $Author: frankc $ $Revision: 1.3 $ $Date: 2000/02/11 03:22:19 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex4/include/Makefile.am0000664000000000000000000000073107100671014020510 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 13:11:30 # LAST-MOD: 10-Apr-00 at 13:12:02 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc noinst_HEADERS = EightCylinderEngine.hpp SixCylinderEngine.hpp Engine.hpp EngineBridge.hpplibcorelinux-0.4.32/src/testdrivers/ex4/include/Makefile.in0000664000000000000000000002300707743170757020547 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 13:11:30 # LAST-MOD: 10-Apr-00 at 13:12:02 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc noinst_HEADERS = EightCylinderEngine.hpp SixCylinderEngine.hpp Engine.hpp EngineBridge.hpp subdir = src/testdrivers/ex4/include ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = DIST_SOURCES = HEADERS = $(noinst_HEADERS) DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.in Makefile.am all: all-am .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex4/include/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am info \ info-am install install-am install-data install-data-am \ install-exec install-exec-am install-info install-info-am \ install-man install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags uninstall uninstall-am uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/ex4/include/EngineBridge.hpp0000664000000000000000000000662107050700153021514 0ustar #if !defined(__ENGINEBRIDGE_HPP) #define __ENGINEBRIDGE_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #if !defined(__BRIDGE_HPP) #include #endif // // We are including this here because Cylinders is a defined type for // engine. Otherwise we would have forward declared Engine class. // #if !defined(__ENGINE_HPP) #include #endif /** EngineBridge dynamically manages the underlying implementation of an Engine. EngineBridge can report the cylinder size and also will allow you to upgrade to a bigger engine. Attempts to upgrade to a smaller engine violate a EngineBridge semantic. */ DECLARE_CLASS(EngineBridge); class EngineBridge : public CORELINUX(Bridge) { public: /// Constructor with Engine Type EngineBridge( EnginePtr ) throw(CORELINUX(Exception)); /// Destructor virtual ~EngineBridge( void ); // // Operator overloads // /// Assignment operator EngineBridgeRef operator=( EngineBridgeCref ) throw(CORELINUX(Exception)); /// Equality operator bool operator==( EngineBridgeCref ) const; // // Accessors // /// Return the Cylinders count CylindersCref getCylinders( void ) const; // // Mutators // /// Upgrade the engine, throw exception if too small void upgradeEngine( EnginePtr aPtr ) throw(CORELINUX(Exception)); protected: /// Default constructor - Not Allowed as per Bridge EngineBridge( void ) throw(CORELINUX(Assertion)); /// Copy constructor - Not Allowed as per Bridge EngineBridge( EngineBridgeCref ) throw(CORELINUX(Assertion)); /** This is where the base Bridge calls down to in making a copy of the implementation for ownership by the bridge. @param CoreLinuxObject pointer to original @return CoreLinuxObject pointer to clone */ virtual EnginePtr cloneImplementation( EnginePtr aPtr ) throw(CORELINUX(Exception)); }; #endif // if !defined __ENGINEBRIDGE_HPP /* Common rcs information do not modify $Author: frankc $ $Revision: 1.5 $ $Date: 2000/02/11 03:22:19 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex4/EightCylinderEngine.cpp0000664000000000000000000000414207050700153021416 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #if !defined(__EIGHTCYLINDERENGINE_HPP) #include #endif using namespace corelinux; // Fixed cylinder count for this type Cylinders EightCylinderEngine::theCylinders(8); // // Default constructor // EightCylinderEngine::EightCylinderEngine( void ) : Engine() { ; // do nothing } // // Copy constructor // EightCylinderEngine::EightCylinderEngine( EightCylinderEngineCref aRef ) : Engine(aRef) { ; // do nothing } // // Destructor // EightCylinderEngine::~EightCylinderEngine( void ) { ; // do nothing, } // // Assignment operator // EightCylinderEngineRef EightCylinderEngine::operator=( EightCylinderEngineCref aRef ) { return (*this); } // // Equality operator, // bool EightCylinderEngine::operator==( EightCylinderEngineCref aRef ) const { return (this == &aRef); } // // Cylinder count fetch // CylindersCref EightCylinderEngine::getCylinders( void ) const { return theCylinders; } // // Clone method implementation // EnginePtr EightCylinderEngine::clone( void ) const { return new EightCylinderEngine; } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/02/11 03:22:19 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex4/examp4.cpp0000664000000000000000000001276010771017615016751 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** \example examp4.cpp This example is to show use of the Bridge and Prototype patterns. In our scenario we want to enable the choice of car engines between six (6) and eight (8) cylinders. The advantage that the Bridge pattern brings to the problem domain is that it can be dynamically configured to work with either concrete engine type. We have concrete engines as types instead of a factored engine with a cylinder attribute for example purposes. Because the base Bridge calls cloneImplementation in EngineBridge the Prototype pattern is suited for Engine becuase we want to create a Engine based on the prototype that the Bridge is responsible for. @see Engine.hpp EngineBridge.hpp */ #include using namespace corelinux; #include // The Bridge #include // Concrete Engine class #include // Concrete Engine class #include #include using namespace std; // // In module function prototypes // int main( void ); // // Functions that work with Engine types // EngineBridgePtr selectEngine( void ); void displayEngineStats( EngineBridgePtr ); void upgradeEngine( EngineBridgePtr ); void handleAssertion( AssertionCref ); void handleException( ExceptionCref ); int main( void ) { // // Practice gracefull exception management // cout << endl; try { // // First get any engine // EngineBridgePtr anEngine( selectEngine() ); if( anEngine != NULLPTR ) { // // Now excercise the Bridge // displayEngineStats( anEngine ); upgradeEngine( anEngine ); displayEngineStats( anEngine ); delete anEngine; } else { cout << "We have bicycles too!" << endl; } } catch( AssertionRef aAssert ) { handleAssertion(aAssert); } catch( ExceptionRef aException ) { handleException(aException); } catch( std::exception & e ) { cerr << e.what() << endl; } catch( ... ) { cerr << "Unknown exception." << endl; } return 0; } // // Select the engine of choice // EngineBridgePtr selectEngine( void ) { EngineBridgePtr aPtr(NULLPTR); Cylinders numberRequested(0); cout << endl; cout << "Request the number of cylinders for your engine : "; cin >> numberRequested; cout << endl; if( numberRequested == 6 ) { aPtr = new EngineBridge( new SixCylinderEngine ); } else if( numberRequested == 8 ) { aPtr = new EngineBridge( new EightCylinderEngine ); } else { cout << "Sorry, we don't stock those." << endl; } return aPtr; } // // Show it // void displayEngineStats( EngineBridgePtr aPtr ) { cout << endl; cout << "The number of cylinders in your engine = " << aPtr->getCylinders() << endl; } // // Here we upgrade. Because the Bridge requires that // a implementation substitution is cloned, we // use a automatic instance as a prototype. // void upgradeEngine( EngineBridgePtr aPtr ) { Cylinders numberRequested(0); cout << endl; cout << "Request the NEW number of cylinders for your engine : "; cin >> numberRequested; cout << endl; SixCylinderEngine aSix; EightCylinderEngine aEight; if( numberRequested == 6 ) { aPtr->upgradeEngine(&aSix); } else if( numberRequested == 8 ) { aPtr->upgradeEngine(&aEight); } else { cout << "Sorry, we don't stock those." << endl; } } // // Peform default (just show it) // void handleAssertion( AssertionCref aAssert ) { cerr << aAssert.getFile() << ":" << aAssert.getLine() << ":" << "Assertion: "; if( aAssert.getType() == Assertion::NEVERGETHERE ) { cerr << "NEVER_GET_HERE"; } else { if( aAssert.getType() == Assertion::REQUIRE ) { cerr << "REQUIRE"; } else if( aAssert.getType() == Assertion::ENSURE ) { cerr << "ENSURE"; } else if( aAssert.getType() == Assertion::CHECK ) { cerr << "CHECK"; } else { cerr << "ASSERT"; } cerr << "( " << aAssert.getWhy() << " )"; } cerr << endl; } void handleException( ExceptionCref aExcp ) { cerr << aExcp.getFile() << ":" << aExcp.getLine() << ":" << "Exception: " << aExcp.getWhy() << endl; } /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.3 $ $Date: 2000/08/31 22:49:01 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex4/SixCylinderEngine.cpp0000664000000000000000000000407507050700153021126 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #if !defined(__SIXCYLINDERENGINE_HPP) #include #endif using namespace corelinux; // Fixed cylinder count for this type Cylinders SixCylinderEngine::theCylinders(6); // // Default constructor // SixCylinderEngine::SixCylinderEngine( void ) : Engine() { ; // do nothing } // // Copy constructor // SixCylinderEngine::SixCylinderEngine( SixCylinderEngineCref aRef ) : Engine(aRef) { ; // do nothing } // // Destructor // SixCylinderEngine::~SixCylinderEngine( void ) { ; // do nothing, } // // Assignment operator // SixCylinderEngineRef SixCylinderEngine::operator=( SixCylinderEngineCref aRef ) { return (*this); } // // Equality operator, // bool SixCylinderEngine::operator==( SixCylinderEngineCref aRef ) const { return (this == &aRef); } // // Cylinder count fetch // CylindersCref SixCylinderEngine::getCylinders( void ) const { return theCylinders; } // // Clone method implementation // EnginePtr SixCylinderEngine::clone( void ) const { return new SixCylinderEngine; } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/02/11 03:22:19 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex4/EngineBridge.cpp0000664000000000000000000000627407050700153020070 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #if !defined(__ENGINEBRIDGE_HPP) #include #endif #if !defined(__ENGINE_HPP) #include #endif using namespace corelinux; // // Default constructor is protected and // will except as well // EngineBridge::EngineBridge( void ) throw(Assertion) : Bridge() { ; // do nothing } // // Copy constructor invalid as well // EngineBridge::EngineBridge( EngineBridgeCref aRef ) throw(Assertion) : Bridge( aRef ) { ; // do nothing } // // Default constructor requires Engine // EngineBridge::EngineBridge( EnginePtr aPtr ) throw(Exception) : Bridge(aPtr) { ; // do nothing } // // Destructor // EngineBridge::~EngineBridge( void ) { ; // do nothing, Bridge handles implementation } // // Assignment invokes Bridge.setImplementation which calls // our implementation of cloneImplementation // EngineBridgeRef EngineBridge::operator=( EngineBridgeCref aRef ) throw(Exception) { upgradeEngine( aRef.getImplementation() ); return (*this); } // // Equality operator, here we check if the engine cylinders are // equal. // bool EngineBridge::operator==( EngineBridgeCref aRef ) const { return (this->getCylinders() == aRef.getCylinders()); } // // Accessor returns the cylinder count. We use RTTI to // convert the CoreLinuxObjectPtr to EnginePtr // CylindersCref EngineBridge::getCylinders( void ) const { return getImplementation()->getCylinders(); } // // Upgrade the engine if not downsizing // void EngineBridge::upgradeEngine( EnginePtr aPtr ) throw( Exception ) { if( aPtr == NULLPTR ) { throw Exception("Invalid Engine.", LOCATION); } else if( aPtr->getCylinders() < this->getCylinders() ) { throw Exception("Can't upgrade to smaller engine!",LOCATION); } else { setImplementation(aPtr); } } // // The cloneImplementation call from Bridge // EnginePtr EngineBridge::cloneImplementation( EnginePtr aPtr ) throw( Exception ) { if( aPtr == NULLPTR ) { throw Exception("Invalid Engine.", LOCATION); } else { ; // do nothing } return aPtr->clone(); } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.3 $ $Date: 2000/02/11 03:22:19 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex4/Makefile.am0000664000000000000000000000111407137764233017101 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 08:34:22 # LAST-MOD: 23-Apr-00 at 16:14:01 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = include bin_PROGRAMS = ex4 ex4_SOURCES = examp4.cpp Engine.cpp EightCylinderEngine.cpp SixCylinderEngine.cpp EngineBridge.cpp ex4_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la libcorelinux-0.4.32/src/testdrivers/ex4/Makefile.in0000664000000000000000000004436207743170756017132 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 08:34:22 # LAST-MOD: 23-Apr-00 at 16:14:01 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = include bin_PROGRAMS = ex4 ex4_SOURCES = examp4.cpp Engine.cpp EightCylinderEngine.cpp SixCylinderEngine.cpp EngineBridge.cpp ex4_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la subdir = src/testdrivers/ex4 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = bin_PROGRAMS = ex4$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) am_ex4_OBJECTS = examp4.$(OBJEXT) Engine.$(OBJEXT) \ EightCylinderEngine.$(OBJEXT) SixCylinderEngine.$(OBJEXT) \ EngineBridge.$(OBJEXT) ex4_OBJECTS = $(am_ex4_OBJECTS) ex4_DEPENDENCIES = ${top_builddir}/src/classlibs/corelinux/libcl++.la ex4_LDFLAGS = DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/admin/depcomp am__depfiles_maybe = depfiles @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/EightCylinderEngine.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/Engine.Po ./$(DEPDIR)/EngineBridge.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/SixCylinderEngine.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/examp4.Po CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ DIST_SOURCES = $(ex4_SOURCES) RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \ ps-recursive install-info-recursive uninstall-info-recursive \ all-recursive install-data-recursive install-exec-recursive \ installdirs-recursive install-recursive uninstall-recursive \ check-recursive installcheck-recursive DIST_COMMON = $(srcdir)/Makefile.in Makefile.am DIST_SUBDIRS = $(SUBDIRS) SOURCES = $(ex4_SOURCES) all: all-recursive .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc .lo .obj $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex4/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(bindir) @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f $(DESTDIR)$(bindir)/$$f"; \ rm -f $(DESTDIR)$(bindir)/$$f; \ done clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done ex4$(EXEEXT): $(ex4_OBJECTS) $(ex4_DEPENDENCIES) @rm -f ex4$(EXEEXT) $(CXXLINK) $(ex4_LDFLAGS) $(ex4_OBJECTS) $(ex4_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) core *.core distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/EightCylinderEngine.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Engine.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/EngineBridge.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SixCylinderEngine.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/examp4.Po@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if (etags --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ else \ include_option=--include; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -f $$subdir/TAGS && \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ || exit 1; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" \ distdir=../$(distdir)/$$subdir \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(PROGRAMS) installdirs: installdirs-recursive installdirs-am: $(mkinstalldirs) $(DESTDIR)$(bindir) install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: info: info-recursive info-am: install-data-am: install-exec-am: install-binPROGRAMS install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \ clean-binPROGRAMS clean-generic clean-libtool clean-recursive \ ctags ctags-recursive distclean distclean-compile \ distclean-generic distclean-libtool distclean-recursive \ distclean-tags distdir dvi dvi-am dvi-recursive info info-am \ info-recursive install install-am install-binPROGRAMS \ install-data install-data-am install-data-recursive \ install-exec install-exec-am install-exec-recursive \ install-info install-info-am install-info-recursive install-man \ install-recursive install-strip installcheck installcheck-am \ installdirs installdirs-am installdirs-recursive \ maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \ pdf pdf-am pdf-recursive ps ps-am ps-recursive tags \ tags-recursive uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-info-am uninstall-info-recursive uninstall-recursive # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/ex4/Engine.cpp0000664000000000000000000000330007050700153016736 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #if !defined(__ENGINE_HPP) #include #endif using namespace corelinux; // // Default constructor // Engine::Engine( void ) : Prototype() { ; // do nothing } // // Copy constructor // Engine::Engine( EngineCref aRef ) : Prototype(aRef) { ; // do nothing } // // Destructor // Engine::~Engine( void ) { ; // do nothing, } // // Assignment operator // EngineRef Engine::operator=( EngineCref aRef ) { return (*this); } // // Equality operator, here we check if the engine cylinders are // equal. // bool Engine::operator==( EngineCref aRef ) const { return (this->getCylinders() == aRef.getCylinders()); } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/02/11 03:22:19 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex14/0000775000000000000000000000000010771017616015123 5ustar libcorelinux-0.4.32/src/testdrivers/ex14/examp14.cpp0000664000000000000000000002027610771017616017115 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** \example examp14.cpp This example is to show use of the SemaphoreGroup and Semaphore. For this test we use the GatewaySemaphoreGroup. We create two semaphores, each with a GatewayCount of three (3). while the Parent thread (main) releases the resources on the first semaphore, it consumes resources on the second. while the Child thread (threadCountTest) consumes resources on the first, it releases them on the second. */ // // Clone support // extern "C" { #include #include #include #include } #include #include #include using namespace corelinux; using namespace std; #include #include // // In module function prototypes // int main( void ); // // General Functions // void handleAssertion( AssertionCref ); void handleException( ExceptionCref ); void handleStatus( SemaphoreOperationStatus ); // // Thread entry point declarations // Int threadCountTest( void *aV ); // // Global data // const int STACKSIZE(4096); // Thread stack size ThreadIdentifier badThread(-1); // Use for testing Dword gvalue(0); // Resource being protected SemaphoreIdentifier aSemId0(0); SemaphoreIdentifier aSemId1(1); // // Main entry point // int main( void ) { cout << endl; GatewaySemaphoreGroupPtr agGroup( NULLPTR ); // // Practice graceful exception management // try { // // Setup our SemaphoreGroup and control Semaphores // agGroup = new GatewaySemaphoreGroup ( 2, OWNER_ALL | GROUP_ALL | PUBLIC_ALL ); // // In our first example, we create a non-recursive GatewaySemaphore to use as // a counter. By consuming all the resources before starting the thread we can // eek out control // GatewaySemaphorePtr aSem0 ( (GatewaySemaphorePtr)agGroup->createCountSemaphore ( aSemId0, 3, CREATE_OR_REUSE ) ); aSem0->lockWithWait(); aSem0->lockWithWait(); aSem0->lockWithWait(); // // Setup thread stack and point to bottom // VoidPtr *newstack((VoidPtr*) new Byte[STACKSIZE]); newstack = (void **)(STACKSIZE + (char *) newstack); // // Spawn thread // threadCountTest - entry point int (fn*func)(void*arg) // newstack - bos // flags - Share everything // agGroup - SemaphoreGroupPtr (arg) // ThreadIdentifier aChildId = clone ( threadCountTest, newstack, CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | SIGCHLD, agGroup ); // // Check for errors // if( aChildId != badThread ) { // // We could have used a MutexSemaphore as well to get // error free indication the thread has started. // sleep(1); // // Get the thread controlled resource counter // GatewaySemaphorePtr aSem1 ( (GatewaySemaphorePtr)agGroup->createCountSemaphore ( aSemId1, 3, CREATE_OR_REUSE ) ); // // Signal handling would be a better mechanism, but for now // loop a few // do { cout << "Parent releasing count" << endl; aSem0->release(); aSem1->lockWithWait(); } while( aSem0->getOwnerRecursionQueueLength() != -1 ); Int aStatus(0); waitpid(aChildId.getScalar(),&aStatus,0); cout << "Thread had " << (WIFEXITED(aStatus) ? "Normal exit" : "Error exit" ) << endl; agGroup->destroySemaphore(aSem0); agGroup->destroySemaphore(aSem1); } else { cerr << "Error creating thread : " << Thread::getKernelError() << endl; } // // Housekeeping // delete agGroup; agGroup = NULLPTR; } catch( SemaphoreExceptionRef aRef ) { handleException(aRef); cerr << "Error number " << aRef.getErrNum() << endl; } catch( AssertionRef aAssert ) { handleAssertion(aAssert); } catch( ExceptionRef aException ) { handleException(aException); } catch( std::exception & e ) { cerr << e.what() << endl; } catch( ... ) { cerr << "Unknown exception." << endl; } // // If we have not gone through the housekeeping // if( agGroup != NULLPTR ) { delete agGroup; } return 0; } // // Child thread implementation that exchanges counters // Int threadCountTest( void *aV ) { try { GatewaySemaphoreGroupPtr aSG( (GatewaySemaphoreGroupPtr)aV ); GatewaySemaphorePtr aSem1( (GatewaySemaphorePtr)aSG->createCountSemaphore(aSemId1,3,CREATE_OR_REUSE) ); GatewaySemaphorePtr aSem0( (GatewaySemaphorePtr)aSG->createCountSemaphore(aSemId0,3,CREATE_OR_REUSE) ); aSem1->lockWithWait(); aSem1->lockWithWait(); aSem1->lockWithWait(); do { aSem0->lockWithWait(); cout << "Child gets count" << endl; aSem1->release(); } while( aSem0->getOwnerRecursionQueueLength() != 3 ); } catch(SemaphoreExceptionRef aSemExcp ) { handleException( aSemExcp ); } catch( ... ) { cerr << "Thread bailing out with exception" << endl; } return 0; } // // Peform defaults (just show it) // void handleStatus( SemaphoreOperationStatus aStatus ) { switch( aStatus ) { case SUCCESS: cerr << "Success" << endl; break; case BALKED: cerr << "Request balked" << endl; break; case TIMEDOUT: cerr << "Request timed out" << endl; break; case UNAVAILABLE: cerr << "Request not satisfied" << endl; break; case KERNELERROR: cerr << "Kernel reported error : " << Thread::getKernelError() << endl; break; default: NEVER_GET_HERE; break; } return; } void handleAssertion( AssertionCref aAssert ) { cerr << aAssert.getFile() << ":" << aAssert.getLine() << ":" << "Assertion: "; if( aAssert.getType() == Assertion::NEVERGETHERE ) { cerr << "NEVER_GET_HERE"; } else { if( aAssert.getType() == Assertion::REQUIRE ) { cerr << "REQUIRE"; } else if( aAssert.getType() == Assertion::ENSURE ) { cerr << "ENSURE"; } else if( aAssert.getType() == Assertion::CHECK ) { cerr << "CHECK"; } else { cerr << "ASSERT"; } cerr << "( " << aAssert.getWhy() << " )"; } cerr << endl; } void handleException( ExceptionCref aExcp ) { cerr << aExcp.getFile() << ":" << aExcp.getLine() << ":" << "Exception: " << aExcp.getWhy() << endl; } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.4 $ $Date: 2000/09/07 12:56:24 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex14/Makefile.am0000664000000000000000000000076007137764165017174 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 08:34:22 # LAST-MOD: 23-Apr-00 at 16:18:48 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc bin_PROGRAMS = ex14 ex14_SOURCES = examp14.cpp ex14_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la libcorelinux-0.4.32/src/testdrivers/ex14/Makefile.in0000664000000000000000000003370007743170750017177 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 08:34:22 # LAST-MOD: 23-Apr-00 at 16:18:48 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc bin_PROGRAMS = ex14 ex14_SOURCES = examp14.cpp ex14_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la subdir = src/testdrivers/ex14 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = bin_PROGRAMS = ex14$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) am_ex14_OBJECTS = examp14.$(OBJEXT) ex14_OBJECTS = $(am_ex14_OBJECTS) ex14_DEPENDENCIES = ${top_builddir}/src/classlibs/corelinux/libcl++.la ex14_LDFLAGS = DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/admin/depcomp am__depfiles_maybe = depfiles @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/examp14.Po CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ DIST_SOURCES = $(ex14_SOURCES) DIST_COMMON = $(srcdir)/Makefile.in Makefile.am SOURCES = $(ex14_SOURCES) all: all-am .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc .lo .obj $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex14/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(bindir) @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f $(DESTDIR)$(bindir)/$$f"; \ rm -f $(DESTDIR)$(bindir)/$$f; \ done clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done ex14$(EXEEXT): $(ex14_OBJECTS) $(ex14_DEPENDENCIES) @rm -f ex14$(EXEEXT) $(CXXLINK) $(ex14_LDFLAGS) $(ex14_OBJECTS) $(ex14_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) core *.core distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/examp14.Po@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: $(mkinstalldirs) $(DESTDIR)$(bindir) install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-exec-am: install-binPROGRAMS install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libtool ctags distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-exec install-exec-am \ install-info install-info-am install-man install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/ex12/0000775000000000000000000000000010771017616015121 5ustar libcorelinux-0.4.32/src/testdrivers/ex12/examp12.cpp0000664000000000000000000001612610771017616017110 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** \example examp12.cpp This example is to show use of the Proxy pattern. Our focus is on the use of restrictive access to accessors and mutators. Contributors AbstractBankAccount - which has the usual interface for fund management. BankAccount - Concrete implementation of above AccountProxy - Non-restrictive proxy which derives from subject RestrictedAccountProxy - subclass of AccountProxy which restricts access to deposits and displays only. Notes: By deriving the base AccountProxy from AbstractBankAccount, the proxy can be used as the latter (as in our example). But this is not required, if you want your application to expose the proxy types then you wouldn't need to derive from the domain types. This may prove more flexible in a complex class model. */ #include #include #include #include using namespace corelinux; using namespace std; #include #include // // Otherstuff // // // In module function prototypes // int main( void ); void doWork( void ); void addFunds( AbstractBankAccountPtr ); void removeFunds( AbstractBankAccountPtr ); void showBalance( AbstractBankAccountPtr ); // // Functions that work with Engine types // void handleAssertion( AssertionCref ); void handleException( ExceptionCref ); int main( void ) { // // Practice gracefull exception management // cout << endl; try { doWork(); } catch( AssertionRef aAssert ) { handleAssertion(aAssert); } catch( ExceptionRef aException ) { handleException(aException); } catch( std::exception & e ) { cerr << e.what() << endl; } catch( ... ) { cerr << "Unknown exception." << endl; } return 0; } void displayMenu( void ) { cout << endl; cout << "\tDeposit Funds 1" << endl; cout << "\tWithdraw Funds 2" << endl; cout << "\tDisplay Balance 3" << endl; cout << "\tToggle Access 4" << endl; cout << "\tQuit 5" << endl; cout << endl; } Int getCommand( void ) { displayMenu(); Int aOption; cout << "Enter the option number on the right to execute : "; cin >> aOption; cout << endl; return aOption; } const Amount startingBalance(20.0); void doWork( void ) { bool keepWorking(true); // // Open an account with 20.00 dollars, assume full // access and manage funds // BankAccount anAccount(startingBalance); AccountProxy aProxy(&anAccount); RestrictedAccountProxy aRProxy(&anAccount); AbstractBankAccountPtr currentAccount(&aProxy); cout << "Account started with a fist full of dollars." << endl; do { Int aCommand( getCommand() ); if( aCommand > 5 || aCommand < 0 ) { cerr << "You can't enter non-numeric options!" << endl; aCommand = 5; } else { ; // do nothing } switch( aCommand ) { // // Deposit funds // case 1: { addFunds( currentAccount ); break; } // // Withdraw funds // case 2: { removeFunds( currentAccount ); break; } // // Display balance // case 3: { showBalance( currentAccount ); break; } // // Change access // case 4: { if( currentAccount == &aProxy ) { cout << "Account now restricted." << endl; currentAccount = &aRProxy; } else { cout << "Account restrictions disabled." << endl; currentAccount = &aProxy; } break; } // // Exit routine // case 5: keepWorking=false; break; default: ; //do nothing break; } } while( keepWorking == true ); } // // Deposit funds from the account // void addFunds( AbstractBankAccountPtr aAccount ) { Amount total(0.0); cout << "Enter the amount of funds to deposit : "; cin >> total; try { aAccount->depositFunds( total ); } catch( InsufficientFundsExceptionRef aExcp ) { cerr << aExcp.getWhy() << endl; } return; } // // Withdraw funds from the account // void removeFunds( AbstractBankAccountPtr aAccount ) { Amount total(0.0); cout << "Enter the amount of funds to withdraw : "; cin >> total; try { aAccount->withdrawFunds( total ); } catch( InsufficientFundsExceptionRef aExcp ) { cerr << aExcp.getWhy() << endl; } return; } // // Show the balance and please excuse the lack of // locale sensitivity // void showBalance( AbstractBankAccountPtr aAccount ) { cout << "The total account balance : $ " << aAccount->getBalance() << endl; return; } // // Peform default (just show it) // void handleAssertion( AssertionCref aAssert ) { cerr << aAssert.getFile() << ":" << aAssert.getLine() << ":" << "Assertion: "; if( aAssert.getType() == Assertion::NEVERGETHERE ) { cerr << "NEVER_GET_HERE"; } else { if( aAssert.getType() == Assertion::REQUIRE ) { cerr << "REQUIRE"; } else if( aAssert.getType() == Assertion::ENSURE ) { cerr << "ENSURE"; } else if( aAssert.getType() == Assertion::CHECK ) { cerr << "CHECK"; } else { cerr << "ASSERT"; } cerr << "( " << aAssert.getWhy() << " )"; } cerr << endl; } void handleException( ExceptionCref aExcp ) { cerr << aExcp.getFile() << ":" << aExcp.getLine() << ":" << "Exception: " << aExcp.getWhy() << endl; } /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.2 $ $Date: 2000/08/31 22:50:31 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex12/include/0000775000000000000000000000000007743170750016550 5ustar libcorelinux-0.4.32/src/testdrivers/ex12/include/AccountProxy.hpp0000664000000000000000000000742107050545764021725 0ustar #if !defined(__ACCOUNTPROXY_HPP) #define __ACCOUNTPROXY_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__PROXY_HPP) #include #endif #if !defined(__ABSTRACTBANKACCOUNT_HPP) #include #endif DECLARE_CLASS( AccountProxy ); /** AccountProxy is a read/write access proxy that enables all of the methods for the underlying subject. It is derived from AbstractBankAccount as well so that the proxy can be used as a Account in the application. Another option would have been to "realize" the interface only, somewhat like a bridge, but this would have meant the application is aware of the Proxy type. */ class AccountProxy : public AbstractBankAccount, public CORELINUX(Proxy) { public: // // Constructors and destructor // /// Default constructor AccountProxy( void ); /// Initializing constructor AccountProxy( AbstractBankAccountPtr ); /// Copy constructor AccountProxy( AccountProxyCref ); /// Virtual Destructor virtual ~AccountProxy( void ); // // Operator overloads // /** Assignment operator @param AccountProxy const reference @return AccountProxy reference */ AccountProxyRef operator=( AccountProxyCref ); /** Equality operator compares the subject pointers @param AccountProxy const reference @return bool if subjects match */ bool operator==( AccountProxyCref ) const; // // Accessors // /** Retrieve the account balance @return Amount const reference to balance */ virtual AmountCref getBalance(void) const; // // Mutators // /** Withdraw an amount of funds from the account @param Amount - amount to withdraw @exception InsufficientFundsException if the amount requested to withdraw is not available in the account funds */ virtual void withdrawFunds(Amount) throw(InsufficientFundsException); /** Deposit funds into the account @param Amount - to deposit */ virtual void depositFunds(Amount) throw(InsufficientFundsException); }; #endif // if !defined(__ACCOUNTPROXY_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/02/10 14:32:20 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex12/include/BankAccount.hpp0000664000000000000000000000674407050545764021466 0ustar #if !defined(__BANKACCOUNT_HPP) #define _BANKACCOUNT_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__ABSTRACTBANKACCOUNT_HPP) #include #endif DECLARE_CLASS( BankAccount ); /** BankAccount is a concrete derivation that implements the AbstractBankAccount interface. It maintains a available funds balance and enforces the semantic that you can no carry a negative balance. */ class BankAccount : public AbstractBankAccount { public: // // Constructors and destructor // /// Default constructor BankAccount( void ); /// Starting balance constructor BankAccount( AmountCref ) throw( InvalidAmountException ); /// Copy constructor BankAccount( BankAccountCref ); /// Virtual destructor virtual ~BankAccount( void ); // // Operator overloads // /** Assignment operator @param BankAccount const reference @return BankAccount reference */ BankAccountRef operator=( BankAccountCref ); /** Equality operator @param BankAccount const reference @return true if accounts are the same */ bool operator==( BankAccountCref ) const; // // Accessors // /** Retrieve the account balance @return Amount const reference to balance */ virtual AmountCref getBalance(void) const; // // Mutators // /** Withdraw an amount of funds from the account @param Amount - amount to withdraw @exception InsufficientFundsException if the amount requested to withdraw is not available in the account funds */ virtual void withdrawFunds(Amount) throw(InsufficientFundsException); /** Deposit funds into the account @param Amount - to deposit */ virtual void depositFunds(Amount) throw(InsufficientFundsException); private: /// The account available funds Amount theAvailableFunds; }; #endif /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/02/10 14:32:20 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex12/include/RestrictedAccountProxy.hpp0000664000000000000000000000653407050545764023762 0ustar #if !defined(__RESTRICTEDACCOUNTPROXY_HPP) #define __RESTRICTEDACCOUNTPROXY_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__ACCOUNTPROXY_HPP) #include #endif DECLARE_CLASS( RestrictedAccountProxy ); /** RestrictedAccountProxy is a read/write access proxy with limitations, you can make deposits but you can't withdraw funds! */ class RestrictedAccountProxy : public AccountProxy { public: // // Constructors and destructor // /// Default constructor RestrictedAccountProxy( void ); /// Initializing constructor RestrictedAccountProxy( AbstractBankAccountPtr ); /// Copy constructor RestrictedAccountProxy( RestrictedAccountProxyCref ); /// Virtual Destructor virtual ~RestrictedAccountProxy( void ); // // Operator overloads // /** Assignment operator @param RestrictedAccountProxy const reference @return RestrictedAccountProxy reference */ RestrictedAccountProxyRef operator=( RestrictedAccountProxyCref ); /** Equality operator compares the subject pointers @param RestrictedAccountProxy const reference @return bool if subjects match */ bool operator==( RestrictedAccountProxyCref ) const; // // Accessors // /** Retrieve the account balance @return Amount const reference to balance */ AccountProxy::getBalance; // // Mutators // /** Deposit funds into the account @param Amount - to deposit */ AccountProxy::depositFunds; /** Withdraw funds from the account is not allowed and we throw an exception */ virtual void withdrawFunds( Amount ) throw( InsufficientFundsException ); }; #endif // if !defined(__RESTRICTEDACCOUNTPROXY_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/02/10 14:32:20 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex12/include/Makefile.am0000664000000000000000000000074307100671013020571 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 13:16:42 # LAST-MOD: 10-Apr-00 at 13:17:19 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc noinst_HEADERS = AbstractBankAccount.hpp BankAccount.hpp RestrictedAccountProxy.hpp AccountProxy.hpplibcorelinux-0.4.32/src/testdrivers/ex12/include/Makefile.in0000664000000000000000000002302307743170750020615 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 13:16:42 # LAST-MOD: 10-Apr-00 at 13:17:19 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc noinst_HEADERS = AbstractBankAccount.hpp BankAccount.hpp RestrictedAccountProxy.hpp AccountProxy.hpp subdir = src/testdrivers/ex12/include ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = DIST_SOURCES = HEADERS = $(noinst_HEADERS) DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.in Makefile.am all: all-am .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex12/include/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am info \ info-am install install-am install-data install-data-am \ install-exec install-exec-am install-info install-info-am \ install-man install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags uninstall uninstall-am uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/ex12/include/AbstractBankAccount.hpp0000664000000000000000000000755707050545764023155 0ustar #if !defined(__ABSTRACTBANKACCOUNT_HPP) #define __ABSTRACTBANKACCOUNT_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ DECLARE_TYPE( CORELINUX(Real), Amount ); DECLARE_TYPE( CORELINUX(Exception), InvalidAmountException ); DECLARE_TYPE( CORELINUX(Exception), InsufficientFundsException ); DECLARE_CLASS( AbstractBankAccount ); /** AbstractBankAccount provides the interface for all accounts used in this application. Common methods such as withdrawing and depositing funds are made available, as well as retrieving the balance of the account. */ class AbstractBankAccount { public: // // Constructors and destructor // /// Default constructor AbstractBankAccount( void ) { ; // do nothing } /// Copy constructor AbstractBankAccount( AbstractBankAccountCref aRef ) { ; // do nothing } /// Virtual Destructor virtual ~AbstractBankAccount( void ) { ; // do nothing } // // Operator overloads // /** Assignment operator @param AbstractBankAccount const reference @return AbstractBankAccount reference */ AbstractBankAccountRef operator=( AbstractBankAccountCref aRef ) { return ( *this ); } /** Equality operator @param AbstractBankAccount const reference @return bool - True if same instances */ bool operator==( AbstractBankAccountCref aRef ) const { return ( this == &aRef ); } // // Accessors // /** Retrieve the account balance @return Amount const reference to balance */ virtual AmountCref getBalance( void ) const = 0; // // Mutators // /** Withdraw an amount of funds from the account @param Amount - amount to withdraw @exception InsufficientFundsException if the amount requested to withdraw is not available in the account funds */ virtual void withdrawFunds( Amount ) throw(InsufficientFundsException) = 0; /** Deposit funds into the account @param Amount - to deposit */ virtual void depositFunds( Amount ) throw(InsufficientFundsException) = 0; }; #endif // if !defined(__ABSTRACTBANKACCOUNT_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/02/10 14:32:20 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex12/BankAccount.cpp0000664000000000000000000000671007050013155020007 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__BANKACCOUNT_HPP) #include #endif using namespace corelinux; const Amount ZeroAmount(0.0); // // Default constructor // BankAccount::BankAccount( void ) : theAvailableFunds( ZeroAmount ) { ; // do nothing } // // Starting balance amount // BankAccount::BankAccount( AmountCref aBalance ) throw( InvalidAmountException ) : theAvailableFunds( aBalance ) { if( aBalance < ZeroAmount ) { throw InvalidAmountException ( "Account can not have a negative balance", LOCATION ); } else { ; // do nothing } } // // Copy constructor // BankAccount::BankAccount( BankAccountCref anAccount ) : theAvailableFunds( anAccount.getBalance() ) { ; // do nothing } // // Destructor - set balance to zero // BankAccount::~BankAccount( void ) { theAvailableFunds = ZeroAmount; } // // Operator assignment // BankAccountRef BankAccount::operator=( BankAccountCref anAccount ) { if( (*this == anAccount) == false ) { theAvailableFunds = anAccount.getBalance(); } else { ; // do nothing } return ( *this ); } // // Operator equality // bool BankAccount::operator==( BankAccountCref anAccount ) const { return ( this == &anAccount ); } // // Retrieve the balance // AmountCref BankAccount::getBalance( void ) const { return theAvailableFunds; } // // Deposit into the account // void BankAccount::depositFunds( Amount anAmount ) throw(InsufficientFundsException) { if( ( getBalance() + anAmount ) > ZeroAmount ) { theAvailableFunds += anAmount; } else { throw InsufficientFundsException ( "Deposit leaves insufficient funds", LOCATION ); } } // // Withdraw from the account // void BankAccount::withdrawFunds( Amount anAmount ) throw(InsufficientFundsException) { if( ( getBalance() - anAmount ) > ZeroAmount ) { theAvailableFunds -= anAmount; } else { throw InsufficientFundsException ( "Withdraw leaves insufficient funds.", LOCATION ); } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/02/08 13:13:17 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex12/AccountProxy.cpp0000664000000000000000000000576507050013155020266 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__ACCOUNTPROXY_HPP) #include #endif using namespace corelinux; // // Default constructor // AccountProxy::AccountProxy( void ) : AbstractBankAccount(), Proxy() { ; // do nothing } // // Initializing constructor // AccountProxy::AccountProxy( AbstractBankAccountPtr aSubject ) : AbstractBankAccount(), Proxy( aSubject ) { ; // do nothing } // // Copy constructor // AccountProxy::AccountProxy( AccountProxyCref aProxy ) : AbstractBankAccount(), Proxy( aProxy ) { ; // do nothing } // // Destructor // AccountProxy::~AccountProxy( void ) { ; // do nothing } // // Assignment operator, because the possibility that multiple // proxies can share a single account we check if they are // different. // AccountProxyRef AccountProxy::operator=( AccountProxyCref aProxy ) { if( this != &aProxy ) { if( theSubject != aProxy.theSubject ) { theSubject = aProxy.theSubject; } else { ; // do nothing } } else { ; // do nothing } return ( *this ); } // // Equality overload // bool AccountProxy::operator==( AccountProxyCref aProxy ) const { return ( this == &aProxy || theSubject == aProxy.theSubject ); } // // Retrieve the balance // AmountCref AccountProxy::getBalance( void ) const { return getSubject().getBalance(); } // // Withdraw funds from account // void AccountProxy::withdrawFunds( Amount anAmount ) throw(InsufficientFundsException) { ( *this )->withdrawFunds( anAmount ); } // // Deposit funds into the account // void AccountProxy::depositFunds( Amount anAmount ) throw(InsufficientFundsException) { ( *this )->depositFunds( anAmount ); } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/02/08 13:13:17 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex12/Makefile.am0000664000000000000000000000110007137764156017157 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 08:34:22 # LAST-MOD: 23-Apr-00 at 16:27:55 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = include bin_PROGRAMS = ex12 ex12_SOURCES = RestrictedAccountProxy.cpp AccountProxy.cpp BankAccount.cpp examp12.cpp ex12_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la libcorelinux-0.4.32/src/testdrivers/ex12/Makefile.in0000664000000000000000000004420207743170747017202 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 08:34:22 # LAST-MOD: 23-Apr-00 at 16:27:55 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = include bin_PROGRAMS = ex12 ex12_SOURCES = RestrictedAccountProxy.cpp AccountProxy.cpp BankAccount.cpp examp12.cpp ex12_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la subdir = src/testdrivers/ex12 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = bin_PROGRAMS = ex12$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) am_ex12_OBJECTS = RestrictedAccountProxy.$(OBJEXT) \ AccountProxy.$(OBJEXT) BankAccount.$(OBJEXT) examp12.$(OBJEXT) ex12_OBJECTS = $(am_ex12_OBJECTS) ex12_DEPENDENCIES = ${top_builddir}/src/classlibs/corelinux/libcl++.la ex12_LDFLAGS = DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/admin/depcomp am__depfiles_maybe = depfiles @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/AccountProxy.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/BankAccount.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/RestrictedAccountProxy.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/examp12.Po CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ DIST_SOURCES = $(ex12_SOURCES) RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \ ps-recursive install-info-recursive uninstall-info-recursive \ all-recursive install-data-recursive install-exec-recursive \ installdirs-recursive install-recursive uninstall-recursive \ check-recursive installcheck-recursive DIST_COMMON = $(srcdir)/Makefile.in Makefile.am DIST_SUBDIRS = $(SUBDIRS) SOURCES = $(ex12_SOURCES) all: all-recursive .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc .lo .obj $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex12/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(bindir) @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f $(DESTDIR)$(bindir)/$$f"; \ rm -f $(DESTDIR)$(bindir)/$$f; \ done clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done ex12$(EXEEXT): $(ex12_OBJECTS) $(ex12_DEPENDENCIES) @rm -f ex12$(EXEEXT) $(CXXLINK) $(ex12_LDFLAGS) $(ex12_OBJECTS) $(ex12_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) core *.core distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AccountProxy.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BankAccount.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/RestrictedAccountProxy.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/examp12.Po@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if (etags --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ else \ include_option=--include; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -f $$subdir/TAGS && \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ || exit 1; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" \ distdir=../$(distdir)/$$subdir \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(PROGRAMS) installdirs: installdirs-recursive installdirs-am: $(mkinstalldirs) $(DESTDIR)$(bindir) install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: info: info-recursive info-am: install-data-am: install-exec-am: install-binPROGRAMS install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \ clean-binPROGRAMS clean-generic clean-libtool clean-recursive \ ctags ctags-recursive distclean distclean-compile \ distclean-generic distclean-libtool distclean-recursive \ distclean-tags distdir dvi dvi-am dvi-recursive info info-am \ info-recursive install install-am install-binPROGRAMS \ install-data install-data-am install-data-recursive \ install-exec install-exec-am install-exec-recursive \ install-info install-info-am install-info-recursive install-man \ install-recursive install-strip installcheck installcheck-am \ installdirs installdirs-am installdirs-recursive \ maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \ pdf pdf-am pdf-recursive ps ps-am ps-recursive tags \ tags-recursive uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-info-am uninstall-info-recursive uninstall-recursive # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/ex12/RestrictedAccountProxy.cpp0000664000000000000000000000453307050013155022307 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__RESTRICTEDACCOUNTPROXY_HPP) #include #endif using namespace corelinux; // // Default constructor // RestrictedAccountProxy::RestrictedAccountProxy( void ) : AccountProxy() { ; // do nothing } // // Initializing constructor // RestrictedAccountProxy::RestrictedAccountProxy( AbstractBankAccountPtr aSubject ) : AccountProxy( aSubject ) { ; // do nothing } // // Copy constructor // RestrictedAccountProxy::RestrictedAccountProxy( RestrictedAccountProxyCref aProxy ) : AccountProxy( aProxy ) { ; // do nothing } // // Destructor // RestrictedAccountProxy::~RestrictedAccountProxy( void ) { ; // do nothing } // // Assignment operator // RestrictedAccountProxyRef RestrictedAccountProxy::operator= ( RestrictedAccountProxyCref aProxy ) { AccountProxy::operator=( aProxy ); return ( *this ); } // // Equality overload // bool RestrictedAccountProxy::operator==( RestrictedAccountProxyCref aProxy ) const { return ( AccountProxy::operator==( aProxy ) ); } void RestrictedAccountProxy::withdrawFunds( Amount ) throw( InsufficientFundsException ) { throw InsufficientFundsException ( "You are not authorized to access this method!", LOCATION ); } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/02/08 13:13:17 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex3/0000775000000000000000000000000010771017615015040 5ustar libcorelinux-0.4.32/src/testdrivers/ex3/include/0000775000000000000000000000000007743170756016476 5ustar libcorelinux-0.4.32/src/testdrivers/ex3/include/FooBarClassAdapter.hpp0000664000000000000000000000653207050545764022650 0ustar #if !defined(__FOOBARCLASSADAPTER_HPP) #define __FOOBARCLASSADAPTER_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #if !defined(__ADAPTER_HPP) #include #endif #if !defined(__FOO_HPP) #include #endif #if !defined(__BAR_HPP) #include #endif /** FooBarClassAdapter provides the Foo (Target) interface by adapting Bar (Adaptee) through class inheritence. Class Adapters: Pro: Lets Adapter override some of the Adaptee's behavior, since Adapter is a subclass of Adaptee. Pro: Introduces only one object, and no additional pointer indirection is needed to get to the adaptee. Con: Adapts Adaptee to Target by commiting to a concrete Adapter class. As a consequence, a class adapter won't work when we want to adapt a class and all its subclasses. As you can see, this inteface is mainly concerned with emulating Foo. It does not realize the Bar interface */ DECLARE_CLASS(FooBarClassAdapter); class FooBarClassAdapter : public CORELINUX(Adapter), public Foo, private Bar { public: /// Default constructor FooBarClassAdapter( void ); /// Constructor with coordinates FooBarClassAdapter( CORELINUX(Int) aX, CORELINUX(Int) aY ) throw(CORELINUX(Exception)); /// Copy constructor FooBarClassAdapter( FooBarClassAdapterCref ); /// Destructor virtual ~FooBarClassAdapter( void ); // // Operator overloads // /// Assignment operator FooBarClassAdapterRef operator=( FooBarClassAdapterCref ); /// Equality operator bool operator==( FooBarClassAdapterCref ); // // Accessors // /// Get the Y coordinate virtual CORELINUX(IntCref) getVerticalPosition(void) const; /// Get the X coordinate virtual CORELINUX(IntCref) getHorizontalPosition(void) const; // // Mutators // /// Sets the Y coordinate virtual void setVerticalPosition(CORELINUX(Int)) throw(CORELINUX(Exception)); /// Sets the X coordinate virtual void setHorizontalPosition(CORELINUX(Int)) throw(CORELINUX(Exception)); }; #endif // if !defined __FOOBARCLASSADAPTER_HPP /* Common rcs information do not modify $Author: frankc $ $Revision: 1.4 $ $Date: 2000/02/10 14:32:20 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex3/include/FooBarObjectAdapter.hpp0000664000000000000000000000706007050545764023006 0ustar #if !defined(__FOOBAROBJECTADAPTER_HPP) #define __FOOBAROBJECTADAPTER_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__ADAPTER_HPP) #include #endif #if !defined(__FOO_HPP) #include #endif DECLARE_CLASS( Bar ); /** FooBarObjectAdapter provides the Foo (Target) interface by adapting Bar (Adaptee) through object delegation. Object Adapters: Pro: Lets a single Adapter work with many Adaptees-that is, the Adaptee itself and all of its subclasses (if any). The Adapter can also add functionaliry to all Adaptees at once. Con: Makes it harder to override Adaptee behavior. It will require subclassing Adaptee and making Adapter refer to the subclass rather than the Adaptee itself. As you can see, this inteface is mainly concerned with emulating Foo. It does not expose the Bar methods */ DECLARE_CLASS(FooBarObjectAdapter); class FooBarObjectAdapter : public CORELINUX(Adapter), public Foo { public: /// Constructor with coordinates FooBarObjectAdapter( BarPtr ) throw(CORELINUX(Exception)); /// Copy constructor FooBarObjectAdapter( FooBarObjectAdapterCref ); /// Destructor virtual ~FooBarObjectAdapter( void ); // // Operator overloads // /// Assignment operator FooBarObjectAdapterRef operator=( FooBarObjectAdapterCref ); /// Equality operator bool operator==( FooBarObjectAdapterCref ); // // Accessors // virtual CORELINUX(IntCref) getVerticalPosition(void) const; virtual CORELINUX(IntCref) getHorizontalPosition(void) const; // // Mutators // /// Sets the Y coordinate virtual void setVerticalPosition(CORELINUX(Int)) throw(CORELINUX(Exception)); /// Sets the X coordinate virtual void setHorizontalPosition(CORELINUX(Int)) throw(CORELINUX(Exception)); protected: /** The default constructor is moved to protected because the invariant state requires that FooBarObjectAdapter has the Bar Adaptee */ FooBarObjectAdapter( void ); /// Retrieves the Bar BarPtr getBar( void ) const; private: BarPtr theBar; }; #endif // if !defined __FOOBAROBJECTADAPTER_HPP /* Common rcs information do not modify $Author: frankc $ $Revision: 1.3 $ $Date: 2000/02/10 14:32:20 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex3/include/Makefile.am0000664000000000000000000000071607100671014020512 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 10:51:12 # LAST-MOD: 10-Apr-00 at 10:51:37 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc noinst_HEADERS = Bar.hpp Foo.hpp FooBarObjectAdapter.hpp FooBarClassAdapter.hpplibcorelinux-0.4.32/src/testdrivers/ex3/include/Makefile.in0000664000000000000000000002277407743170756020557 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 10:51:12 # LAST-MOD: 10-Apr-00 at 10:51:37 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc noinst_HEADERS = Bar.hpp Foo.hpp FooBarObjectAdapter.hpp FooBarClassAdapter.hpp subdir = src/testdrivers/ex3/include ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = DIST_SOURCES = HEADERS = $(noinst_HEADERS) DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.in Makefile.am all: all-am .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex3/include/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am info \ info-am install install-am install-data install-data-am \ install-exec install-exec-am install-info install-info-am \ install-man install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags uninstall uninstall-am uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/ex3/include/Bar.hpp0000664000000000000000000000516007050545764017711 0ustar #if !defined(__BAR_HPP) #define __BAR_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif DECLARE_CLASS( Bar ); /** Class Bar describes the Adaptee target that we want to behave like Foo. Bar is an class that specifies a screen coordinate system that is based on that 0,0 (X,Y) is the top left hand corner of the screen. It does not have a minimum or maximum. */ class Bar { public: /// Default Constructor Bar( void ); /// Constructor with known coordinates Bar( CORELINUX(Int) aX, CORELINUX(Int) aY ); /// Copy constructor Bar( BarCref ); /// Destructor virtual ~Bar( void ); // // Operator overloads // /// Assignment operator BarRef operator=( BarCref ); /// Equality operator bool operator==( BarCref ); // // Accessors // /// Return the Y coordinate of the point CORELINUX(IntCref) getVertical( void ) const; /// Return the X coordinate of the point CORELINUX(IntCref) getHorizontal( void ) const; // // Mutators // /// Sets the Y coordinate void setVertical( CORELINUX(Int) ); /// Sets the X coordinate void setHorizontal( CORELINUX(Int) ); protected: private: /// Y coordinate storage CORELINUX(Int) theVertical; /// X coordinate storage CORELINUX(Int) theHorizontal; }; #endif /* Common rcs information do not modify $Author: frankc $ $Revision: 1.4 $ $Date: 2000/02/10 14:32:20 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex3/include/Foo.hpp0000664000000000000000000000702207050545764017727 0ustar #if !defined(__FOO_HPP) #define __FOO_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif DECLARE_CLASS( Foo ); /** Class Foo describes the target interface that we want to adapt other objects or classes with different interfaces to behave like. Foo is an abstract class that specifies a screen coordinate system that is based on that 0,0 (X,Y) is the top left hand corner of the screen. We mock up the max dimensions to assume Xmax is 5 and Ymax is 5 inclusive. Attempting to fix to a point outside of the dimensions results in an exception. The minimum and maximum positions are fixed in static members because the original developer once declared "Who needs more than 5 pixels?" */ class Foo { public: /// Default Constructor Foo( void ); /// Copy constructor Foo( FooCref ); /// Destructor virtual ~Foo( void ); // // Operator overloads // /// Assignment operator FooRef operator=( FooCref ); /// Equality operator bool operator==( FooCref ); // // Accessors // /// Return the Y coordinate of the point virtual CORELINUX(IntCref) getVerticalPosition( void ) const = 0; /// Return the X coordinate of the point virtual CORELINUX(IntCref) getHorizontalPosition( void ) const = 0; // // Mutators // /// Sets the Y coordinate virtual void setVerticalPosition( CORELINUX(Int) ) throw(CORELINUX(Exception)) = 0; /// Sets the X coordinate virtual void setHorizontalPosition( CORELINUX(Int) ) throw(CORELINUX(Exception)) = 0; protected: /// Return minimum Y static CORELINUX(IntCref) getMinimumVerticalPosition( void ); /// Return maximum Y static CORELINUX(IntCref) getMaximumVerticalPosition( void ); /// Return minimum X static CORELINUX(IntCref) getMinimumHorizontalPosition( void ); /// Return maximum X static CORELINUX(IntCref) getMaximumHorizontalPosition( void ); protected: /// Fixed minimum Y static CORELINUX(Int) theMinimumVertical; /// Fixed maximum Y static CORELINUX(Int) theMaximumVertical; /// Fixed minimum X static CORELINUX(Int) theMinimumHorizontal; /// Fixed maximum X static CORELINUX(Int) theMaximumHorizontal; }; #endif /* Common rcs information do not modify $Author: frankc $ $Revision: 1.4 $ $Date: 2000/02/10 14:32:20 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex3/Foo.cpp0000664000000000000000000000425607041345157016277 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__FOO_HPP) #include #endif using namespace corelinux; // // The minimum and maximum screen coordinates // Int Foo::theMinimumVertical(0); Int Foo::theMaximumVertical(5); Int Foo::theMinimumHorizontal(0); Int Foo::theMaximumHorizontal(5); // // Default constructor // Foo::Foo( void ) { ; // do nothing } // // Copy constructor // Foo::Foo( FooCref ) { ; // do nothing } // // Destructor // Foo::~Foo( void ) { ; // do nothing } // // Assignment operator // FooRef Foo::operator =( FooCref ) { return (*this); } // // Equality operator // bool Foo::operator ==( FooCref aRef ) { return (this == &aRef); } // // Static, gets min Y // IntCref Foo::getMinimumVerticalPosition( void ) { return Foo::theMinimumVertical; } // // Static, gets max Y // IntCref Foo::getMaximumVerticalPosition( void ) { return Foo::theMaximumVertical; } // // Static, gets min X // IntCref Foo::getMinimumHorizontalPosition( void ) { return Foo::theMinimumHorizontal; } // // Static, gets max X // IntCref Foo::getMaximumHorizontalPosition( void ) { return Foo::theMaximumHorizontal; } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/01/19 14:30:07 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex3/examp3.cpp0000664000000000000000000001070210771017615016741 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** \example examp3.cpp This example is to show use of the Adapter type and pattern. In one case we implement an adapter by deriving from both the target interface and Adaptee, in the other, the Adapter has-a Adaptee. */ #include using namespace corelinux; #include #include #include #include using namespace std; // // In module function prototypes // int main( void ); // // Functions that expect Foo objects // void addOneToFoo( FooRef ); void displayFoo( FooRef ); void testFooConstraints( FooRef ); void handleAssertion( AssertionCref ); void handleException( ExceptionCref ); int main( void ) { // // Practice gracefull exception management // cout << endl; try { // // First test out the class adapter // FooBarClassAdapter aFooClassAdapter; addOneToFoo( aFooClassAdapter ); cout << "Displaying Foo Bar Class Adapter coordinates" << endl; displayFoo( aFooClassAdapter ); // Remove comment to force exception // testFooConstraints( aFooClassAdapter ); // // Now test out the object adapter // Bar aBarObject(3,1); FooBarObjectAdapter aFooObjectAdapter( &aBarObject ); addOneToFoo( aFooObjectAdapter ); cout << endl; cout << "Displaying Foo Bar Object Adapter coordinates" << endl; displayFoo( aFooObjectAdapter ); // Remove either comment to force exception // testFooConstraints( aFooObjectAdapter ); // FooBarObjectAdapter aFooObject( NULLPTR ); } catch( AssertionRef aAssert ) { handleAssertion(aAssert); } catch( ExceptionRef aException ) { handleException(aException); } catch( std::exception & e ) { cerr << e.what() << endl; } catch( ... ) { cerr << "Unknown exception." << endl; } return 0; } // // Increment Foo X and Y // void addOneToFoo( FooRef aRef ) { aRef.setVerticalPosition( aRef.getVerticalPosition() + 1 ); aRef.setHorizontalPosition( aRef.getHorizontalPosition() + 1 ); } // // Display the foo current coordinates // void displayFoo( FooRef aRef ) { cout << "X [" << aRef.getHorizontalPosition() << "] : Y [" << aRef.getVerticalPosition() << "]" << endl; } // // Stress Foo // void testFooConstraints( FooRef aRef ) { cout << endl; cout << "Stressing coordinate system" << endl; cout << endl; while( 1 ) { addOneToFoo( aRef ); displayFoo( aRef ); } } // // Peform default (just show it) // void handleAssertion( AssertionCref aAssert ) { cerr << aAssert.getFile() << ":" << aAssert.getLine() << ":" << "Assertion: "; if( aAssert.getType() == Assertion::NEVERGETHERE ) { cerr << "NEVER_GET_HERE"; } else { if( aAssert.getType() == Assertion::REQUIRE ) { cerr << "REQUIRE"; } else if( aAssert.getType() == Assertion::ENSURE ) { cerr << "ENSURE"; } else if( aAssert.getType() == Assertion::CHECK ) { cerr << "CHECK"; } else { cerr << "ASSERT"; } cerr << "( " << aAssert.getWhy() << " )"; } cerr << endl; } void handleException( ExceptionCref aExcp ) { cerr << aExcp.getFile() << ":" << aExcp.getLine() << ":" << "Exception: " << aExcp.getWhy() << endl; } /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.2 $ $Date: 2000/08/31 22:49:01 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex3/Makefile.am0000664000000000000000000000107507137764227017111 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 08:34:22 # LAST-MOD: 23-Apr-00 at 16:13:51 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = include bin_PROGRAMS = ex3 ex3_SOURCES = examp3.cpp Bar.cpp FooBarObjectAdapter.cpp Foo.cpp FooBarClassAdapter.cpp ex3_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.lalibcorelinux-0.4.32/src/testdrivers/ex3/Makefile.in0000664000000000000000000004430407743170756017125 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 08:34:22 # LAST-MOD: 23-Apr-00 at 16:13:51 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = include bin_PROGRAMS = ex3 ex3_SOURCES = examp3.cpp Bar.cpp FooBarObjectAdapter.cpp Foo.cpp FooBarClassAdapter.cpp ex3_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la subdir = src/testdrivers/ex3 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = bin_PROGRAMS = ex3$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) am_ex3_OBJECTS = examp3.$(OBJEXT) Bar.$(OBJEXT) \ FooBarObjectAdapter.$(OBJEXT) Foo.$(OBJEXT) \ FooBarClassAdapter.$(OBJEXT) ex3_OBJECTS = $(am_ex3_OBJECTS) ex3_DEPENDENCIES = ${top_builddir}/src/classlibs/corelinux/libcl++.la ex3_LDFLAGS = DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/admin/depcomp am__depfiles_maybe = depfiles @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/Bar.Po ./$(DEPDIR)/Foo.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/FooBarClassAdapter.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/FooBarObjectAdapter.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/examp3.Po CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ DIST_SOURCES = $(ex3_SOURCES) RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \ ps-recursive install-info-recursive uninstall-info-recursive \ all-recursive install-data-recursive install-exec-recursive \ installdirs-recursive install-recursive uninstall-recursive \ check-recursive installcheck-recursive DIST_COMMON = $(srcdir)/Makefile.in Makefile.am DIST_SUBDIRS = $(SUBDIRS) SOURCES = $(ex3_SOURCES) all: all-recursive .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc .lo .obj $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex3/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(bindir) @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f $(DESTDIR)$(bindir)/$$f"; \ rm -f $(DESTDIR)$(bindir)/$$f; \ done clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done ex3$(EXEEXT): $(ex3_OBJECTS) $(ex3_DEPENDENCIES) @rm -f ex3$(EXEEXT) $(CXXLINK) $(ex3_LDFLAGS) $(ex3_OBJECTS) $(ex3_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) core *.core distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Bar.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Foo.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FooBarClassAdapter.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FooBarObjectAdapter.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/examp3.Po@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if (etags --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ else \ include_option=--include; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -f $$subdir/TAGS && \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ || exit 1; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" \ distdir=../$(distdir)/$$subdir \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(PROGRAMS) installdirs: installdirs-recursive installdirs-am: $(mkinstalldirs) $(DESTDIR)$(bindir) install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: info: info-recursive info-am: install-data-am: install-exec-am: install-binPROGRAMS install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \ clean-binPROGRAMS clean-generic clean-libtool clean-recursive \ ctags ctags-recursive distclean distclean-compile \ distclean-generic distclean-libtool distclean-recursive \ distclean-tags distdir dvi dvi-am dvi-recursive info info-am \ info-recursive install install-am install-binPROGRAMS \ install-data install-data-am install-data-recursive \ install-exec install-exec-am install-exec-recursive \ install-info install-info-am install-info-recursive install-man \ install-recursive install-strip installcheck installcheck-am \ installdirs installdirs-am installdirs-recursive \ maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \ pdf pdf-am pdf-recursive ps ps-am ps-recursive tags \ tags-recursive uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-info-am uninstall-info-recursive uninstall-recursive # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/ex3/FooBarClassAdapter.cpp0000664000000000000000000000667407041345157021221 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__FOOBARCLASSADAPTER_HPP) #include #endif using namespace corelinux; // // Default constructor // FooBarClassAdapter::FooBarClassAdapter( void ) : Adapter( ), Foo( ), Bar( ) { ; // do nothing } // // Constructor with coordinates // We adhere to the Foo constraints by checking // the arguments with the boundries. // FooBarClassAdapter::FooBarClassAdapter( Int aX, Int aY ) throw(Exception) : Adapter( ), Foo( ), Bar( aX, aY ) { if( (aX < Foo::getMinimumHorizontalPosition() || aX > Foo::getMaximumHorizontalPosition() ) || (aY < Foo::getMinimumVerticalPosition() || aY > Foo::getMaximumVerticalPosition() ) ) { throw Exception("Invalid Foo Boundry",LOCATION); } else { ; // do nothing } } // // Copy constructor // FooBarClassAdapter::FooBarClassAdapter( FooBarClassAdapterCref aRef ) : Adapter( aRef ), Foo( aRef ), Bar( aRef ) { ; // do nothing } // // Destructor // FooBarClassAdapter::~FooBarClassAdapter( void ) { ; // do nothing } // // Assignment operator // FooBarClassAdapterRef FooBarClassAdapter::operator= ( FooBarClassAdapterCref aRef ) { if( *this == aRef ) { ; // do nothing } else { Bar::operator =( aRef ); } return (*this); } // // Equality test // bool FooBarClassAdapter::operator==( FooBarClassAdapterCref aRef ) { return (Bar::operator ==(aRef)); } // // Gets Y coordinate // IntCref FooBarClassAdapter::getVerticalPosition(void) const { return getVertical(); } // // Gets X coordinate // IntCref FooBarClassAdapter::getHorizontalPosition(void) const { return getHorizontal(); } // // Set the Y coordinate after validating with Foo // void FooBarClassAdapter::setVerticalPosition(Int aY) throw(Exception) { if(aY >= Foo::getMinimumVerticalPosition() && aY <= Foo::getMaximumVerticalPosition() ) { setVertical(aY); } else { throw Exception("Invalid Vertical Coordinate",LOCATION); } } // // Set the X coordinate after validating with Foo // void FooBarClassAdapter::setHorizontalPosition(Int aX) throw(Exception) { if(aX >= Foo::getMinimumVerticalPosition() && aX <= Foo::getMaximumVerticalPosition() ) { setHorizontal(aX); } else { throw Exception("Invalid Horizontal Coordinate",LOCATION); } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/01/19 14:30:07 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex3/Bar.cpp0000664000000000000000000000477007041345157016261 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__BAR_HPP) #include #endif using namespace corelinux; // // Default constructor // Bar::Bar( void ) : theVertical( 0 ), theHorizontal( 0 ) { ; // do nothing } // // Constructor with coords // Bar::Bar( Int aX, Int aY ) : theVertical( aY ), theHorizontal( aX ) { ; // do nothing } // // Copy constructor // Bar::Bar( BarCref aRef ) : theVertical( aRef.getVertical() ), theHorizontal( aRef.getHorizontal() ) { ; // do nothing } // // Destructor // Bar::~Bar( void ) { theVertical = 0; theHorizontal = 0; } // // Assignment operator // BarRef Bar::operator =( BarCref aRef ) { if( *this == aRef ) { ; // do nothing } else { theVertical = aRef.getVertical(); theHorizontal = aRef.getHorizontal(); } return (*this); } // // Equality operator // bool Bar::operator ==( BarCref aRef ) { bool isSame(false); if( aRef.getVertical() == theVertical && aRef.getHorizontal() == theHorizontal ) { isSame = true; } else { ; // do nothing } return (isSame); } // // Get Y coordinate // IntCref Bar::getVertical( void ) const { return theVertical; } // // Get X coordinate // IntCref Bar::getHorizontal( void ) const { return theHorizontal; } // // Set Y coordinate // void Bar::setVertical( Int aY ) { theVertical = aY; } // // Set X coordinate // void Bar::setHorizontal( Int aX ) { theHorizontal = aX; } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/01/19 14:30:07 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex3/FooBarObjectAdapter.cpp0000664000000000000000000000751507041347314021352 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__FOOBAROBJECTADAPTER_HPP) #include #endif #if !defined(__BAR_HPP) #include #endif using namespace corelinux; // // Default constructor breeches the contract // of state // FooBarObjectAdapter::FooBarObjectAdapter( void ) : Adapter( ), Foo( ), theBar( NULLPTR ) { NEVER_GET_HERE; } // // Constructor with coordinates // We adhere to the Foo constraints by checking // the arguments with the boundries. // FooBarObjectAdapter::FooBarObjectAdapter( BarPtr aBar ) throw(Exception) : Adapter( ), Foo( ), theBar( aBar ) { REQUIRE( aBar != NULLPTR ); if( (theBar->getHorizontal() < Foo::getMinimumHorizontalPosition() || theBar->getHorizontal() > Foo::getMaximumHorizontalPosition() ) || (theBar->getVertical() < Foo::getMinimumVerticalPosition() || theBar->getVertical() > Foo::getMaximumVerticalPosition() ) ) { throw Exception("Invalid Foo Boundry",LOCATION); } else { ; // do nothing } } // // Copy constructor // FooBarObjectAdapter::FooBarObjectAdapter( FooBarObjectAdapterCref aRef ) : Adapter( aRef ), Foo( aRef ), theBar( aRef.getBar() ) { ; // do nothing } // // Destructor // FooBarObjectAdapter::~FooBarObjectAdapter( void ) { theBar = NULLPTR; } // // Assignment operator // FooBarObjectAdapterRef FooBarObjectAdapter::operator= ( FooBarObjectAdapterCref aRef ) { if( *this == aRef ) { ; // do nothing } else { (*theBar) = *(aRef.getBar()); } return (*this); } // // Equality test // bool FooBarObjectAdapter::operator==( FooBarObjectAdapterCref aRef ) { return (*theBar == *(aRef.getBar())); } // // Return the Y coordinate // IntCref FooBarObjectAdapter::getVerticalPosition(void) const { return theBar->getVertical(); } // // Return the X coordinate // IntCref FooBarObjectAdapter::getHorizontalPosition(void) const { return theBar->getHorizontal(); } // // Set the Y coordinate after validating with Foo // void FooBarObjectAdapter::setVerticalPosition(Int aY) throw(Exception) { if(aY >= Foo::getMinimumVerticalPosition() && aY <= Foo::getMaximumVerticalPosition() ) { theBar->setVertical(aY); } else { throw Exception("Invalid Vertical Coordinate",LOCATION); } } // // Set the X coordinate after validating with Foo // void FooBarObjectAdapter::setHorizontalPosition(Int aX) throw(Exception) { if(aX >= Foo::getMinimumVerticalPosition() && aX <= Foo::getMaximumVerticalPosition() ) { theBar->setHorizontal(aX); } else { throw Exception("Invalid Horizontal Coordinate",LOCATION); } } // // Retrieves theBar Pointer // BarPtr FooBarObjectAdapter::getBar( void ) const { return theBar; } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/01/19 14:48:44 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex2/0000775000000000000000000000000010771017615015037 5ustar libcorelinux-0.4.32/src/testdrivers/ex2/examp2.cpp0000664000000000000000000001730410771017615016744 0ustar /* CoreLinux++ Copyright (C) 1999 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** \example examp2.cpp This example is to show use of the STL that CoreLinux wraps in macros. There was no purpose to wrapping them except to simplify the type defines to be consistent with CoreLinux++ C++ Standards naming conventions.It is assumed that the reader has some knowledge of the STL. */ #include #include // Defines map and multi-map using namespace corelinux; using namespace std; #include #include // // A map is like a set in regards to the keys, it // does not allow multiple key values. For our example // a dictionary does allow multiple keys so we use // a multi-map // CORELINUX_MULTIMAP( AbstractStringPtr, AbstractStringPtr, less, Dictionary ); enum DictionaryType { MAIN, USER }; // // Static entries to feed the dictionaries // struct _Entry { CharCptr theKey; CharCptr theDefinition; }; DECLARE_TYPE( struct _Entry, Entry ); // // In module function prototypes // int main( void ); // // Allow user to feed the dictionaries // void initializeDictionary( DictionaryRef, DictionaryType ); // // Generic print facility // void dumpDictionary( DictionaryRef, AbstractStringCref ); // // Allow merge into main dictionary // // // Assertion and Exception handlers // void handleAssertion( AssertionCref aAssert ); void handleException( ExceptionCref ); int main( void ) { // // Practice gracefull exception management // try { // Initialize the starter Dictionary mainBook; initializeDictionary( mainBook, MAIN ); dumpDictionary(mainBook,StringUtf8("Members of Main Dictionary")); // Emulate new entries added Dictionary userBook; initializeDictionary( userBook, USER ); dumpDictionary(userBook,StringUtf8("Members of User Dictionary")); // // Create a union of entries. We use a simple method // (and probable not as efficient) as the routines // available in stl_algo.h. // // You can consider which you would use based on // what behavior you want a merge to have. // Dictionary updatedBook(mainBook); updatedBook.insert(userBook.begin(),userBook.end()); dumpDictionary(updatedBook,StringUtf8("Members of NEW Main Dictionary")); // // Now we do the cleanup as I don't think it will // happen on it's own // DictionaryIterator begin( updatedBook.begin() ); DictionaryIterator end( updatedBook.begin() ); for( ; begin != end; ++begin ) { delete (*begin).first; delete (*begin).second; } updatedBook.clear(); mainBook.clear(); userBook.clear(); } catch( AssertionRef aAssert ) { handleAssertion(aAssert); } catch( ExceptionRef aException ) { handleException(aException); } catch( std::exception & e ) { cerr << e.what() << endl; } catch( ... ) { cerr << "Unknown exception." << endl; } return 0; } // // Initialize dictionary feeds the provided collection // with dictionary entries based on the enumerator. // Various assertions are provided. Entry mainEntries[] = { {"abstract class", "A class whose primary purpose is to define an interface"}, {"class", "A class defines an object's interface and implementation"}, {"concrete class", "A class having no abstract operations"} }; Entry userEntries[] = { {"monkey", "A person who stays up late creating code examples"}, {"dog house", "Where the monkey has to sleep"}, {"concrete class", "The class of material that a monkey gets hit with in the dog house"} }; void initializeDictionary ( DictionaryRef aDictionary, DictionaryType aTypeDictionary ) { Count aCount(0); // Generic entry counter EntryCptr aHead(NULLPTR); // Generic entry pointer // // Determine which dictionary to feed. // Extension suggestion: Have input come from // external source (keyboard, stream, etc) // if( aTypeDictionary == MAIN ) { aCount = sizeof( mainEntries ); aHead = mainEntries; } else if( aTypeDictionary == USER ) { aCount = sizeof( userEntries ); aHead = userEntries; } else { // Where missing something! NEVER_GET_HERE; } aCount /= sizeof( Entry ); // // Logic assertions // CHECK( aCount > 1 ); CHECK( aHead != NULLPTR ); // Feed the dictionary for( Count x = 0; x < aCount; ++x ) { aDictionary.insert ( Dictionary::value_type ( new StringUtf8(aHead[x].theKey), new StringUtf8(aHead[x].theDefinition) ) ); } } // // General routine for dumping a dictionary to cout // void dumpDictionary( DictionaryRef aRef , AbstractStringCref aHeader ) { REQUIRE( aHeader.supportsStandardInterface() == true ); REQUIRE( aHeader.getElementByteCount() == sizeof(Char) ); const string & aStdImpl = dynamic_cast(aHeader); cout << endl << aStdImpl << endl << endl; DictionaryIterator begin = aRef.begin(); // // First we test to insure that we can handle the string // implementation using StringUtf8 // if( (*begin).first->supportsStandardInterface() == true && (*begin).first->isUtf8() == true ) { DictionaryIterator end = aRef.end(); StringUtf8Ptr aKey(NULLPTR); StringUtf8Ptr aValue(NULLPTR); for( ; begin != end; ++begin ) { aKey = dynamic_cast((*begin).first); aValue = dynamic_cast((*begin).second); cout << *aKey << " = " << *aValue << endl; } } else { throw Exception("Unable to support string type",LOCATION); } } // // Peform default (just show it) // void handleAssertion( AssertionCref aAssert ) { cerr << aAssert.getFile() << ":" << aAssert.getLine() << ":" << "Assertion: "; if( aAssert.getType() == Assertion::NEVERGETHERE ) { cerr << "NEVER_GET_HERE"; } else { if( aAssert.getType() == Assertion::REQUIRE ) { cerr << "REQUIRE"; } else if( aAssert.getType() == Assertion::ENSURE ) { cerr << "ENSURE"; } else if( aAssert.getType() == Assertion::CHECK ) { cerr << "CHECK"; } else { cerr << "ASSERT"; } cerr << "( " << aAssert.getWhy() << " )"; } cerr << endl; } void handleException( ExceptionCref aExcp ) { cerr << aExcp.getFile() << ":" << aExcp.getLine() << ":" << "Exception: " << aExcp.getWhy() << endl; } /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.5 $ $Date: 2000/08/31 22:49:01 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex2/Makefile.am0000664000000000000000000000075307137764215017107 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 08:34:22 # LAST-MOD: 23-Apr-00 at 16:13:45 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc bin_PROGRAMS = ex2 ex2_SOURCES = examp2.cpp ex2_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.lalibcorelinux-0.4.32/src/testdrivers/ex2/Makefile.in0000664000000000000000000003365007743170754017124 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 08:34:22 # LAST-MOD: 23-Apr-00 at 16:13:45 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc bin_PROGRAMS = ex2 ex2_SOURCES = examp2.cpp ex2_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la subdir = src/testdrivers/ex2 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = bin_PROGRAMS = ex2$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) am_ex2_OBJECTS = examp2.$(OBJEXT) ex2_OBJECTS = $(am_ex2_OBJECTS) ex2_DEPENDENCIES = ${top_builddir}/src/classlibs/corelinux/libcl++.la ex2_LDFLAGS = DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/admin/depcomp am__depfiles_maybe = depfiles @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/examp2.Po CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ DIST_SOURCES = $(ex2_SOURCES) DIST_COMMON = $(srcdir)/Makefile.in Makefile.am SOURCES = $(ex2_SOURCES) all: all-am .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc .lo .obj $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex2/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(bindir) @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f $(DESTDIR)$(bindir)/$$f"; \ rm -f $(DESTDIR)$(bindir)/$$f; \ done clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done ex2$(EXEEXT): $(ex2_OBJECTS) $(ex2_DEPENDENCIES) @rm -f ex2$(EXEEXT) $(CXXLINK) $(ex2_LDFLAGS) $(ex2_OBJECTS) $(ex2_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) core *.core distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/examp2.Po@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: $(mkinstalldirs) $(DESTDIR)$(bindir) install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-exec-am: install-binPROGRAMS install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libtool ctags distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-exec install-exec-am \ install-info install-info-am install-man install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/ex11/0000775000000000000000000000000007743170747015132 5ustar libcorelinux-0.4.32/src/testdrivers/ex11/include/0000775000000000000000000000000010771017616016543 5ustar libcorelinux-0.4.32/src/testdrivers/ex11/include/MazeBuilderFactory.hpp0000664000000000000000000001563210771017615023015 0ustar #if !defined(__MAZEBUILDERFACTORY_HPP) #define __MAZEBUILDERFACTORY_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__ABSTRACTFACTORY_HPP) #include #endif #if !defined(__ALLOCATOR_HPP) #include #endif #if !defined(__MAP_HPP) #include #endif #if !defined(__NAMEIDENTIFIER_HPP) #include #endif using namespace std; // // We use a map for storing our allocators. We could have fire-walled this // as well. // CORELINUX_MAP( NameIdentifier, CORELINUX(AllocatorPtr), less, NamedAllocators ); DECLARE_CLASS( MapSite ); /** Maze Factory creates Rooms, Doors, and Walls. It is a AbstractFactory that uses a NameIdentifier as a key association to the respective Allocators (DoorAllocator, etc.). We use protected inheritence for the AbstractFactory because we are not interested letting the application have to do the work, they just need to create things! */ DECLARE_CLASS( MazeBuilderFactory ); class MazeBuilderFactory : protected CORELINUX(AbstractFactory) { public: // // Constructors and destructor // /// Default constructor MazeBuilderFactory( void ); /// Copy constructor MazeBuilderFactory( MazeBuilderFactoryCref ); /// Virtual Destructor virtual ~MazeBuilderFactory( void ); // // Operator overloads // /// Assignment operator MazeBuilderFactoryRef operator=( MazeBuilderFactoryCref ) throw(CORELINUX(Exception)); /// Equality operator bool operator==( MazeBuilderFactoryCref ) const; // // Accessors // /// Return number of allocators registered CORELINUX(Count) getAllocatorCount( void ) const; /// Return some instrumentation for this Factory CORELINUX(Count) getTotalAllocates( void ) const; /// Return some instrumentation for this Factory CORELINUX(Count) getTotalDeallocates( void ) const; /// Return the Room Allocator Key static NameIdentifierCref getRoomIdentifier( void ); /// Return the Door Allocator Key static NameIdentifierCref getDoorIdentifier( void ); /// Return the Wall Allocator Key static NameIdentifierCref getWallIdentifier( void ); // // Factory methods // /// Create a Maze Part virtual MapSitePtr createPart( NameIdentifierRef ) const throw(CORELINUX(AllocatorNotFoundException)); /// Destroy a Maze Part virtual void destroyPart( NameIdentifierRef, MapSitePtr ) const throw(CORELINUX(AllocatorNotFoundException)); /// Exchange allocator default with new one virtual CORELINUX(AllocatorPtr) setAllocator ( NameIdentifierRef, CORELINUX(AllocatorPtr) ); protected: // // Accessors overriden from AbstractFactory // /// Get the total MapSite objects created virtual CORELINUX(Count) getCreateCount( void ) const; /// Get the total MapSite objects destroyed virtual CORELINUX(Count) getDestroyCount( void ) const; /// Get the allocator identifier by NameIdentifier virtual CORELINUX(AllocatorPtr) getAllocator( NameIdentifier ) const throw(CORELINUX(AllocatorNotFoundException)); // // Mutators overriden from AbstractFactory // /// Add a allocator to the factory virtual void addAllocator( NameIdentifier, CORELINUX(AllocatorPtr) ) throw(CORELINUX(AllocatorAlreadyExistsException)); /// Remove the allocator from the factory and return to the /// caller virtual CORELINUX(AllocatorPtr) removeAllocator( NameIdentifier ) throw(CORELINUX(AllocatorNotFoundException)); // // Overides Iterator factory methods from AbstractFactory // /** Interface for creating an Iterator to iterate through the Allocators of an implementation. @return Iterator pointer of type Allocator pointer */ virtual CORELINUX(Iterator)* createIterator( void ) const; /** Interface for returning a created Iterator. @return Iterator pointer of type Allocator pointer */ virtual void destroyIterator( CORELINUX(Iterator)* ) const; /** Interface for creating an AssociativeIterator to iterate through the Identifiers and Allocators of an implementation. @return AssociativeIterator pointer of type */ virtual corelinux::AssociativeIterator* createAssociativeIterator( void ) const; /** Interface for returning a created AssociativeIterator. @return Iterator pointer of type */ virtual void destroyAssociativeIterator ( corelinux::AssociativeIterator* ) const; protected: /// Routine to flush contents from map void flushAllocators( void ); private: static NameIdentifier theRoomIdentifier; static NameIdentifier theDoorIdentifier; static NameIdentifier theWallIdentifier; NamedAllocators theAllocators; }; #endif // if !defined(__MAZEBUILDERFACTORY_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.2 $ $Date: 2000/08/31 22:50:31 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex11/include/Maze.hpp0000664000000000000000000000613110771017616020151 0ustar #if !defined(__MAZE_HPP) #define __MAZE_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__MAP_HPP) #include #endif #if !defined(__ROOM_HPP) #include #endif using namespace std; CORELINUX_MAP( RoomNumber, RoomPtr, less , RoomMap ); DECLARE_CLASS( MazeBuilder ); DECLARE_CLASS( Maze ); /** Maze is a collection of rooms connected by doors. You can move through the maze in various directions */ class Maze { friend class MazeBuilder; public: // // Constructors and destructor // /// Default constructor starts with a room Maze( RoomPtr aPtr ); /// Virtual destructor virtual ~Maze( void ); // // Operator overload // /// Equality, compares start room pointers bool operator==( MazeCref ) const; // // Accessors // /// Get the starting room RoomCref getStartLocation( void ) const; /// Get the current location RoomCref getCurrentLocation( void ) const; // // Mutators // /// Change the location if possible void walkInDirection( Direction ); protected: // // Constructors // /// Default constructor not allowed Maze( void ) throw( CORELINUX(Assertion) ); /// Copy constructor not allowed Maze( MazeCref ) throw( CORELINUX(Assertion) ); // // Operator overload // /// Assignment not allowed MazeRef operator=( MazeCref ) throw( CORELINUX(Assertion) ); // // Mutators // /// Add a room to the maze void addRoom( RoomPtr ); /// Get a room to manipulate RoomMapRef getRooms( void ); private: RoomPtr theStartRoom; RoomPtr theCurrentRoom; Direction theCurrentDirection; RoomMap theRooms; }; #endif // if !defined(__MAZE_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.3 $ $Date: 2000/08/31 22:50:31 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex11/include/Makefile.am0000664000000000000000000000067707100671013020576 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 13:15:59 # LAST-MOD: 23-Apr-00 at 16:18:09 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc noinst_HEADERS = MazeBuilderFactory.hpp MazeBuilder.hpp Maze.hpplibcorelinux-0.4.32/src/testdrivers/ex11/include/Makefile.in0000664000000000000000000002275707743170747020637 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 13:15:59 # LAST-MOD: 23-Apr-00 at 16:18:09 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc noinst_HEADERS = MazeBuilderFactory.hpp MazeBuilder.hpp Maze.hpp subdir = src/testdrivers/ex11/include ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = DIST_SOURCES = HEADERS = $(noinst_HEADERS) DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.in Makefile.am all: all-am .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex11/include/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am info \ info-am install install-am install-data install-data-am \ install-exec install-exec-am install-info install-info-am \ install-man install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags uninstall uninstall-am uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/ex11/include/MazeBuilder.hpp0000664000000000000000000000764007153560467021475 0ustar #if !defined(__MAZEBUILDER_HPP) #define __MAZEBUILDER_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__BUILDER_HPP) #include #endif #if !defined(__MAP_HPP) #include #endif #if !defined(__PAIR_HPP) #include #endif #if !defined(__NAMEIDENTIFIER_HPP) #include #endif #if !defined(__MAZE_HPP) #include #endif #if !defined(__ROOM_HPP) #include #endif // // We track the rooms here for construction as well // as a room to room door map // CORELINUX_PAIR( DoorPair, RoomNumber, RoomNumber ); CORELINUX_MULTIMAP( Direction, DoorPair, less , SideMap ); // // Forward class declarations // DECLARE_CLASS( MazeBuilderFactory ); DECLARE_CLASS( MazeBuilder ); /** MazeBuilder implements the Builder pattern. It constructs a simple maze by utilizing the MazeBuilderFactory for the various parts: Rooms, Doors, and Walls. It lets the default "create" of Builder to be exposed because the work is really done in the createProduct implementation here */ class MazeBuilder : public corelinux::Builder { public: // // Constructors and destructor // /// Default contructor MazeBuilder( MazeBuilderFactoryPtr ); /// Copy constructor MazeBuilder( MazeBuilderCref ); /// Virtual Destructor virtual ~MazeBuilder( void ); // // Operator overload // /// Equality operator bool operator==( MazeBuilderCref aRef ) const; protected: // // Constructors // /// Default constructor MazeBuilder( void ) throw( CORELINUX(Assertion) ); // // Operator overload // /// Assignment operator MazeBuilderRef operator=( MazeBuilderCref ) throw( CORELINUX(Assertion) ); // // Accessors // /// Base method to associate doors to rooms virtual SideMapCref getSideMap( void ) const; // // Mutators // /// Base method to construct layout template virtual void constructSideMap( void ); /// Our method for construction of Room parts virtual void createRooms( MazePtr ) const; /// Our method for constructing and connecting /// doors to rooms virtual void connectRoomsWithDoors( MazePtr ) const; /// Our method for destroying all doors virtual void disconnectAndDestroyDoors( MazePtr ) const; // // Factory methods // /// Pure virtual createProduct virtual MazePtr createProduct( void ) const; /// Pure virtual destroyProduct virtual void destroyProduct( MazePtr ) const ; private: SideMap theSideMap; }; #endif // if !defined(__MAZEBUILDER_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.4 $ $Date: 2000/08/31 22:50:31 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex11/Maze.cpp0000664000000000000000000000627507047273757016546 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__MAZE_HPP) #include #endif #if !defined(__ROOM_HPP) #include #endif #if !defined(__DOOR_HPP) #include #endif using namespace corelinux; // // Default constructor // Maze::Maze( RoomPtr aRoom ) : theStartRoom( aRoom ), theCurrentRoom( aRoom ), theCurrentDirection( NORTH ) { theRooms[theCurrentRoom->getRoomNumber()] = theCurrentRoom; } // // Protected default constructor // Maze::Maze( void ) throw(Assertion) : theStartRoom( NULLPTR ), theCurrentRoom( NULLPTR ), theCurrentDirection( NORTH ) { NEVER_GET_HERE; } // // Copy constructor // Maze::Maze( MazeCref ) throw(Assertion) : theStartRoom( NULLPTR ), theCurrentRoom( NULLPTR ), theCurrentDirection( NORTH ) { NEVER_GET_HERE; } // // Virtual destructor // Maze::~Maze( void ) { theStartRoom = NULLPTR; theCurrentRoom = NULLPTR; theRooms.clear(); } // // Operator assignment // MazeRef Maze::operator=( MazeCref ) throw(Assertion) { NEVER_GET_HERE; return (*this); } // // Equality operator // bool Maze::operator==( MazeCref aRef ) const { return ( this == &aRef && this->getStartLocation() == aRef.getStartLocation() ); } // // Get the starting point // RoomCref Maze::getStartLocation( void ) const { return (*theStartRoom); } // // Get the current location // RoomCref Maze::getCurrentLocation( void ) const { return (*theCurrentRoom); } // // When in a room, move in one of four directions // Walls bounce but we stay here, a door puts // our current room to what is on the other side // void Maze::walkInDirection( Direction aDirection ) { MapSitePtr aSide( theCurrentRoom->getSide(aDirection) ); DoorPtr aDoor( dynamic_cast(aSide) ); aSide->enter(); if( aDoor != NULLPTR ) { theCurrentRoom = aDoor->otherSideFrom( theCurrentRoom ); } else { ; // do nothing, already bounced } } // // Add a room to the maze // void Maze::addRoom( RoomPtr aRoom ) { theRooms[aRoom->getRoomNumber()] = aRoom; } // // Get the room collection // RoomMapRef Maze::getRooms( void ) { return theRooms; } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/02/06 13:32:31 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex11/Makefile.am0000664000000000000000000000116207137764153017163 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 08:34:22 # LAST-MOD: 23-Apr-00 at 16:17:26 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = include bin_PROGRAMS = ex11 ex11_SOURCES = examp11.cpp Maze.cpp MazeBuilder.cpp MazeBuilderFactory.cpp ex11_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la ${top_builddir}/src/testdrivers/exmplsupport/libexmplsupport.lalibcorelinux-0.4.32/src/testdrivers/ex11/Makefile.in0000664000000000000000000004430507743170747017205 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 08:34:22 # LAST-MOD: 23-Apr-00 at 16:17:26 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = include bin_PROGRAMS = ex11 ex11_SOURCES = examp11.cpp Maze.cpp MazeBuilder.cpp MazeBuilderFactory.cpp ex11_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la ${top_builddir}/src/testdrivers/exmplsupport/libexmplsupport.la subdir = src/testdrivers/ex11 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = bin_PROGRAMS = ex11$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) am_ex11_OBJECTS = examp11.$(OBJEXT) Maze.$(OBJEXT) MazeBuilder.$(OBJEXT) \ MazeBuilderFactory.$(OBJEXT) ex11_OBJECTS = $(am_ex11_OBJECTS) ex11_DEPENDENCIES = ${top_builddir}/src/classlibs/corelinux/libcl++.la \ ${top_builddir}/src/testdrivers/exmplsupport/libexmplsupport.la ex11_LDFLAGS = DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/admin/depcomp am__depfiles_maybe = depfiles @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/Maze.Po ./$(DEPDIR)/MazeBuilder.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/MazeBuilderFactory.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/examp11.Po CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ DIST_SOURCES = $(ex11_SOURCES) RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \ ps-recursive install-info-recursive uninstall-info-recursive \ all-recursive install-data-recursive install-exec-recursive \ installdirs-recursive install-recursive uninstall-recursive \ check-recursive installcheck-recursive DIST_COMMON = $(srcdir)/Makefile.in Makefile.am DIST_SUBDIRS = $(SUBDIRS) SOURCES = $(ex11_SOURCES) all: all-recursive .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc .lo .obj $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex11/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(bindir) @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f $(DESTDIR)$(bindir)/$$f"; \ rm -f $(DESTDIR)$(bindir)/$$f; \ done clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done ex11$(EXEEXT): $(ex11_OBJECTS) $(ex11_DEPENDENCIES) @rm -f ex11$(EXEEXT) $(CXXLINK) $(ex11_LDFLAGS) $(ex11_OBJECTS) $(ex11_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) core *.core distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Maze.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MazeBuilder.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MazeBuilderFactory.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/examp11.Po@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if (etags --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ else \ include_option=--include; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -f $$subdir/TAGS && \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ || exit 1; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" \ distdir=../$(distdir)/$$subdir \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(PROGRAMS) installdirs: installdirs-recursive installdirs-am: $(mkinstalldirs) $(DESTDIR)$(bindir) install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: info: info-recursive info-am: install-data-am: install-exec-am: install-binPROGRAMS install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \ clean-binPROGRAMS clean-generic clean-libtool clean-recursive \ ctags ctags-recursive distclean distclean-compile \ distclean-generic distclean-libtool distclean-recursive \ distclean-tags distdir dvi dvi-am dvi-recursive info info-am \ info-recursive install install-am install-binPROGRAMS \ install-data install-data-am install-data-recursive \ install-exec install-exec-am install-exec-recursive \ install-info install-info-am install-info-recursive install-man \ install-recursive install-strip installcheck installcheck-am \ installdirs installdirs-am installdirs-recursive \ maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \ pdf pdf-am pdf-recursive ps ps-am ps-recursive tags \ tags-recursive uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-info-am uninstall-info-recursive uninstall-recursive # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/ex11/MazeBuilder.cpp0000664000000000000000000003070107077737467020052 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__MAZEBUILDER_HPP) #include #endif #if !defined(__MAZEBUILDERFACTROY_HPP) #include #endif #if !defined(__MAZE_HPP) #include #endif #if !defined(__DOOR_HPP) #include #endif #if !defined(__ROOM_HPP) #include #endif #if !defined(__WALLFACTORY_HPP) #include #endif using namespace corelinux; // // A few things // static AllocatorPtr aHoldingArea( NULLPTR); const RoomNumber gRootNumber( 1 ); const RoomNumber gMaxRooms( 20 ); // // Ease of use macros // #define USEFACTORYAS( aVar ) \ MazeBuilderFactoryPtr (aVar)( dynamic_cast( this->getFactory() ) ) // // Protected constructor // MazeBuilder::MazeBuilder( void ) throw(Assertion) : Builder() { NEVER_GET_HERE; } // // Default constructor // MazeBuilder::MazeBuilder( MazeBuilderFactoryPtr aFactory ) : Builder ( (AbstractFactory*)(aFactory) ) { // // First get the name // NameIdentifier gWallName( MazeBuilderFactory::getWallIdentifier() ); // // We need to substitute the factory default // Wall allocator with the flyweight factory // aHoldingArea = aFactory->setAllocator ( gWallName, new WallFactory ); theSideMap.clear(); this->constructSideMap(); } // // Copy constructor // MazeBuilder::MazeBuilder( MazeBuilderCref aBuilder ) : Builder(aBuilder.getFactory()) { theSideMap.clear(); this->constructSideMap(); } // // Virtual destructor, we remove the substituted // flyweight factory // MazeBuilder::~MazeBuilder( void ) { USEFACTORYAS( aFactory ); NameIdentifier gWallName( MazeBuilderFactory::getWallIdentifier() ); aHoldingArea = aFactory->setAllocator ( gWallName, aHoldingArea ); delete aHoldingArea; } // // Assignment operator // MazeBuilderRef MazeBuilder::operator=( MazeBuilderCref ) throw( Assertion ) { NEVER_GET_HERE; return (*this); } // // Equality operator // bool MazeBuilder::operator==( MazeBuilderCref aRef ) const { return (this == &aRef); } // // createProduct called from Builder during create // public method. We create the first room and // then populate and interconnect the rooms // MazePtr MazeBuilder::createProduct( void ) const { USEFACTORYAS( aFactory ); NameIdentifier gRoomName( MazeBuilderFactory::getRoomIdentifier() ); RoomPtr aRoom ( dynamic_cast(aFactory->createPart( gRoomName ) ) ); aRoom->setRoomNumber( gRootNumber ); NameIdentifier gWallName( MazeBuilderFactory::getWallIdentifier() ); MapSitePtr aSide( aFactory->createPart(gWallName) ); aRoom->setSide( NORTH, aSide ); aRoom->setSide( EAST, aSide ); aRoom->setSide( WEST, aSide ); aRoom->setSide( SOUTH, aSide ); MazePtr aMaze( new Maze(aRoom) ); createRooms( aMaze ); connectRoomsWithDoors( aMaze ); return aMaze; } // // destroyProduct called from Builder during destroy // public method // void MazeBuilder::destroyProduct( MazePtr aMaze ) const { USEFACTORYAS( aFactory ); // // First disconnect and destroy doors // disconnectAndDestroyDoors( aMaze ); // // Now get rid of the rooms // RoomMapRef rooms( aMaze->getRooms() ); RoomMapIterator begin( rooms.begin() ); RoomMapIterator end( rooms.end() ); NameIdentifier gRoomName( MazeBuilderFactory::getRoomIdentifier() ); while( begin != end ) { aFactory->destroyPart( gRoomName, (*begin).second ); ++begin; } // // Drop the maze // delete aMaze; } // // Our method for instantiating a bunch of rooms // void MazeBuilder::createRooms( MazePtr aMaze ) const { USEFACTORYAS( aFactory ); NameIdentifier gRoomName( MazeBuilderFactory::getRoomIdentifier() ); for( RoomNumber x=gRootNumber+1; x <= gMaxRooms; ++x ) { RoomPtr aRoom ( dynamic_cast(aFactory->createPart( gRoomName ) ) ); aRoom->setRoomNumber( x ); NameIdentifier gWallName( MazeBuilderFactory::getWallIdentifier() ); MapSitePtr aSide( aFactory->createPart(gWallName) ); aRoom->setSide( NORTH, aSide ); aRoom->setSide( EAST, aSide ); aRoom->setSide( WEST, aSide ); aRoom->setSide( SOUTH, aSide ); aMaze->addRoom(aRoom); } } // // Our method for creating doors and connecting them // void MazeBuilder::connectRoomsWithDoors( MazePtr aMaze ) const { USEFACTORYAS( aFactory ); RoomMapRef rooms( aMaze->getRooms() ); SideMapCref aMap( getSideMap() ); NameIdentifier gDoorName( MazeBuilderFactory::getDoorIdentifier() ); SideMapConstIterator begin(aMap.lower_bound( NORTH )); SideMapConstIterator end(aMap.upper_bound( NORTH )); // // For each direction we create a door // set what is on both sides of the door // and set the door into the room on opposite sides // while( begin != end ) { DoorPair aPair( (*begin).second ); RoomPtr nRoom( (*rooms.find( aPair.first )).second ); RoomPtr sRoom( (*rooms.find( aPair.second )).second ); if( nRoom != NULLPTR && sRoom != NULLPTR ) { DoorPtr aDoor ( dynamic_cast(aFactory->createPart( gDoorName ) ) ); aDoor->setFirstRoom(nRoom); aDoor->setSecondRoom(sRoom); nRoom->setSide( NORTH, aDoor ); sRoom->setSide( SOUTH, aDoor ); } else { NEVER_GET_HERE; } ++begin; } begin = aMap.lower_bound( EAST ); end = aMap.upper_bound( EAST ); while( begin != end ) { DoorPair aPair( (*begin).second ); RoomPtr eRoom( (*rooms.find( aPair.first )).second ); RoomPtr wRoom( (*rooms.find( aPair.second )).second ); if( eRoom != NULLPTR && wRoom != NULLPTR ) { DoorPtr aDoor ( dynamic_cast(aFactory->createPart( gDoorName ) ) ); aDoor->setFirstRoom(eRoom); aDoor->setSecondRoom(wRoom); eRoom->setSide( EAST, aDoor ); wRoom->setSide( WEST, aDoor ); } else { NEVER_GET_HERE; } ++begin; } begin = aMap.lower_bound( WEST ); end = aMap.upper_bound( WEST ); while( begin != end ) { DoorPair aPair( (*begin).second ); RoomPtr wRoom( (*rooms.find( aPair.first )).second ); RoomPtr eRoom( (*rooms.find( aPair.second )).second ); if( wRoom != NULLPTR && eRoom != NULLPTR ) { DoorPtr aDoor ( dynamic_cast(aFactory->createPart( gDoorName ) ) ); aDoor->setFirstRoom(wRoom); aDoor->setSecondRoom(eRoom); wRoom->setSide( WEST, aDoor ); eRoom->setSide( EAST, aDoor ); } else { NEVER_GET_HERE; } ++begin; } begin = aMap.lower_bound( SOUTH ); end = aMap.upper_bound( SOUTH ); while( begin != end ) { DoorPair aPair( (*begin).second ); RoomPtr sRoom( (*rooms.find( aPair.first )).second ); RoomPtr nRoom( (*rooms.find( aPair.second )).second ); if( sRoom != NULLPTR && nRoom != NULLPTR ) { DoorPtr aDoor ( dynamic_cast(aFactory->createPart( gDoorName ) ) ); aDoor->setFirstRoom(sRoom); aDoor->setSecondRoom(nRoom); sRoom->setSide( SOUTH, aDoor ); nRoom->setSide( NORTH, aDoor ); } else { NEVER_GET_HERE; } ++begin; } } // // Destroys doors and cleans up rooms // void MazeBuilder::disconnectAndDestroyDoors( MazePtr aMaze ) const { USEFACTORYAS( aFactory ); RoomMapRef rooms( aMaze->getRooms() ); SideMapCref aMap( getSideMap() ); SideMapConstIterator begin(aMap.lower_bound( NORTH )); SideMapConstIterator end(aMap.upper_bound( NORTH )); NameIdentifier gDoorName( MazeBuilderFactory::getDoorIdentifier() ); // // For each direction, find the first door and // remove it's reference from the joining rooms, then // destroy the door // while( begin != end ) { DoorPair aPair( (*begin).second ); RoomPtr aRoom1( (*rooms.find( aPair.first )).second ); RoomPtr aRoom2( (*rooms.find( aPair.second )).second ); MapSitePtr aDoor( aRoom1->getSide( NORTH ) ); aRoom1->setSide( NORTH, NULLPTR ); aRoom2->setSide( SOUTH, NULLPTR ); aFactory->destroyPart( gDoorName, aDoor ); ++begin; } begin = aMap.lower_bound( EAST ); end = aMap.upper_bound( EAST ); while( begin != end ) { DoorPair aPair( (*begin).second ); RoomPtr aRoom1( (*rooms.find( aPair.first )).second ); RoomPtr aRoom2( (*rooms.find( aPair.second )).second ); MapSitePtr aDoor( aRoom1->getSide( EAST ) ); aRoom1->setSide( EAST, NULLPTR ); aRoom2->setSide( WEST, NULLPTR ); aFactory->destroyPart( gDoorName, aDoor ); ++begin; } begin = aMap.lower_bound( WEST ); end = aMap.upper_bound( WEST ); while( begin != end ) { DoorPair aPair( (*begin).second ); RoomPtr aRoom1( (*rooms.find( aPair.first )).second ); RoomPtr aRoom2( (*rooms.find( aPair.second )).second ); MapSitePtr aDoor( aRoom1->getSide( WEST ) ); aRoom1->setSide( WEST, NULLPTR ); aRoom2->setSide( EAST, NULLPTR ); aFactory->destroyPart( gDoorName, aDoor ); ++begin; } begin = aMap.lower_bound( SOUTH ); end = aMap.upper_bound( SOUTH ); while( begin != end ) { DoorPair aPair( (*begin).second ); RoomPtr aRoom1( (*rooms.find( aPair.first )).second ); RoomPtr aRoom2( (*rooms.find( aPair.second )).second ); MapSitePtr aDoor( aRoom1->getSide( SOUTH ) ); aRoom1->setSide( SOUTH, NULLPTR ); aRoom2->setSide( NORTH, NULLPTR ); aFactory->destroyPart( gDoorName, aDoor ); ++begin; } } // // Retrieve our door association map // SideMapCref MazeBuilder::getSideMap( void ) const { return theSideMap; } /* Our static room layout is basically what rooms are connected to doors, our maze: 10 9 20 8 19 7 18 6 17 5 14 15 16 4 3 13 12 11 2 1 <--- Starting point */ struct _Layout { Direction firstSide; RoomNumber firstRoom; RoomNumber secondRoom; } ; struct _Layout theLayout[] = { {NORTH,1,2},{NORTH,2,3},{NORTH,3,4}, {NORTH,4,5},{NORTH,5,6},{NORTH,6,7}, {NORTH,7,8},{NORTH,8,9},{NORTH,9,10}, {NORTH,16,17},{NORTH,17,18},{NORTH,18,19}, {WEST,2,11},{WEST,11,12},{WEST,12,13}, {EAST,5,14},{WEST,14,15},{WEST,15,16}, {NORTH,0,0} }; // // Feed the map for later usage, the ambitious would // write a data feed from somewhere // void MazeBuilder::constructSideMap( void ) { for( Count x = 0; theLayout[x].firstRoom != 0; ++x ) { theSideMap.insert ( SideMap::value_type ( theLayout[x].firstSide, DoorPair( theLayout[x].firstRoom, theLayout[x].secondRoom ) ) ); } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/04/21 02:38:47 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex11/examp11.cpp0000664000000000000000000001250007153560502017073 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** \example examp11.cpp This example is to show use of the Builder pattern. We reworked MazeFactory from ex9 to a more generic implementation for a number of reasons. 1. It was heavily type bound which made substitution of allocators difficult at best 2. MazeBuilder understands the nuances of rooms, doors, etc so we removed it from the MazeFactory 3. We added a Allocator registration method. 4. We factored down the createWall, etc. and destroyWall,etc. methods. to xxxxxPart which requires the NameIdentifier. In our sample, we create the maze and allow you to walk about */ #include #include #include #include #include using namespace corelinux; #include #include // // In module function prototypes // int main( void ); void doWalk( MazePtr ); // // Functions that work with Engine types // void handleAssertion( AssertionCref ); void handleException( ExceptionCref ); int main( void ) { // // Practice gracefull exception management // cout << endl; try { MazeBuilderFactory aMazeFactory; MazeBuilder aMazeBuilder(&aMazeFactory); MazePtr aMaze( aMazeBuilder.create() ); doWalk( aMaze ); aMazeBuilder.destroy( aMaze ); } catch( AssertionRef aAssert ) { handleAssertion(aAssert); } catch( ExceptionRef aException ) { handleException(aException); } catch( std::exception & e ) { cerr << e.what() << endl; } catch( ... ) { cerr << "Unknown exception." << endl; } return 0; } void displayMenu( void ) { cout << endl; cout << "\tGo North 1" << endl; cout << "\tGo East 2" << endl; cout << "\tGo West 3" << endl; cout << "\tGo South 4" << endl; cout << "\tQuit walking 5" << endl; cout << endl; } Int getCommand( void ) { displayMenu(); Int aOption; cout << "Enter the option number on the right to execute : "; cin >> aOption; return aOption; } void doWalk( MazePtr aMaze ) { bool keepWorking(true); do { cout << "Your are currently in room : " << aMaze->getCurrentLocation().getRoomNumber() << endl; Int aCommand( getCommand() ); if( aCommand > 5 || aCommand < 0 ) { cerr << "You can't enter non-numeric options!" << endl; aCommand = 5; } else { ; // do nothing } switch( aCommand ) { // // Travel North // case 1: { aMaze->walkInDirection( NORTH ); break; } // // Travel East // case 2: { aMaze->walkInDirection( EAST ); break; } // // Travel West // case 3: { aMaze->walkInDirection( WEST ); break; } // // Travel South // case 4: { aMaze->walkInDirection( SOUTH ); break; } // // Exit routine // case 5: keepWorking=false; break; default: ; //do nothing break; } } while( keepWorking == true ); } // // Peform default (just show it) // void handleAssertion( AssertionCref aAssert ) { cerr << aAssert.getFile() << ":" << aAssert.getLine() << ":" << "Assertion: "; if( aAssert.getType() == Assertion::NEVERGETHERE ) { cerr << "NEVER_GET_HERE"; } else { if( aAssert.getType() == Assertion::REQUIRE ) { cerr << "REQUIRE"; } else if( aAssert.getType() == Assertion::ENSURE ) { cerr << "ENSURE"; } else if( aAssert.getType() == Assertion::CHECK ) { cerr << "CHECK"; } else { cerr << "ASSERT"; } cerr << "( " << aAssert.getWhy() << " )"; } cerr << endl; } void handleException( ExceptionCref aExcp ) { cerr << aExcp.getFile() << ":" << aExcp.getLine() << ":" << "Exception: " << aExcp.getWhy() << endl; } /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.3 $ $Date: 2000/08/31 22:50:42 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex11/MazeBuilderFactory.cpp0000664000000000000000000002411307077737467021402 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__ABSTRACTALLOCATOR_HPP) #include #endif #if !defined(__CORELINUXASSOCIATIVEITERATOR_HPP) #include #endif #if !defined(__MAZEBUILDERFACTORY_HPP) #include #endif #if !defined(__DOOR_HPP) #include #endif #if !defined(__ROOM_HPP) #include #endif #if !defined(__WALL_HPP) #include #endif using namespace corelinux; // // Use default Allocators. Calls ::new and ::delete // CORELINUX_DEFAULT_ALLOCATOR( DoorAllocator, Door ); CORELINUX_DEFAULT_ALLOCATOR( RoomAllocator, Room ); CORELINUX_DEFAULT_ALLOCATOR( WallAllocator, Wall ); // // Typedefs for readability // typedef Iterator < AllocatorPtr > AllocatorsIterator; typedef AssociativeIterator < NameIdentifier, AllocatorPtr > CollectionIterator; typedef CoreLinuxAssociativeIterator < NamedAllocatorsConstIterator, NameIdentifier, AllocatorPtr > ImplementationIterator; // // Ease of use template methods to cast allocator // template AllocatorType castDownAllocator( AllocatorPtr aPtr ) { return dynamic_cast(aPtr); } template AllocatorType castDownIteratorElement( AllocatorsIterator *aPtr ) { return castDownAllocator(aPtr->getElement()); } // // Static data members // NameIdentifier MazeBuilderFactory::theDoorIdentifier("Door"); NameIdentifier MazeBuilderFactory::theRoomIdentifier("Room"); NameIdentifier MazeBuilderFactory::theWallIdentifier("Wall"); // // Constructor - Setup the allocators // MazeBuilderFactory::MazeBuilderFactory( void ) : AbstractFactory() { addAllocator(theDoorIdentifier,new DoorAllocator); addAllocator(theRoomIdentifier,new RoomAllocator); addAllocator(theWallIdentifier,new WallAllocator); } // // Copy constructor // MazeBuilderFactory::MazeBuilderFactory( MazeBuilderFactoryCref aRef ) : AbstractFactory( aRef ) { CollectionIterator *aItr( aRef.createAssociativeIterator() ); // // Iterate over references collection and duplicate what // we are able to given our domain. If the allocator // key does not match one of ours, we throw an assertion. // while( aItr->isValid() ) { NameIdentifier aName( aItr->getKey() ); if( aName == theDoorIdentifier ) { addAllocator( aName, aItr->getElement() ); } else if( aName == theRoomIdentifier ) { addAllocator( aName, aItr->getElement() ); } else if( aName == theWallIdentifier ) { addAllocator( aName, aItr->getElement() ); } else { NEVER_GET_HERE; } aItr->setNext(); } aRef.destroyAssociativeIterator( aItr ); } // // Destructor // MazeBuilderFactory::~MazeBuilderFactory( void ) { try { flushAllocators(); } catch( ... ) { ; // do NOT rethrow during destructor } } // // Assignment // MazeBuilderFactoryRef MazeBuilderFactory::operator=( MazeBuilderFactoryCref aRef ) throw(Exception) { throw Exception("Factory assignment not allowed!",LOCATION); return (*this); } // // Equality operator // bool MazeBuilderFactory::operator==( MazeBuilderFactoryCref aRef ) const { CollectionIterator *aItr( aRef.createAssociativeIterator() ); bool isSame( true ); while( aItr->isValid() && isSame == true ) { if( getAllocator( aItr->getKey() ) == NULLPTR ) { isSame = false; } else { aItr->setNext(); } } aRef.destroyAssociativeIterator( aItr ); return isSame; } // Return number of allocators registered Count MazeBuilderFactory::getAllocatorCount( void ) const { return Count( theAllocators.size() ); } // Return some instrumentation for this Factory Count MazeBuilderFactory::getTotalAllocates( void ) const { return getCreateCount(); } // Return some instrumentation for this Factory Count MazeBuilderFactory::getTotalDeallocates( void ) const { return getDestroyCount(); } // Return the Room Allocator Key NameIdentifierCref MazeBuilderFactory::getRoomIdentifier( void ) { return theRoomIdentifier; } // Return the Door Allocator Key NameIdentifierCref MazeBuilderFactory::getDoorIdentifier( void ) { return theDoorIdentifier; } // Return the Wall Allocator Key NameIdentifierCref MazeBuilderFactory::getWallIdentifier( void ) { return theWallIdentifier; } // Create a Maze Part MapSitePtr MazeBuilderFactory::createPart( NameIdentifierRef aName ) const throw(AllocatorNotFoundException) { AbstractAllocator *aAllocator ( ( AbstractAllocator * )getAllocator( aName ) ); return aAllocator->createType(); } // Destroy a Maze Part void MazeBuilderFactory::destroyPart ( NameIdentifierRef aName, MapSitePtr aPtr ) const throw(AllocatorNotFoundException) { AbstractAllocator *aAllocator ( ( AbstractAllocator * )getAllocator( aName ) ); aAllocator->destroyType( aPtr ); } // // Sets a allocator for a particular type, removing // the old one and returning it to the caller. // AllocatorPtr MazeBuilderFactory::setAllocator ( NameIdentifierRef aName, AllocatorPtr aNewAllocator ) { AllocatorPtr aOldAllocator( removeAllocator(aName) ); addAllocator( aName, aNewAllocator ); return aOldAllocator; } // // Get the total number of allocator allocates // Count MazeBuilderFactory::getCreateCount( void ) const { Count aCount( 0 ); AllocatorsIterator *aItr( this->createIterator() ); while( aItr->isValid() ) { aCount += aItr->getElement()->getAllocateCount(); aItr->setNext(); } this->destroyIterator( aItr ); return aCount; } // // Get the total number of allocator deallocates // Count MazeBuilderFactory::getDestroyCount( void ) const { Count aCount( 0 ); AllocatorsIterator *aItr( this->createIterator() ); while( aItr->isValid() ) { aCount += aItr->getElement()->getDeallocateCount(); aItr->setNext(); } this->destroyIterator( aItr ); return aCount; } // // Retrieve a allocator given an identifier // AllocatorPtr MazeBuilderFactory::getAllocator( NameIdentifier aName ) const throw(AllocatorNotFoundException) { AllocatorPtr aPtr(NULLPTR); NamedAllocatorsConstIterator fItr(theAllocators.find(aName)); if( fItr != theAllocators.end() ) { aPtr = (*fItr).second; } else { throw AllocatorNotFoundException( LOCATION ); } return aPtr; } // // Add a new allocator to the Factory // void MazeBuilderFactory::addAllocator( NameIdentifier aName, AllocatorPtr aPtr ) throw(AllocatorAlreadyExistsException) { REQUIRE( aPtr != NULLPTR ); NamedAllocatorsConstIterator fItr(theAllocators.find(aName)); if( fItr == theAllocators.end() ) { theAllocators.insert(NamedAllocators::value_type(aName,aPtr)); } else { throw AllocatorAlreadyExistsException(LOCATION); } } // // Remove a Allocator from the Factory and return it to the // caller // AllocatorPtr MazeBuilderFactory::removeAllocator( NameIdentifier aName ) throw(AllocatorNotFoundException) { AllocatorPtr aPtr( NULLPTR ); NamedAllocatorsIterator fItr( theAllocators.find(aName) ); if( fItr != theAllocators.end() ) { aPtr = (*fItr).second; theAllocators.erase( fItr ); } else { throw AllocatorNotFoundException( LOCATION ); } return aPtr; } // // Create a iterator for the allocators // AllocatorsIterator *MazeBuilderFactory::createIterator( void ) const { return new ImplementationIterator ( theAllocators.begin(), theAllocators.end() ); } // // Destroy the AllocatorIterator // void MazeBuilderFactory::destroyIterator( AllocatorsIterator *aPtr ) const { REQUIRE( aPtr != NULLPTR ); delete aPtr; } // // Create a iterator over the association, which includes the key // identifier // CollectionIterator *MazeBuilderFactory::createAssociativeIterator( void ) const { return new ImplementationIterator ( theAllocators.begin(), theAllocators.end() ); } // // Destroy the CollectionIterator // void MazeBuilderFactory::destroyAssociativeIterator ( CollectionIterator *aPtr ) const { REQUIRE( aPtr != NULLPTR ); delete aPtr; } // // Helper routine // void MazeBuilderFactory::flushAllocators( void ) { NamedAllocatorsIterator begin( theAllocators.begin() ); NamedAllocatorsIterator end( theAllocators.end() ); while( begin != end ) { delete (*begin).second; ++begin; } theAllocators.clear(); } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/04/21 02:38:47 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex17/0000775000000000000000000000000010771017616015126 5ustar libcorelinux-0.4.32/src/testdrivers/ex17/include/0000775000000000000000000000000007743170752016557 5ustar libcorelinux-0.4.32/src/testdrivers/ex17/include/HelpHandler.hpp0000664000000000000000000000504307102047565021452 0ustar #if !defined(__HELPHANDLER_HPP) #define __HELPHANDLER_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__HANDLER_HPP) #include #endif #if !defined(__HELPREQUEST_HPP) #include #endif DECLARE_CLASS( HelpHandler ); /** HelpHandler is the basic handler type for this example. If fields the handlesType query from the base corelinux::Handler from information compared in itself and the request. */ class HelpHandler : public CORELINUX( Handler ) { public: // // Constructors and destructor // /// Default constructor HelpHandler( HelpTopicCref ); /// Copy constructor HelpHandler( HelpHandlerCref ); /// Virtual destructor virtual ~HelpHandler( void ); // // Operator overloads // /// Assignment operator HelpHandlerRef operator=( HelpHandlerCref ); /// Equality operator bool operator==( HelpHandlerCref ) const; // // Accessors // /// Retrieves the type handled by this Handler HelpTopicCref getTypeHandled( void ) const; protected: /// Bad, needs type HelpHandler( void ) throw ( CORELINUX(Assertion) ); /// Determines if the handler supports the Request virtual bool handlesType( CORELINUX( RequestPtr ) ); private: /// Topic handled type HelpTopic theTypeHandled; }; #endif // if !defined(__HELPHANDLER_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/04/27 14:32:21 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex17/include/RequestHelpHandler.hpp0000664000000000000000000000413707102047565023026 0ustar #if !defined(__REQUESTHELPHANDLER_HPP) #define __REQUESTHELPHANDLER_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__HELPHANDLER_HPP) #include #endif DECLARE_CLASS( RequestHelpHandler ); /** RequestHelpHandler handles REQUEST_HELP requests. */ class RequestHelpHandler : public HelpHandler { public: // // Constructors and destructor // /// Default constructor RequestHelpHandler( void ); /// Copy constructor, calls base RequestHelpHandler( RequestHelpHandlerCref ); /// Virtual destructor virtual ~RequestHelpHandler( void ); // // Operator overloads // /// Assignment operator RequestHelpHandlerRef operator=( RequestHelpHandlerCref ); /// Equality operator bool operator==( RequestHelpHandlerCref ) const; // // Accessors // protected: /// Work performed after accepting request virtual void handle( CORELINUX( RequestPtr ) ); private: }; #endif // if !defined(__REQUESTHELPHANDLER_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/04/27 14:32:21 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex17/include/HelpRequest.hpp0000664000000000000000000000575407102047565021536 0ustar #if !defined(__HELPREQUEST_HPP) #define __HELPREQUEST_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__REQUEST_HPP) #include #endif /// Create some domain types DECLARE_TYPE( CORELINUX( Int ), HelpTopic ); const HelpTopic UNKNOWN_HELP(-1); const HelpTopic REQUEST_HELP(1); const HelpTopic HANDLER_HELP(2); DECLARE_CLASS( HelpRequest ); /** Generic Request type uses identifiers instead of derivations. */ class HelpRequest : public CORELINUX( Request ) { public: // // Constructors and destructor // /// Default constructor HelpRequest( HelpTopicCref ); /// Copy constructor HelpRequest( HelpRequestCref ); /// Virtual Destructor virtual ~HelpRequest( void ); // // Operator overloads // /// Assignment operator, copies topic HelpRequestRef operator=( HelpRequestCref ); /// Equality operator compares topics bool operator==( HelpRequestCref ) const; /// Equality operator compares topics bool operator==( HelpTopicCref ) const; // // Accessors // /// True if the request was handled inline bool wasHandled( void ) const { return theHandledFlag; } /// Coercion operator for type inline operator HelpTopicCref( void ) const { return theRequestType; } // // Mutators // /// Set the request as handled void setHandled( void ); protected: /// Bad, need topic! HelpRequest( void ) throw ( CORELINUX(Assertion) ); private: /// Determines if request was handled bool theHandledFlag; /// Describes the request type HelpTopic theRequestType; }; #endif // if !defined(__HELPREQUEST_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/04/27 14:32:21 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex17/include/HandlerHelpHandler.hpp0000664000000000000000000000413607102047565022752 0ustar #if !defined(__HANDLERHELPHANDLER_HPP) #define __HANDLERHELPHANDLER_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__HELPHANDLER_HPP) #include #endif DECLARE_CLASS( HandlerHelpHandler ); /** HandlerHelpHandler handles HANDLER_HELP requests. */ class HandlerHelpHandler : public HelpHandler { public: // // Constructors and destructor // /// Default constructor HandlerHelpHandler( void ); /// Copy constructor, calls base HandlerHelpHandler( HandlerHelpHandlerCref ); /// Virtual destructor virtual ~HandlerHelpHandler( void ); // // Operator overloads // /// Assignment operator HandlerHelpHandlerRef operator=( HandlerHelpHandlerCref ); /// Equality operator bool operator==( HandlerHelpHandlerCref ) const; // // Accessors // protected: /// Work performed after accepting request virtual void handle( CORELINUX( RequestPtr ) ); private: }; #endif // if !defined(__HANDLERHELPHANDLER_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/04/27 14:32:21 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex17/include/Makefile.am0000664000000000000000000000113207102047565020602 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 13:16:42 # LAST-MOD: 10-Apr-00 at 13:17:19 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc noinst_HEADERS = HelpHandler.hpp HelpRequest.hpp RequestHelpHandler.hpp HandlerHelpHandler.hpp # Common rcs information do not modify # $Author: frankc $ # $Revision: 1.1 $ # $Date: 2000/04/27 14:32:21 $ # $Locker: $ libcorelinux-0.4.32/src/testdrivers/ex17/include/Makefile.in0000664000000000000000000002321107743170752020623 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 13:16:42 # LAST-MOD: 10-Apr-00 at 13:17:19 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc noinst_HEADERS = HelpHandler.hpp HelpRequest.hpp RequestHelpHandler.hpp HandlerHelpHandler.hpp subdir = src/testdrivers/ex17/include ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = DIST_SOURCES = HEADERS = $(noinst_HEADERS) DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.in Makefile.am all: all-am .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex17/include/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am info \ info-am install install-am install-data install-data-am \ install-exec install-exec-am install-info install-info-am \ install-man install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags uninstall uninstall-am uninstall-info-am # Common rcs information do not modify # $Author: frankc $ # $Revision: 1.1 $ # $Date: 2000/04/27 14:32:21 $ # $Locker: $ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/ex17/HandlerHelpHandler.cpp0000664000000000000000000000435610771017616021326 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__HANDLERHELPHANDLER_HPP) #include #endif #include using namespace corelinux; using namespace std; // Default constructor HandlerHelpHandler::HandlerHelpHandler( void ) : HelpHandler(HANDLER_HELP) { ; // do nothing } // Copy constructor HandlerHelpHandler::HandlerHelpHandler( HandlerHelpHandlerCref aHandler ) : HelpHandler(aHandler) { ; // do nothing } // Destructor cleans slate HandlerHelpHandler::~HandlerHelpHandler( void ) { ; // do nothing } // Assignment operator HandlerHelpHandlerRef HandlerHelpHandler::operator=( HandlerHelpHandlerCref aHandler ) { HelpHandler::operator=( aHandler ); return (*this); } // Calls topic comparison bool HandlerHelpHandler::operator==( HandlerHelpHandlerCref aHandler ) const { return HelpHandler::operator==( aHandler ); } // The work I do for the request void HandlerHelpHandler::handle( RequestPtr aRequest ) { cout << endl; cout << "You have reached the Handler Help Handler!" << endl; cout << "It is my responsibility to provide help for" << endl; cout << "Handler types" << endl; cout << endl; HelpRequestPtr(aRequest)->setHandled(); } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/04/27 14:32:21 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex17/HelpHandler.cpp0000664000000000000000000000462007102047565020022 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__HELPHANDLER_HPP) #include #endif using namespace corelinux; // Default constructor HelpHandler::HelpHandler( HelpTopicCref aTopic ) : Handler(), theTypeHandled( aTopic ) { ; // do nothing } // Copy constructor HelpHandler::HelpHandler( HelpHandlerCref aHandler ) : Handler(aHandler), theTypeHandled( aHandler.getTypeHandled() ) { ; // do nothing } // Default is an error HelpHandler::HelpHandler( void ) throw ( Assertion ) : Handler(), theTypeHandled( UNKNOWN_HELP ) { NEVER_GET_HERE; } // Destructor cleans slate HelpHandler::~HelpHandler( void ) { theTypeHandled = UNKNOWN_HELP; } // Assignment operator HelpHandlerRef HelpHandler::operator=( HelpHandlerCref aHandler ) { Handler::operator=( aHandler ); theTypeHandled = aHandler.getTypeHandled(); return (*this); } // Calls topic comparison bool HelpHandler::operator==( HelpHandlerCref aHandler ) const { return ( ( this == &aHandler ? true : theTypeHandled == aHandler.getTypeHandled() ) ); } // Get my type HelpTopicCref HelpHandler::getTypeHandled( void ) const { return theTypeHandled; } // Dispatch mechanism bool HelpHandler::handlesType( RequestPtr aRequest ) { REQUIRE( aRequest != NULLPTR ); return( *(HelpRequestPtr(aRequest)) == theTypeHandled ); } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/04/27 14:32:21 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex17/examp17.cpp0000664000000000000000000001026710771017616017122 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** \example examp17.cpp This example is to show use of Chain Of Responsibility pattern. 1. Declare and define various handlers and requests 2. Create requets 3. Pass it to the chain head */ #include #include #include using namespace corelinux; using namespace std; #include #include // // In module function prototypes // int main( void ); void addHelpHandler( HelpHandlerPtr ); void callHandler( HelpRequestPtr ); // // General Functions // void handleAssertion( AssertionCref ); void handleException( ExceptionCref ); // // Global data // // // Main entry point // int main( void ) { cout << endl; // // Practice graceful exception management // try { // Create and register our handler types RequestHelpHandler aRequestHandler; addHelpHandler( &aRequestHandler ); HandlerHelpHandler aHandlerHandler; addHelpHandler( &aHandlerHandler ); // Call requests HelpRequest aRequestRequest( REQUEST_HELP ); callHandler(&aRequestRequest); HelpRequest aHandlerRequest( HANDLER_HELP ); callHandler(&aHandlerRequest); // Test the unknown HelpRequest aUnknownRequest( UNKNOWN_HELP ); callHandler(&aUnknownRequest); } catch( AssertionRef aAssert ) { handleAssertion(aAssert); } catch( ExceptionRef aException ) { handleException(aException); } catch( std::exception & e ) { cerr << e.what() << endl; } catch( ... ) { cerr << "Unknown exception." << endl; } return 0; } // Setup the chain of responsibility root // and perform adding to the chain static HelpHandlerPtr aRoot( NULLPTR ); void addHelpHandler( HelpHandlerPtr aHandler ) { if( aRoot != NULLPTR ) { aHandler->succeedHandler( aRoot ); } else { aRoot = aHandler; } } // // Handle the request, exception if unhandled // void callHandler( HelpRequestPtr aRequest ) { if( aRoot != NULLPTR ) { aRoot->handleRequest( aRequest ); if( aRequest->wasHandled() == false ) { cout << "Unhandled request [" << *aRequest << "] " << endl; } else { ; // do nothing } } else { NEVER_GET_HERE; } } // // Error handlers // void handleAssertion( AssertionCref aAssert ) { cerr << aAssert.getFile() << ":" << aAssert.getLine() << ":" << "Assertion: "; if( aAssert.getType() == Assertion::NEVERGETHERE ) { cerr << "NEVER_GET_HERE"; } else { if( aAssert.getType() == Assertion::REQUIRE ) { cerr << "REQUIRE"; } else if( aAssert.getType() == Assertion::ENSURE ) { cerr << "ENSURE"; } else if( aAssert.getType() == Assertion::CHECK ) { cerr << "CHECK"; } else { cerr << "ASSERT"; } cerr << "( " << aAssert.getWhy() << " )"; } cerr << endl; } void handleException( ExceptionCref aExcp ) { cerr << aExcp.getFile() << ":" << aExcp.getLine() << ":" << "Exception: " << aExcp.getWhy() << endl; } /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.2 $ $Date: 2000/08/31 22:49:02 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex17/Makefile.am0000664000000000000000000000126507137764203017171 0ustar # -*- Mode: makefile -*- # SUMMARY : # USAGE : make # AUTHOR : Christophe Prud'homme # ORG : Christophe Prud'homme # E-MAIL : # ORIG-DATE : 26-Apr-89 # LAST-MOD : 12-Apr-00 at 15:49:03 by Christophe Prud'homme # DESCRIPTION : # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = include bin_PROGRAMS = ex17 ex17_SOURCES = examp17.cpp HelpRequest.cpp HelpHandler.cpp RequestHelpHandler.cpp HandlerHelpHandler.cpp ex17_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la # Common rcs information do not modify # $Author: prudhomm $ # $Revision: 1.2 $ # $Date: 2000/07/27 07:45:07 $ # $Locker: $ libcorelinux-0.4.32/src/testdrivers/ex17/Makefile.in0000664000000000000000000004461107743170752017207 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY : # USAGE : make # AUTHOR : Christophe Prud'homme # ORG : Christophe Prud'homme # E-MAIL : # ORIG-DATE : 26-Apr-89 # LAST-MOD : 12-Apr-00 at 15:49:03 by Christophe Prud'homme # DESCRIPTION : # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = include bin_PROGRAMS = ex17 ex17_SOURCES = examp17.cpp HelpRequest.cpp HelpHandler.cpp RequestHelpHandler.cpp HandlerHelpHandler.cpp ex17_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la subdir = src/testdrivers/ex17 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = bin_PROGRAMS = ex17$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) am_ex17_OBJECTS = examp17.$(OBJEXT) HelpRequest.$(OBJEXT) \ HelpHandler.$(OBJEXT) RequestHelpHandler.$(OBJEXT) \ HandlerHelpHandler.$(OBJEXT) ex17_OBJECTS = $(am_ex17_OBJECTS) ex17_DEPENDENCIES = ${top_builddir}/src/classlibs/corelinux/libcl++.la ex17_LDFLAGS = DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/admin/depcomp am__depfiles_maybe = depfiles @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/HandlerHelpHandler.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/HelpHandler.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/HelpRequest.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/RequestHelpHandler.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/examp17.Po CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ DIST_SOURCES = $(ex17_SOURCES) RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \ ps-recursive install-info-recursive uninstall-info-recursive \ all-recursive install-data-recursive install-exec-recursive \ installdirs-recursive install-recursive uninstall-recursive \ check-recursive installcheck-recursive DIST_COMMON = $(srcdir)/Makefile.in Makefile.am DIST_SUBDIRS = $(SUBDIRS) SOURCES = $(ex17_SOURCES) all: all-recursive .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc .lo .obj $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex17/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(bindir) @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f $(DESTDIR)$(bindir)/$$f"; \ rm -f $(DESTDIR)$(bindir)/$$f; \ done clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done ex17$(EXEEXT): $(ex17_OBJECTS) $(ex17_DEPENDENCIES) @rm -f ex17$(EXEEXT) $(CXXLINK) $(ex17_LDFLAGS) $(ex17_OBJECTS) $(ex17_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) core *.core distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/HandlerHelpHandler.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/HelpHandler.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/HelpRequest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/RequestHelpHandler.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/examp17.Po@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if (etags --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ else \ include_option=--include; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -f $$subdir/TAGS && \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ || exit 1; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" \ distdir=../$(distdir)/$$subdir \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(PROGRAMS) installdirs: installdirs-recursive installdirs-am: $(mkinstalldirs) $(DESTDIR)$(bindir) install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: info: info-recursive info-am: install-data-am: install-exec-am: install-binPROGRAMS install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \ clean-binPROGRAMS clean-generic clean-libtool clean-recursive \ ctags ctags-recursive distclean distclean-compile \ distclean-generic distclean-libtool distclean-recursive \ distclean-tags distdir dvi dvi-am dvi-recursive info info-am \ info-recursive install install-am install-binPROGRAMS \ install-data install-data-am install-data-recursive \ install-exec install-exec-am install-exec-recursive \ install-info install-info-am install-info-recursive install-man \ install-recursive install-strip installcheck installcheck-am \ installdirs installdirs-am installdirs-recursive \ maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \ pdf pdf-am pdf-recursive ps ps-am ps-recursive tags \ tags-recursive uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-info-am uninstall-info-recursive uninstall-recursive # Common rcs information do not modify # $Author: prudhomm $ # $Revision: 1.2 $ # $Date: 2000/07/27 07:45:07 $ # $Locker: $ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/ex17/RequestHelpHandler.cpp0000664000000000000000000000435510771017616021400 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__REQUESTHELPHANDLER_HPP) #include #endif #include using namespace corelinux; using namespace std; // Default constructor RequestHelpHandler::RequestHelpHandler( void ) : HelpHandler(REQUEST_HELP) { ; // do nothing } // Copy constructor RequestHelpHandler::RequestHelpHandler( RequestHelpHandlerCref aHandler ) : HelpHandler(aHandler) { ; // do nothing } // Destructor cleans slate RequestHelpHandler::~RequestHelpHandler( void ) { ; // do nothing } // Assignment operator RequestHelpHandlerRef RequestHelpHandler::operator=( RequestHelpHandlerCref aHandler ) { HelpHandler::operator=( aHandler ); return (*this); } // Calls topic comparison bool RequestHelpHandler::operator==( RequestHelpHandlerCref aHandler ) const { return HelpHandler::operator==( aHandler ); } // The work I do for the request void RequestHelpHandler::handle( RequestPtr aRequest ) { cout << endl; cout << "You have reached the Request Help Handler!" << endl; cout << "It is my responsibility to provide help for" << endl; cout << "request types" << endl; cout << endl; HelpRequestPtr(aRequest)->setHandled(); } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/04/27 14:32:21 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex17/HelpRequest.cpp0000664000000000000000000000461007102047565020074 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__HELPREQUEST_HPP) #include #endif using namespace corelinux; // Default constructor HelpRequest::HelpRequest( HelpTopicCref aTopic ) : Request(), theHandledFlag( false ), theRequestType( aTopic ) { ; // do nothing } // Copy constructor HelpRequest::HelpRequest( HelpRequestCref aRequest ) : Request(aRequest), theHandledFlag( false ), theRequestType( aRequest ) { ; // do nothing } // Default should not be accessed HelpRequest::HelpRequest( void ) throw ( Assertion ) : Request(), theHandledFlag( false ), theRequestType( UNKNOWN_HELP ) { NEVER_GET_HERE; } // Destructor cleans slate HelpRequest::~HelpRequest( void ) { theHandledFlag = false; theRequestType = UNKNOWN_HELP; } // Assignment operator HelpRequestRef HelpRequest::operator=( HelpRequestCref aRequest ) { Request::operator=( aRequest ); theHandledFlag = aRequest.wasHandled(); theRequestType = aRequest; return (*this); } // Calls topic comparison bool HelpRequest::operator==( HelpRequestCref aRequest ) const { return ( (*this) == HelpTopicCref(aRequest) ); } // Topic comparison bool HelpRequest::operator==( HelpTopicCref aTopic ) const { return (theRequestType == aTopic ); } // Mark as serviced void HelpRequest::setHandled( void ) { theHandledFlag = true; } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/04/27 14:32:21 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/Makefile.am0000664000000000000000000000101707156610014016367 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 08:31:23 # LAST-MOD: $Id: Makefile.am,v 1.7 2000/09/10 04:37:32 frankc Exp $ # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = include exmplsupport ex1 ex2 ex3 ex4 ex5 ex6 ex7 ex8 ex9 ex10 ex11 ex12 ex13 ex14 ex15 ex16 ex17 ex18 ex19 ex20 ex21 ex22 libcorelinux-0.4.32/src/testdrivers/Makefile.in0000664000000000000000000003221107743170745016416 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 08:31:23 # LAST-MOD: $Id: Makefile.am,v 1.7 2000/09/10 04:37:32 frankc Exp $ # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = include exmplsupport ex1 ex2 ex3 ex4 ex5 ex6 ex7 ex8 ex9 ex10 ex11 ex12 ex13 ex14 ex15 ex16 ex17 ex18 ex19 ex20 ex21 ex22 subdir = src/testdrivers ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = DIST_SOURCES = RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \ ps-recursive install-info-recursive uninstall-info-recursive \ all-recursive install-data-recursive install-exec-recursive \ installdirs-recursive install-recursive uninstall-recursive \ check-recursive installcheck-recursive DIST_COMMON = $(srcdir)/Makefile.in Makefile.am DIST_SUBDIRS = $(SUBDIRS) all: all-recursive .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if (etags --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ else \ include_option=--include; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -f $$subdir/TAGS && \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ || exit 1; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" \ distdir=../$(distdir)/$$subdir \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-recursive dvi-am: info: info-recursive info-am: install-data-am: install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \ clean-generic clean-libtool clean-recursive ctags \ ctags-recursive distclean distclean-generic distclean-libtool \ distclean-recursive distclean-tags distdir dvi dvi-am \ dvi-recursive info info-am info-recursive install install-am \ install-data install-data-am install-data-recursive \ install-exec install-exec-am install-exec-recursive \ install-info install-info-am install-info-recursive install-man \ install-recursive install-strip installcheck installcheck-am \ installdirs installdirs-am installdirs-recursive \ maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-generic \ mostlyclean-libtool mostlyclean-recursive pdf pdf-am \ pdf-recursive ps ps-am ps-recursive tags tags-recursive \ uninstall uninstall-am uninstall-info-am \ uninstall-info-recursive uninstall-recursive # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/ex22/0000775000000000000000000000000010771017616015122 5ustar libcorelinux-0.4.32/src/testdrivers/ex22/include/0000775000000000000000000000000007743170755016556 5ustar libcorelinux-0.4.32/src/testdrivers/ex22/include/Makefile.am0000664000000000000000000000103507156544470020606 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 10:46:26 # LAST-MOD: 10-Apr-00 at 10:46:37 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc noinst_HEADERS = EventContext.hpp # Common rcs information do not modify # $Author: frankc $ # $Revision: 1.1 $ # $Date: 2000/09/09 23:35:20 $ # $Locker: $ libcorelinux-0.4.32/src/testdrivers/ex22/include/Makefile.in0000664000000000000000000002311407743170755020624 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 10:46:26 # LAST-MOD: 10-Apr-00 at 10:46:37 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc noinst_HEADERS = EventContext.hpp subdir = src/testdrivers/ex22/include ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = DIST_SOURCES = HEADERS = $(noinst_HEADERS) DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.in Makefile.am all: all-am .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex22/include/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am info \ info-am install install-am install-data install-data-am \ install-exec install-exec-am install-info install-info-am \ install-man install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags uninstall uninstall-am uninstall-info-am # Common rcs information do not modify # $Author: frankc $ # $Revision: 1.1 $ # $Date: 2000/09/09 23:35:20 $ # $Locker: $ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/ex22/include/EventContext.hpp0000664000000000000000000001160507156610014021701 0ustar #if !defined(__EVENTCONTEXT_HPP) #define __EVENTCONTEXT /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__THREADCONTEXT_HPP) #include #endif #if !defined(__EVENTSEMAPHOREGROUP_HPP) #include #endif typedef Int (*ArgumentFunctionPtr)( CORELINUX(EventSemaphoreGroupPtr) ); DECLARE_CLASS( EventContext ) /** EventContext shows off how by extending ThreadContext we can add arguments to the call and use any method not just those prototyped by the system. */ class EventContext : public CORELINUX(ThreadContext) { public: // // Constructors and destructor // /// Default Constructor EventContext ( ArgumentFunctionPtr, CORELINUX(EventSemaphoreGroupPtr) ) throw ( CORELINUX( Assertion ) ); /// With stack EventContext ( ArgumentFunctionPtr, CORELINUX(Size), CORELINUX(EventSemaphoreGroupPtr) ) throw ( CORELINUX( Assertion ) ); /// Copy constructor EventContext( EventContextCref ) throw ( CORELINUX( Assertion ) ); /// Virtual destructor virtual ~EventContext( void ); // // Operator overloads // /** Assignment operator changes the context @param EventContext reference to existing context @return EventContext reference @exception ThreadNotWaitingException if the Event context is not in a THREAD_WAITING_TO_START state. */ EventContextRef operator=( EventContextCref ) throw( CORELINUX( Assertion ) ); /** Equality operator compares contexts @param EventContext reference to existing context @return bool true if same */ bool operator==( EventContextCref ) const; // // Accessors // /// Return the argument to the caller CORELINUX(EventSemaphoreGroupPtr) getArgument( void ) const; // // Mutators // /// Sets the argument after initialization void setArgument( CORELINUX(EventSemaphoreGroupPtr) ) ; protected: // // Constructor // /// Can't use! EventContext( void ) throw ( CORELINUX( Assertion ) ); // // Accessor // /// Return the function to invoke ArgumentFunctionPtr getArgumentFunction( void ); private: /** The default allocation routine for the managers ThreadContext. The copy constructor is called with the argument reference @param ThreadContext reference to the context supplied in the startThread method. @return The newly allocated managed context */ static CORELINUX(ThreadContextPtr) argumentContextCreate ( CORELINUX(ThreadContextRef) ); /** The default destroyer of managed ThreadContexts. @param ThreadContext pointer to managed object. */ static void argumentContextDestroy( CORELINUX(ThreadContextPtr) ); static Int argumentFrame( CORELINUX(ThreadContextPtr) ); private: /// The callers argument CORELINUX(EventSemaphoreGroupPtr) theSemaphoreGroup; }; #endif /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/09/10 04:37:32 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex22/EventContext.cpp0000664000000000000000000001041207156610014020244 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__EVENTCONTEXT_HPP) #include #endif using namespace corelinux; // Default assertion EventContext::EventContext( void ) throw ( Assertion ) : ThreadContext() { NEVER_GET_HERE; } // Reasonable constructor EventContext::EventContext ( ArgumentFunctionPtr aFunction, EventSemaphoreGroupPtr arg ) throw ( Assertion ) : ThreadContext( CallerFunctionPtr(aFunction) ), theSemaphoreGroup( arg ) { REQUIRE( theSemaphoreGroup != NULLPTR ); ThreadContext::setFrameFunction( argumentFrame ); ThreadContext::setContextFunctions ( argumentContextCreate, argumentContextDestroy ); } // Reasonable constructor with stack EventContext::EventContext ( ArgumentFunctionPtr aFunction, Size stackSize, EventSemaphoreGroupPtr arg ) throw ( Assertion ) : ThreadContext( CallerFunctionPtr(aFunction), stackSize ), theSemaphoreGroup( arg ) { REQUIRE( theSemaphoreGroup != NULLPTR ); ThreadContext::setFrameFunction( argumentFrame ); ThreadContext::setContextFunctions ( argumentContextCreate, argumentContextDestroy ); } // Copy constructor EventContext::EventContext( EventContextCref aContext ) throw ( Assertion ) : ThreadContext( aContext ), theSemaphoreGroup( aContext.getArgument() ) { ; // do nothing } // Destructor EventContext::~EventContext( void ) { ; // do nothing } // Assignment operator EventContextRef EventContext::operator= ( EventContextCref aContext ) throw ( Assertion ) { ThreadContext::operator==(aContext); setArgument( aContext.getArgument() ); return ( *this ); } // Equality operator bool EventContext::operator==( EventContextCref aContext ) const { return ThreadContext::operator==(aContext); } // Get the argument EventSemaphoreGroupPtr EventContext::getArgument( void ) const { return theSemaphoreGroup; } ArgumentFunctionPtr EventContext::getArgumentFunction( void ) { return ArgumentFunctionPtr( ThreadContext::getCallerFunction() ); } // Set the argument void EventContext::setArgument( EventSemaphoreGroupPtr arg ) { theSemaphoreGroup = arg; } // Factory method redirect to insure we create a ArgumentContext object ThreadContextPtr EventContext::argumentContextCreate ( ThreadContextRef aContext ) { EventContextPtr aContextPtr( NULLPTR ); aContextPtr = new EventContext ( dynamic_cast(aContext) ); return aContextPtr; } // Factory method redirect to insure we destroy a ArgumentContext object void EventContext::argumentContextDestroy( ThreadContextPtr aContext ) { EventContextPtr myArg( NULLPTR ); myArg = dynamic_cast(aContext); if( myArg != NULLPTR ) { delete myArg; } else { ; // TBD } } // Our thread frame which allows us to call the single argument method Int EventContext::argumentFrame( ThreadContextPtr aContext ) { EventContextPtr aEventContext ( dynamic_cast(aContext) ); return (aEventContext->getArgumentFunction())(aEventContext->getArgument()); } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/09/10 04:37:32 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex22/examp22.cpp0000664000000000000000000001470410771017616017112 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** \example examp22.cpp This example is to show use of the EventSemaphoreGroup and EventSemaphore We do this by creating a number of threads that block on our wonderful event semaphore and, that's right, wait for the event to occur */ extern "C" { #include } #if !defined(__COMMON_HPP) #include #endif #if !defined(__EVENTSEMAPHOREGROUP_HPP) #include #endif #if !defined(__EVENTSEMAPHORE_HPP) #include #endif #if !defined(__THREAD_HPP) #include #endif #if !defined(__EVENTCONTEXT_HPP) #include #endif using namespace corelinux; using namespace std; #include #include // // In module function prototypes // int main( void ); // // General Functions // void handleAssertion( AssertionCref ); void handleException( ExceptionCref ); // // Thread entry point declarations // Int eventTest( EventSemaphoreGroupPtr ); // // Global data // static SemaphoreIdentifier gSemId(0); const ThreadIdentifier badThread(-1); // Error identifier // // Main entry point // int main( void ) { cout << endl; // // Practice graceful exception management // // Create the semaphore group EventSemaphorePtr aEventSem( NULLPTR ); EventSemaphoreGroup aGroup( 1 ); try { // // Create the group, private, and initialize the // controller semaphore so we start out locked // aEventSem = EventSemaphorePtr ( aGroup.createSemaphore( gSemId, FAIL_IF_EXISTS ) ); // // Create the threads // EventContext aContext1(eventTest,&aGroup); ThreadIdentifier aThread1( Thread::startThread(aContext1) ); if( aThread1 == badThread ) { cout << "Thread error!" << endl; } else { cout << "Thread 1 created!" << endl; } sleep(1); EventContext aContext2(eventTest,&aGroup); ThreadIdentifier aThread2( Thread::startThread(aContext2) ); if( aThread2 == badThread ) { cout << "Thread error!" << endl; } else { cout << "Thread 2 created!" << endl; } sleep(1); // // Do some actions which emulate the event // notifications to the waiting threads // while (1) { cout << "Release event semaphore" << endl; aEventSem->release(); sleep(2); aEventSem->post(); } cout << "Cleaning up" << endl; // // Cleanup // cout << "Return code from thread1 wait = " << Thread::waitForThread(aThread1) << endl; cout << "Return code from thread2 wait = " << Thread::waitForThread(aThread2) << endl; aGroup.destroySemaphore( aEventSem ); aEventSem = NULLPTR; } catch( NullPointerException aException ) { cerr << "Received NullPointerException!" << endl; handleException(aException); } catch( AssertionRef aAssert ) { handleAssertion(aAssert); } catch( ExceptionRef aException ) { handleException(aException); } catch( std::exception & e ) { cerr << e.what() << endl; } catch( ... ) { cerr << "Unknown exception." << endl; } if( aEventSem != NULLPTR ) { aGroup.destroySemaphore( aEventSem ); aEventSem = NULLPTR; } else { ; // do nothing } return 0; } // // Some utility functions // Int eventTest( EventSemaphoreGroupPtr aGroupPtr ) { Int rc(-1); if( aGroupPtr != NULLPTR ) { EventSemaphorePtr aEventSem( NULLPTR ); try { aEventSem = EventSemaphorePtr ( aGroupPtr->createSemaphore( gSemId, FAIL_IF_NOTEXISTS ) ); while (1) { rc = aEventSem->lockWithWait(); if ( rc == SUCCESS ) cout << "Semaphore obtained" << endl; } aGroupPtr->destroySemaphore( aEventSem ); aEventSem = NULLPTR; rc = 0; } catch( ExceptionRef aException ) { handleException(aException); } catch( ... ) { cerr << "Unknown exception received" << endl; } if( aEventSem != NULLPTR ) { aGroupPtr->destroySemaphore( aEventSem ); aEventSem = NULLPTR; } else { ; // do nothing } } else { cout << "Ugly situation here" << endl; } return rc; } // // Error handlers // void handleAssertion( AssertionCref aAssert ) { cerr << aAssert.getFile() << ":" << aAssert.getLine() << ":" << "Assertion: "; if( aAssert.getType() == Assertion::NEVERGETHERE ) { cerr << "NEVER_GET_HERE"; } else { if( aAssert.getType() == Assertion::REQUIRE ) { cerr << "REQUIRE"; } else if( aAssert.getType() == Assertion::ENSURE ) { cerr << "ENSURE"; } else if( aAssert.getType() == Assertion::CHECK ) { cerr << "CHECK"; } else { cerr << "ASSERT"; } cerr << "( " << aAssert.getWhy() << " )"; } cerr << endl; } void handleException( ExceptionCref aExcp ) { cerr << aExcp.getFile() << ":" << aExcp.getLine() << ":" << "Exception: " << aExcp.getWhy() << endl; } /* Common rcs information do not modify $Author: dulimart $ $Revision: 1.4 $ $Date: 2000/11/15 22:54:42 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex22/Makefile.am0000664000000000000000000000120007156544463017157 0ustar # -*- Mode: makefile -*- # SUMMARY : # USAGE : make # AUTHOR : Christophe Prud'homme # ORG : Christophe Prud'homme # E-MAIL : # ORIG-DATE : 26-Apr-89 # LAST-MOD : $Id: Makefile.am,v 1.1 2000/09/09 23:35:15 frankc Exp $ # DESCRIPTION : # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = include bin_PROGRAMS = ex22 ex22_SOURCES = examp22.cpp EventContext.cpp ex22_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la # Common rcs information do not modify # $Author: frankc $ # $Revision: 1.1 $ # $Date: 2000/09/09 23:35:15 $ # $Locker: $ libcorelinux-0.4.32/src/testdrivers/ex22/Makefile.in0000664000000000000000000004360607743170755017211 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY : # USAGE : make # AUTHOR : Christophe Prud'homme # ORG : Christophe Prud'homme # E-MAIL : # ORIG-DATE : 26-Apr-89 # LAST-MOD : $Id: Makefile.am,v 1.1 2000/09/09 23:35:15 frankc Exp $ # DESCRIPTION : # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = include bin_PROGRAMS = ex22 ex22_SOURCES = examp22.cpp EventContext.cpp ex22_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la subdir = src/testdrivers/ex22 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = bin_PROGRAMS = ex22$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) am_ex22_OBJECTS = examp22.$(OBJEXT) EventContext.$(OBJEXT) ex22_OBJECTS = $(am_ex22_OBJECTS) ex22_DEPENDENCIES = ${top_builddir}/src/classlibs/corelinux/libcl++.la ex22_LDFLAGS = DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/admin/depcomp am__depfiles_maybe = depfiles @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/EventContext.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/examp22.Po CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ DIST_SOURCES = $(ex22_SOURCES) RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \ ps-recursive install-info-recursive uninstall-info-recursive \ all-recursive install-data-recursive install-exec-recursive \ installdirs-recursive install-recursive uninstall-recursive \ check-recursive installcheck-recursive DIST_COMMON = $(srcdir)/Makefile.in Makefile.am DIST_SUBDIRS = $(SUBDIRS) SOURCES = $(ex22_SOURCES) all: all-recursive .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc .lo .obj $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex22/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(bindir) @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f $(DESTDIR)$(bindir)/$$f"; \ rm -f $(DESTDIR)$(bindir)/$$f; \ done clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done ex22$(EXEEXT): $(ex22_OBJECTS) $(ex22_DEPENDENCIES) @rm -f ex22$(EXEEXT) $(CXXLINK) $(ex22_LDFLAGS) $(ex22_OBJECTS) $(ex22_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) core *.core distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/EventContext.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/examp22.Po@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if (etags --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ else \ include_option=--include; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -f $$subdir/TAGS && \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ || exit 1; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" \ distdir=../$(distdir)/$$subdir \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(PROGRAMS) installdirs: installdirs-recursive installdirs-am: $(mkinstalldirs) $(DESTDIR)$(bindir) install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: info: info-recursive info-am: install-data-am: install-exec-am: install-binPROGRAMS install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \ clean-binPROGRAMS clean-generic clean-libtool clean-recursive \ ctags ctags-recursive distclean distclean-compile \ distclean-generic distclean-libtool distclean-recursive \ distclean-tags distdir dvi dvi-am dvi-recursive info info-am \ info-recursive install install-am install-binPROGRAMS \ install-data install-data-am install-data-recursive \ install-exec install-exec-am install-exec-recursive \ install-info install-info-am install-info-recursive install-man \ install-recursive install-strip installcheck installcheck-am \ installdirs installdirs-am installdirs-recursive \ maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \ pdf pdf-am pdf-recursive ps ps-am ps-recursive tags \ tags-recursive uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-info-am uninstall-info-recursive uninstall-recursive # Common rcs information do not modify # $Author: frankc $ # $Revision: 1.1 $ # $Date: 2000/09/09 23:35:15 $ # $Locker: $ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/exmplsupport/0000775000000000000000000000000007743170761017132 5ustar libcorelinux-0.4.32/src/testdrivers/exmplsupport/Room.cpp0000664000000000000000000000561307140163451020544 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__ROOM_HPP) #include #endif const RoomNumber netherNumber(0); using namespace corelinux; #include using namespace std; // // Default Constructor // Room::Room( void ) : theRoomNumber( netherNumber ) { theSides[0] = theSides[1] = theSides[2] = theSides[3] = NULLPTR; } // // Constructor with a room number // Room::Room( RoomNumberCref aNumber ) : theRoomNumber( aNumber ) { theSides[0] = theSides[1] = theSides[2] = theSides[3] = NULLPTR; ENSURE( theRoomNumber != netherNumber ); } // // Copy constructor // Room::Room( RoomCref ) throw( CORELINUX(Assertion) ) : theRoomNumber( netherNumber ) { theSides[0] = theSides[1] = theSides[2] = theSides[3] = NULLPTR; NEVER_GET_HERE; } // // Virtual destructor // Room::~Room( void ) { theSides[0] = theSides[1] = theSides[2] = theSides[3] = NULLPTR; theRoomNumber = netherNumber ; } // // Assignment operator // RoomRef Room::operator=( RoomCref ) throw( CORELINUX( Assertion ) ) { NEVER_GET_HERE; return (*this); } // // Equality operator // bool Room::operator==( RoomCref aRef ) const { return (theRoomNumber == aRef.getRoomNumber() ); } // // Retrieve the room number // RoomNumberCref Room::getRoomNumber( void ) const { return theRoomNumber; } // // Get what is on the specific side // MapSitePtr Room::getSide( Direction aDirection ) const { return theSides[aDirection]; } // // Set the room number // void Room::setRoomNumber( RoomNumberCref aRef ) { REQUIRE( theRoomNumber == netherNumber ); theRoomNumber = aRef; } // // Sets a object for the given direction side // void Room::setSide( Direction aDirection, MapSitePtr aMapSite ) { theSides[aDirection] = aMapSite; } // // Don't quite what to do with this // void Room::enter( void ) { cout << "You have entered Room " << theRoomNumber << endl; } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/07/28 01:51:37 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/exmplsupport/WallFactory.cpp0000664000000000000000000000456007077737467022106 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__WALLFACTORY_HPP) #include #endif using namespace corelinux; // Static instance used everywhere WallFlyweight WallFactory::theFlyweight; // // Default constructor // WallFactory::WallFactory( void ) : AbstractAllocator() { ; // do nothing } // // Copy constructor // WallFactory::WallFactory( WallFactoryCref aRef ) : AbstractAllocator(aRef) { ; // do nothing } // // Virtual destructor // WallFactory::~WallFactory( void ) { ; // do nothing } // // Assignment operator // WallFactoryRef WallFactory::operator=( WallFactoryCref aRef ) { if( *this == aRef ) { ; // do nothing } else { AbstractAllocator::operator=(aRef); } return ( *this ); } // // Equality operator // bool WallFactory::operator==( WallFactoryCref aRef ) const { return ( AbstractAllocator::operator==(aRef) ); } // // The overloaded allocator method invoked from AbstractAllocator // createType // WallFlyweightPtr WallFactory::allocateObject( void ) { return &theFlyweight; } // // The overloaded deallocator method invoked from AbstractAllocator // destroyType // void WallFactory::deallocateObject( WallFlyweightPtr aPtr ) { REQUIRE( aPtr != NULLPTR ); REQUIRE( aPtr == &theFlyweight ); } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/04/21 02:38:47 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/exmplsupport/Door.cpp0000664000000000000000000000670107077737467020561 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__DOOR_HPP) #include #endif #if !defined(__ROOM_HPP) #include #endif using namespace corelinux; // // Constructor door defaults to open // Door::Door( RoomPtr aFirstRoom, RoomPtr aSecondRoom ) : theFirstRoom( aFirstRoom ), theSecondRoom( aSecondRoom ), theDoorState( DOOROPEN ) { ; // do nothing } // // Copy Constructor // Door::Door( DoorCref aDoor ) : theFirstRoom( aDoor.getFirstRoom() ), theSecondRoom( aDoor.getSecondRoom() ), theDoorState( aDoor.isOpen() ? DOOROPEN : DOORCLOSED ) { ; // do nothing } // // Destructor // Door::~Door( void ) { theFirstRoom = theSecondRoom = NULLPTR; } // // Assignment operator // DoorRef Door::operator=( DoorCref aRef ) throw( Assertion ) { if( *this == aRef ) { ; // do nothing } else { setFirstRoom(aRef.getFirstRoom()); setSecondRoom(aRef.getSecondRoom()); theDoorState = aRef.isOpen() ? DOOROPEN : DOORCLOSED ; } return (*this); } /// Equality operator bool Door::operator==( DoorCref aRef ) const { return ( theFirstRoom == aRef.getFirstRoom() && theSecondRoom == aRef.getSecondRoom() ); } // Is door open - true is yes bool Door::isOpen( void ) const { return (theDoorState == DOOROPEN); } // Is door closed - true is yes bool Door::isClosed( void ) const { return (theDoorState == DOORCLOSED); } // Get the first room RoomPtr Door::getFirstRoom( void ) const { return theFirstRoom; } // Get the second room RoomPtr Door::getSecondRoom( void ) const { return theSecondRoom; } // Get the opposite room from the argument RoomPtr Door::otherSideFrom( RoomPtr aPtr ) const throw( Assertion ) { REQUIRE( aPtr != NULLPTR ); return ( aPtr == getFirstRoom() ? getSecondRoom() : getFirstRoom() ); } // Opens door if closed void Door::setOpen( void ) { theDoorState = DOOROPEN; } // Closes door if open void Door::setClosed( void ) { theDoorState = DOORCLOSED; } // Set the first room void Door::setFirstRoom( RoomPtr aPtr ) throw( Assertion ) { REQUIRE( aPtr != NULLPTR ); theFirstRoom = aPtr; } // Set the second room void Door::setSecondRoom( RoomPtr aPtr ) throw( Assertion ) { REQUIRE( aPtr != NULLPTR ); theSecondRoom = aPtr; } // // Pure virtual, I don't know what to do as I enter // a door? Do I check if it is open? // void Door::enter( void ) { ; // do nothing } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/04/21 02:38:47 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/exmplsupport/WallFlyweight.cpp0000664000000000000000000000360307140163451022407 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__WALLFLYWEIGHT_HPP) #include #endif using namespace corelinux; #include using namespace std; // // Default constructor // WallFlyweight::WallFlyweight( void ) : MapSite(), Flyweight() { ; // do nothing } // // Copy constructor // WallFlyweight::WallFlyweight( WallFlyweightCref aRef ) : MapSite( aRef ), Flyweight( aRef ) { ; // do nothing } // // Virtual destructor // WallFlyweight::~WallFlyweight( void ) { ; // do nothing } // // Assignment // WallFlyweightRef WallFlyweight::operator=( WallFlyweightCref ) { return (*this); } // // Equality // bool WallFlyweight::operator==( WallFlyweightCref aRef ) const { return ( this == &aRef ); } // // Operation // void WallFlyweight::enter( void ) { cout << "Bam you just hit a flyweight wall" << endl; } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/07/28 01:51:37 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/exmplsupport/MazeFactory.cpp0000664000000000000000000002521007167614213022055 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__ABSTRACTALLOCATOR_HPP) #include #endif #if !defined(__CORELINUXASSOCIATIVEITERATOR_HPP) #include #endif #if !defined(__VECTOR_HPP) #include #endif #if !defined(__MAZEFACTORY_HPP) #include #endif #if !defined(__DOOR_HPP) #include #endif #if !defined(__ROOM_HPP) #include #endif #if !defined(__WALL_HPP) #include #endif using namespace corelinux; // // Constant Identifiers for our domain // const NameIdentifier doorName("Door"); const NameIdentifier roomName("Room"); const NameIdentifier wallName("Wall"); // // Use default Allocators. Calls ::new and ::delete // CORELINUX_DEFAULT_ALLOCATOR( DoorAllocator, Door ); CORELINUX_DEFAULT_ALLOCATOR( RoomAllocator, Room ); CORELINUX_DEFAULT_ALLOCATOR( WallAllocator, Wall ); // // Typedefs for readability // typedef Iterator < AllocatorPtr > AllocatorsIterator; typedef AssociativeIterator < NameIdentifier, AllocatorPtr > CollectionIterator; typedef CoreLinuxAssociativeIterator < NamedAllocatorsConstIterator, NameIdentifier, AllocatorPtr > ImplementationIterator; // // Ease of use template methods to cast allocator // template AllocatorType castDownAllocator( AllocatorPtr aPtr ) { return dynamic_cast(aPtr); } template AllocatorType castDownIteratorElement( AllocatorsIterator *aPtr ) { return castDownAllocator(aPtr->getElement()); } // // Constructor - Setup the allocators // MazeFactory::MazeFactory( void ) : AbstractFactory() { addAllocator(doorName,new DoorAllocator); addAllocator(roomName,new RoomAllocator); addAllocator(wallName,new WallAllocator); } // // Copy constructor // MazeFactory::MazeFactory( MazeFactoryCref aRef ) : AbstractFactory( aRef ) { CollectionIterator *aItr( aRef.createAssociativeIterator() ); // // Iterate over references collection and duplicate what // we are able to given our domain // while( aItr->isValid() ) { NameIdentifier aName( aItr->getKey() ); if( aName == doorName ) { addAllocator ( aName, castDownIteratorElement(aItr) ); } else if( aName == roomName ) { addAllocator ( aName, castDownIteratorElement(aItr) ); } else if( aName == wallName ) { addAllocator ( aName, castDownIteratorElement(aItr) ); } else { NEVER_GET_HERE; } aItr->setNext(); } aRef.destroyAssociativeIterator( aItr ); } // // Destructor // MazeFactory::~MazeFactory( void ) { try { flushAllocators(); } catch( ... ) { ; // do NOT rethrow during destructor } } // // Assignment // MazeFactoryRef MazeFactory::operator=( MazeFactoryCref aRef ) throw(Exception) { throw Exception("Factory assignment not allowed!",LOCATION); return (*this); } // // Equality operator // bool MazeFactory::operator==( MazeFactoryCref aRef ) const { CollectionIterator *aItr( aRef.createAssociativeIterator() ); bool isSame( true ); while( aItr->isValid() && isSame == true ) { if( getAllocator( aItr->getKey() ) == NULLPTR ) { isSame = false; } else { aItr->setNext(); } } aRef.destroyAssociativeIterator( aItr ); return isSame; } // Return number of allocators registered Count MazeFactory::getAllocatorCount( void ) const { return Count( theAllocators.size() ); } // Return some instrumentation for this Factory Count MazeFactory::getTotalAllocates( void ) const { return getCreateCount(); } // Return some instrumentation for this Factory Count MazeFactory::getTotalDeallocates( void ) const { return getDestroyCount(); } // Create a Room RoomPtr MazeFactory::createRoom( RoomNumberCref aRef ) const throw(AllocatorNotFoundException) { RoomAllocatorPtr aRoomAllocator ( castDownAllocator( getAllocator( roomName ) ) ); RoomPtr aRoom( aRoomAllocator->createType() ); aRoom->setRoomNumber( aRef ); return aRoom; } // Create a Wall WallPtr MazeFactory::createWall( void ) const throw(AllocatorNotFoundException) { WallAllocatorPtr aWallAllocator ( castDownAllocator( getAllocator( wallName ) ) ); return aWallAllocator->createType(); } // Create a door joining two rooms DoorPtr MazeFactory::createDoor( RoomPtr aFirst, RoomPtr aSecond ) const throw(AllocatorNotFoundException) { DoorAllocatorPtr aDoorAllocator ( castDownAllocator( getAllocator( doorName ) ) ); DoorPtr aDoor( aDoorAllocator->createType() ); aDoor->setFirstRoom( aFirst ); aDoor->setSecondRoom( aSecond ); return aDoor; } // Destroy a Room void MazeFactory::destroyRoom( RoomPtr aPtr ) const throw(AllocatorNotFoundException) { RoomAllocatorPtr aRoomAllocator ( castDownAllocator( getAllocator( roomName ) ) ); aRoomAllocator->destroyType( aPtr ); } // Destroy a Wall void MazeFactory::destroyWall( WallPtr aPtr ) const throw(AllocatorNotFoundException) { WallAllocatorPtr aWallAllocator ( castDownAllocator( getAllocator( wallName ) ) ); aWallAllocator->destroyType( aPtr ); } // Destroy a Door void MazeFactory::destroyDoor( DoorPtr aPtr ) const throw(AllocatorNotFoundException) { DoorAllocatorPtr aDoorAllocator ( castDownAllocator( getAllocator( doorName ) ) ); aDoorAllocator->destroyType( aPtr ); } // // Get the total number of allocator allocates // Count MazeFactory::getCreateCount( void ) const { Count aCount( 0 ); AllocatorsIterator *aItr( this->createIterator() ); while( aItr->isValid() ) { aCount += aItr->getElement()->getAllocateCount(); aItr->setNext(); } this->destroyIterator( aItr ); return aCount; } // // Get the total number of allocator deallocates // Count MazeFactory::getDestroyCount( void ) const { Count aCount( 0 ); AllocatorsIterator *aItr( this->createIterator() ); while( aItr->isValid() ) { aCount += aItr->getElement()->getDeallocateCount(); aItr->setNext(); } this->destroyIterator( aItr ); return aCount; } // // Retrieve a allocator given an identifier // AllocatorPtr MazeFactory::getAllocator( NameIdentifier aName ) const throw(AllocatorNotFoundException) { AllocatorPtr aPtr(NULLPTR); NamedAllocatorsConstIterator fItr(theAllocators.find(aName)); if( fItr != theAllocators.end() ) { aPtr = (*fItr).second; } else { throw AllocatorNotFoundException( LOCATION ); } return aPtr; } // // Add a new allocator to the Factory // void MazeFactory::addAllocator( NameIdentifier aName, AllocatorPtr aPtr ) throw(AllocatorAlreadyExistsException) { REQUIRE( aPtr != NULLPTR ); NamedAllocatorsIterator fItr(theAllocators.find(aName)); if( fItr == theAllocators.end() ) { theAllocators.insert(NamedAllocators::value_type(aName,aPtr)); } else { throw AllocatorAlreadyExistsException(LOCATION); } } // // Remove a Allocator from the Factory and return it to the // caller // AllocatorPtr MazeFactory::removeAllocator( NameIdentifier aName ) throw(AllocatorNotFoundException) { AllocatorPtr aPtr( NULLPTR ); NamedAllocatorsIterator fItr( theAllocators.find(aName) ); if( fItr != theAllocators.end() ) { aPtr = (*fItr).second; theAllocators.erase( fItr ); } else { throw AllocatorNotFoundException( LOCATION ); } return aPtr; } // // Create a iterator for the allocators // AllocatorsIterator *MazeFactory::createIterator( void ) const { return new ImplementationIterator ( theAllocators.begin(), theAllocators.end() ); } // // Destroy the AllocatorIterator // void MazeFactory::destroyIterator( AllocatorsIterator *aPtr ) const { REQUIRE( aPtr != NULLPTR ); delete aPtr; } // // Create a iterator over the association, which includes the key // identifier // CollectionIterator *MazeFactory::createAssociativeIterator( void ) const { return new ImplementationIterator ( theAllocators.begin(), theAllocators.end() ); } // // Destroy the CollectionIterator // void MazeFactory::destroyAssociativeIterator ( CollectionIterator *aPtr ) const { REQUIRE( aPtr != NULLPTR ); delete aPtr; } // // Helper routine // void MazeFactory::flushAllocators( void ) { NamedAllocatorsIterator begin( theAllocators.begin() ); NamedAllocatorsIterator end( theAllocators.end() ); while( begin != end ) { delete (*begin).second; ++begin; } theAllocators.clear(); } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/10/07 12:35:23 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/exmplsupport/Makefile.am0000664000000000000000000000130607101445314021151 0ustar # -*- Mode: makefile -*- # SUMMARY : # USAGE : make # AUTHOR : Christophe Prud'homme # ORG : Christophe Prud'homme # E-MAIL : # ORIG-DATE : 26-Apr-89 # LAST-MOD : 12-Apr-00 at 15:49:03 by Christophe Prud'homme # DESCRIPTION : # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc lib_LTLIBRARIES = libexmplsupport.la libexmplsupport_la_SOURCES = MazeFactory.cpp Room.cpp NameIdentifier.cpp WallFlyweight.cpp WallFactory.cpp Door.cpp libexmplsupport_la_LDFLAGS = -version-info ${LIBEXMPLSUPP_SO_VERSION} # Common rcs information do not modify # $Author: frankc $ # $Revision: 1.2 $ # $Date: 2000/04/26 01:47:56 $ # $Locker: $ libcorelinux-0.4.32/src/testdrivers/exmplsupport/Makefile.in0000664000000000000000000003564007743170761021207 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY : # USAGE : make # AUTHOR : Christophe Prud'homme # ORG : Christophe Prud'homme # E-MAIL : # ORIG-DATE : 26-Apr-89 # LAST-MOD : 12-Apr-00 at 15:49:03 by Christophe Prud'homme # DESCRIPTION : # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc lib_LTLIBRARIES = libexmplsupport.la libexmplsupport_la_SOURCES = MazeFactory.cpp Room.cpp NameIdentifier.cpp WallFlyweight.cpp WallFactory.cpp Door.cpp libexmplsupport_la_LDFLAGS = -version-info ${LIBEXMPLSUPP_SO_VERSION} subdir = src/testdrivers/exmplsupport ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(lib_LTLIBRARIES) libexmplsupport_la_LIBADD = am_libexmplsupport_la_OBJECTS = MazeFactory.lo Room.lo NameIdentifier.lo \ WallFlyweight.lo WallFactory.lo Door.lo libexmplsupport_la_OBJECTS = $(am_libexmplsupport_la_OBJECTS) DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/admin/depcomp am__depfiles_maybe = depfiles @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/Door.Plo ./$(DEPDIR)/MazeFactory.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/NameIdentifier.Plo ./$(DEPDIR)/Room.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/WallFactory.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/WallFlyweight.Plo CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ DIST_SOURCES = $(libexmplsupport_la_SOURCES) DIST_COMMON = $(srcdir)/Makefile.in Makefile.am SOURCES = $(libexmplsupport_la_SOURCES) all: all-am .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc .lo .obj $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/exmplsupport/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) libLTLIBRARIES_INSTALL = $(INSTALL) install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(libdir) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(libdir)/$$f"; \ $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(libdir)/$$f; \ else :; fi; \ done uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ p="`echo $$p | sed -e 's|^.*/||'`"; \ echo " $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p"; \ $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" = "$$p" && dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libexmplsupport.la: $(libexmplsupport_la_OBJECTS) $(libexmplsupport_la_DEPENDENCIES) $(CXXLINK) -rpath $(libdir) $(libexmplsupport_la_LDFLAGS) $(libexmplsupport_la_OBJECTS) $(libexmplsupport_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) core *.core distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Door.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MazeFactory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/NameIdentifier.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Room.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/WallFactory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/WallFlyweight.Plo@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: $(mkinstalldirs) $(DESTDIR)$(libdir) install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-exec-am: install-libLTLIBRARIES install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am uninstall-libLTLIBRARIES .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am info info-am install \ install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am \ install-libLTLIBRARIES install-man install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-info-am \ uninstall-libLTLIBRARIES # Common rcs information do not modify # $Author: frankc $ # $Revision: 1.2 $ # $Date: 2000/04/26 01:47:56 $ # $Locker: $ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/exmplsupport/NameIdentifier.cpp0000664000000000000000000000717107153560234022520 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__NAMEIDENTIFIER_HPP) #include #endif using namespace corelinux; // // Default constructor not allowed // NameIdentifier::NameIdentifier( void ) throw(Assertion) : Identifier(), theName("") { NEVER_GET_HERE; } // // Instance constructor with name // NameIdentifier::NameIdentifier( NameCref aRef ) : Identifier(), theName( aRef ) { ; // do nothing } // // Copy constructor // NameIdentifier::NameIdentifier( NameIdentifierCref aRef ) : Identifier(), theName( aRef.getName() ) { ; // do nothing } // // Destructor // NameIdentifier::~NameIdentifier( void ) { ; // do nothing } // // Operator assignment not allowed // NameIdentifierRef NameIdentifier::operator=( NameIdentifierCref aRef ) { if( *this == aRef ) { ; // do nothing } else { theName = aRef.getName(); } return (*this); } // // Equality // bool NameIdentifier::operator==( NameIdentifierCref aRef ) { return Identifier::operator==(aRef); } // // Retrieve my name // NameCref NameIdentifier::getName( void ) const { return theName; } // // Virtual methods overrides // bool NameIdentifier::isEqual( IdentifierCref aRef ) const { NameIdentifierCptr rhRef = dynamic_cast(&aRef); return (this->getName() == rhRef->getName()); } /** Less than method @param Identifier const reference @return true if less than, false otherwise */ bool NameIdentifier::isLessThan( IdentifierCref aRef ) const { NameIdentifierCptr rhRef = dynamic_cast(&aRef); return (this->getName() < rhRef->getName()); } /** Less than or equal method. @param Identifier const reference @return true if less than or equal, false otherwise */ bool NameIdentifier::isLessThanOrEqual( IdentifierCref aRef ) const { NameIdentifierCptr rhRef = dynamic_cast(&aRef); return (this->getName() <= rhRef->getName()); } /** Greater than method. @param Identifier const reference @return true if greater than, false otherwise */ bool NameIdentifier::isGreaterThan( IdentifierCref aRef ) const { NameIdentifierCptr rhRef = dynamic_cast(&aRef); return (this->getName() > rhRef->getName()); } /** Greater than or equal method. @param Identifier const reference @return true if greater than or equal, false otherwise */ bool NameIdentifier::isGreaterThanOrEqual( IdentifierCref aRef ) const { NameIdentifierCptr rhRef = dynamic_cast(&aRef); return (this->getName() >= rhRef->getName()); } /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.2 $ $Date: 2000/08/31 22:47:56 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex19/0000775000000000000000000000000010771017616015130 5ustar libcorelinux-0.4.32/src/testdrivers/ex19/include/0000775000000000000000000000000010771017616016553 5ustar libcorelinux-0.4.32/src/testdrivers/ex19/include/SelectColleague.hpp0000664000000000000000000000655210771017616022334 0ustar #if !defined(__SELECTCOLLEAGUE_HPP) #define __SELECTCOLLEAGUE_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__COLLEAGUE_HPP) #include #endif #if !defined(__VECTOR_HPP) #include #endif #include using namespace std; DECLARE_CLASS( ListMediator ); DECLARE_CLASS( SelectColleague ); /** SelectColleague provides support for selecting a sentence from a list. When this occurs, it fires off an event with a SelectionMemento */ class SelectColleague : public CORELINUX( Colleague ) { CORELINUX_VECTOR( string , ListEntries ); public: // // Constructors and destructor // /// Default constructor SelectColleague( ListMediatorPtr ); /// Copy constructor SelectColleague( SelectColleagueCref ); /// Virtual destructor virtual ~SelectColleague( void ); // // Operator overloads // /// Assignment operator SelectColleagueRef operator=( SelectColleagueCref ); /// Equality operator bool operator==( SelectColleagueCref ) const; // // Accessors // /** Implementation defined to return the identifiers of the events that this Colleague generates @param EventIdentifiers vector reference */ virtual void getEventsGenerated( CORELINUX( EventIdentifiersRef ) ) ; /** Implementation defined to return the identifiers of the events that this Colleague is interested in @param EventIdentifiers vector reference */ virtual void getInterestedEvents( CORELINUX( EventIdentifiersRef ) ) ; // // Mutators // /// Returns true if selection was made bool getSelection( void ); /** Called by the mediator when another Colleague has generated an event that this colleague instance is interested in. @param Event pointer to event */ virtual void action( CORELINUX( Event ) * ) ; protected: private: /// The list of entries ListEntries theCurrentList; }; #endif // if !defined(__SELECTCOLLEAGUE_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.2 $ $Date: 2000/08/31 22:49:01 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex19/include/EditColleague.hpp0000664000000000000000000000572107105163370021773 0ustar #if !defined(__EDITCOLLEAGUE_HPP) #define __EDITCOLLEAGUE_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__COLLEAGUE_HPP) #include #endif DECLARE_CLASS( ListMediator ); DECLARE_CLASS( EditColleague ); /** EditColleague listens for a selection event and allows the user to change the entry */ class EditColleague : public CORELINUX( Colleague ) { public: // // Constructors and destructor // /// Default constructor EditColleague( ListMediatorPtr ); /// Copy constructor EditColleague( EditColleagueCref ); /// Virtual destructor virtual ~EditColleague( void ); // // Operator overloads // /// Assignment operator EditColleagueRef operator=( EditColleagueCref ); /// Equality operator bool operator==( EditColleagueCref ) const; // // Accessors // /** Implementation defined to return the identifiers of the events that this Colleague generates @param EventIdentifiers vector reference */ virtual void getEventsGenerated( CORELINUX( EventIdentifiersRef ) ) ; /** Implementation defined to return the identifiers of the events that this Colleague is interested in @param EventIdentifiers vector reference */ virtual void getInterestedEvents( CORELINUX( EventIdentifiersRef ) ) ; // // Mutators // /** Called by the mediator when another Colleague has generated an event that this colleague instance is interested in. @param Event pointer to event */ virtual void action( CORELINUX( Event ) * ) ; protected: private: }; #endif // if !defined(__EDITCOLLEAGUE_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/05/07 03:46:00 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex19/include/ListColleague.hpp0000664000000000000000000000713710771017616022030 0ustar #if !defined(__LISTCOLLEAGUE_HPP) #define __LISTCOLLEAGUE_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__COLLEAGUE_HPP) #include #endif #if !defined(__VECTOR_HPP) #include #endif #include using namespace std; DECLARE_CLASS( ListMediator ); DECLARE_CLASS( ListColleague ); /** Does anybody read these things? Anyway, ListColleage is the maintainer of the list, and is interested in changes made to keep it current */ class ListColleague : public CORELINUX( Colleague ) { CORELINUX_VECTOR( string , ListEntries ); public: // // Constructors and destructor // /// Default constructor ListColleague( ListMediatorPtr ); /// Copy constructor ListColleague( ListColleagueCref ); /// Virtual destructor virtual ~ListColleague( void ); // // Operator overloads // /// Assignment operator ListColleagueRef operator=( ListColleagueCref ); /// Equality test bool operator==( ListColleagueCref ) const; // // Accessors // /** Implementation defined to return the identifiers of the events that this Colleague generates @param EventIdentifiers vector reference */ virtual void getEventsGenerated( CORELINUX( EventIdentifiersRef ) ) ; /** Implementation defined to return the identifiers of the events that this Colleague is interested in @param EventIdentifiers vector reference */ virtual void getInterestedEvents( CORELINUX( EventIdentifiersRef ) ) ; // // Mutators // /** Called once to get the list ready. I'm sure there are more imaginitive ways. This is actually a by product of hurried example writing, violating many of my own standards. Well, my son had a baseball game I had to go to so I cut it short! */ void initialize( void ); /** Called by the mediator when another Colleague has generated an event that this colleague instance is interested in. @param Event pointer to event */ virtual void action( CORELINUX( Event ) * ) ; protected: private: /// The infamous list ListEntries theList; }; #endif // if !defined(__LISTCOLLEAGUE_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.2 $ $Date: 2000/08/31 22:49:01 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex19/include/ListMementos.hpp0000664000000000000000000001640210771017616021712 0ustar #if !defined(__LISTMEMENTOS_HPP) #define __LISTMEMENTOS_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__VECTOR_HPP) #include #endif #if !defined(__MEMENTO_HPP) #include #endif #include using namespace std; DECLARE_CLASS( ChangedListMemento ); CORELINUX_VECTOR( string , ListEntries ); /** ChangedListMemento captures the state of the ListColleague */ class ChangedListMemento : public CORELINUX( Memento ) { public: /** Default Constructor @param ListEntries reference to vector of strings */ ChangedListMemento( ListEntriesRef aList ) : CORELINUX(Memento)(), theCurrentList( aList ) { ; // do nothing } /** Copy Constructor @param ChangedListMemento reference */ ChangedListMemento( ChangedListMementoCref aMemento ) : CORELINUX(Memento)(aMemento), theCurrentList( aMemento.theCurrentList ) { ; // do nothing } /// Destructor virtual ~ChangedListMemento( void ) { theCurrentList.clear(); } // // Operator overloads // /// Assignment operator ChangedListMementoRef operator=( ChangedListMementoCref aMemento ) { if( *this == aMemento ) { ; // do nothing } else { CORELINUX(Memento)::operator=( aMemento ); theCurrentList.clear(); theCurrentList = aMemento.theCurrentList; } return ( *this ); } /// Equality test bool operator==( ChangedListMementoCref aMemento ) const { return CORELINUX(Memento)::operator==( aMemento ); } // // Accessors // /// Retrieve the list for inspection, etc. inline ListEntriesRef getList( void ) { return theCurrentList; } protected: private: /// The list ListEntries theCurrentList; }; DECLARE_CLASS( SelectionMemento ); /** SelectionMemento captures the state of SelectColleague. That is which string was selected from the list */ class SelectionMemento : public CORELINUX( Memento ) { public: SelectionMemento( string aSelection ) : CORELINUX(Memento)(), theSelection( aSelection ) { ; // do nothing } SelectionMemento( SelectionMementoCref aMemento ) : CORELINUX(Memento)(aMemento), theSelection( aMemento.theSelection ) { ; // do nothing } virtual ~SelectionMemento( void ) { ; // do nothing } // // Operator overloads // SelectionMementoRef operator=( SelectionMementoCref aMemento ) { if( *this == aMemento ) { ; // do nothing } else { CORELINUX(Memento)::operator=( aMemento ); theSelection = aMemento.theSelection ; } return ( *this ); } bool operator==( SelectionMementoCref aMemento ) const { return CORELINUX(Memento)::operator==( aMemento ); } // // Accessors // inline string &getSelected( void ) { return theSelection; } protected: private: string theSelection; }; DECLARE_CLASS( EditSelectionMemento ); /** EditSelectionMemento captures the state of EditColleague. That is the original string, and the intended replacement */ class EditSelectionMemento : public CORELINUX( Memento ) { public: EditSelectionMemento( string aSelection, string aChange ) : CORELINUX(Memento)(), theSelection( aSelection ), theChange( aChange ) { ; // do nothing } EditSelectionMemento( EditSelectionMementoCref aMemento ) : CORELINUX(Memento)(aMemento), theSelection( aMemento.theSelection ), theChange( aMemento.theChange ) { ; // do nothing } virtual ~EditSelectionMemento( void ) { ; // do nothing } // // Operator overloads // EditSelectionMementoRef operator=( EditSelectionMementoCref aMemento ) { if( *this == aMemento ) { ; // do nothing } else { CORELINUX(Memento)::operator=( aMemento ); theSelection = aMemento.theSelection ; theChange = aMemento.theChange; } return ( *this ); } bool operator==( EditSelectionMementoCref aMemento ) const { return CORELINUX(Memento)::operator==( aMemento ); } // // Accessors // inline string &getSelected( void ) { return theSelection; } inline string &getChange( void ) { return theChange; } protected: private: string theSelection; string theChange; }; #endif /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.2 $ $Date: 2000/08/31 22:49:01 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex19/include/ListMediator.hpp0000664000000000000000000000736210771017616021674 0ustar #if !defined(__LISTMEDIATOR_HPP) #define __LISTMEDIATOR_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__COLLEAGUE_HPP) #include #endif #if !defined(__MEDIATOR_HPP) #include #endif #if !defined(__MAP_HPP) #include #endif #if !defined(__SET_HPP) #include #endif using namespace std; DECLARE_CLASS( ListColleague ); // Adds to list, notifies of List Change // Notified of edit change DECLARE_CLASS( EditColleague ); // Edits list entry, notifies of edit // Notified of selection DECLARE_CLASS( SelectColleague ); // Selects from list, notifies of selection // Notified of List change DECLARE_CLASS( ListMediator ); /** Manages list activity between ListColleagues */ class ListMediator : public CORELINUX( Mediator ) { CORELINUX_MAP ( DwordIdentifier, CORELINUX(ColleaguePtr), less, InterestedMap ); public: // // Constructors and destructor // /// Default constructor ListMediator( void ); /// Virtual destructor virtual ~ListMediator( void ); // // Mutators // /// Gets the activity rolling void run( void ); protected: /// Copy constructor never called ListMediator( ListMediatorCref ) throw ( CORELINUX( Assertion ) ); /// Assignment never called. ListMediatorRef operator=( ListMediatorCref ) throw ( CORELINUX( Assertion ) ); /// Equality never called bool operator==( ListMediatorCref ) const throw ( CORELINUX( Assertion ) ); // // Implementation requirements from Mediator // /// Call when creating a Colleague virtual void colleagueCreated( CORELINUX(ColleaguePtr) ) ; /// Call when requesting Colleagues interested in EventType virtual CORELINUX(Iterator) *createIterator ( CORELINUX(Event) * ) ; /// Called when destroying the iterator virtual void destroyIterator( CORELINUX(Iterator) * ) ; private: ListColleaguePtr theList; EditColleaguePtr theEditor; SelectColleaguePtr theSelection; /// Maps event identifiers to interested colleagues InterestedMap theInterestedMap; }; #endif // if !defined(__LISTMEDIATOR_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.2 $ $Date: 2000/08/31 22:49:01 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex19/include/ListEvents.hpp0000664000000000000000000000671007105163370021364 0ustar #if !defined(__LISTEVENTS_HPP) #define __LISTEVENTS_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__EVENT_HPP) #include #endif #if !defined(__MEMENTO_HPP) #include #endif /** Useful event identifier assignments */ static DwordIdentifier ListChanged(1); static DwordIdentifier SelectionMade(2); static DwordIdentifier EditedEntry(3); DECLARE_CLASS( ListEvent ); /** We define our domain event type which uses a numeric identifier and accepts generic Memento pointers. The destructor of the Event clears out the Memento for us. How nice. */ class ListEvent : public CORELINUX( Event< DwordIdentifier > ) { public: /// Constructor ListEvent ( DwordIdentifierCref aId, CORELINUX(MementoPtr) aMemento ) throw ( CORELINUX( NullPointerException ) ) : CORELINUX(Event)( aId ), theMemento(aMemento) { if( theMemento == NULLPTR ) { throw CORELINUX(NullPointerException)(LOCATION); } } /// Virtual destructor virtual ~ListEvent( void ) { if( theMemento != NULLPTR ) { delete theMemento; theMemento = NULLPTR; } else { ; // do nothing } } // // Accessors // /// Retrieve the memento inline CORELINUX(MementoRef) getMemento( void ) { return *theMemento; } protected: ListEvent( void ) : CORELINUX( Event )(), theMemento( NULLPTR ) { ; // do nothing } private: CORELINUX(MementoPtr) theMemento; }; #endif // if !defined(__LISTEVENTS_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/05/07 03:46:00 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex19/include/Makefile.am0000664000000000000000000000117607105163370020610 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 13:16:42 # LAST-MOD: $Id: Makefile.am,v 1.1 2000/05/07 03:46:00 frankc Exp $ # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc noinst_HEADERS = ListMediator.hpp ListEvents.hpp ListMementos.hpp ListColleague.hpp EditColleague.hpp SelectColleague.hpp # Common rcs information do not modify # $Author: frankc $ # $Revision: 1.1 $ # $Date: 2000/05/07 03:46:00 $ # $Locker: $ libcorelinux-0.4.32/src/testdrivers/ex19/include/Makefile.in0000664000000000000000000002325507743170753020636 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 13:16:42 # LAST-MOD: $Id: Makefile.am,v 1.1 2000/05/07 03:46:00 frankc Exp $ # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc noinst_HEADERS = ListMediator.hpp ListEvents.hpp ListMementos.hpp ListColleague.hpp EditColleague.hpp SelectColleague.hpp subdir = src/testdrivers/ex19/include ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = DIST_SOURCES = HEADERS = $(noinst_HEADERS) DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.in Makefile.am all: all-am .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex19/include/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am info \ info-am install install-am install-data install-data-am \ install-exec install-exec-am install-info install-info-am \ install-man install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags uninstall uninstall-am uninstall-info-am # Common rcs information do not modify # $Author: frankc $ # $Revision: 1.1 $ # $Date: 2000/05/07 03:46:00 $ # $Locker: $ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/ex19/EditColleague.cpp0000664000000000000000000000575010771017616020351 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__EDITCOLLEAGUE_HPP) #include #endif #if !defined(__LISTEVENTS_HPP) #include #endif #if !defined(__LISTMEMENTOS_HPP) #include #endif #include // Buffer space for cin.getline static char gBuffer[1024]; using namespace corelinux; using namespace std; // Constructor EditColleague::EditColleague( ListMediatorPtr aPtr ) : Colleague( MediatorPtr(aPtr) ) { ; // do nothing } // Copy constructor EditColleague::EditColleague( EditColleagueCref aColleague ) : Colleague( aColleague ) { ; // do nothing } // Destructor EditColleague::~EditColleague( void ) { ; // do nothing } // Assignment EditColleagueRef EditColleague::operator=( EditColleagueCref aColleague ) { return ( *this ); } // Equality bool EditColleague::operator==( EditColleagueCref aColleague ) const { return ( this == &aColleague ); } // Get the events I generate void EditColleague::getEventsGenerated( EventIdentifiersRef aVector ) { aVector.push_back( &EditedEntry ); } // Get the events I am interested in void EditColleague::getInterestedEvents( EventIdentifiersRef aVector ) { aVector.push_back( &SelectionMade ); } // Called when a event comes my way void EditColleague::action( Event *aEvent ) { // // We deal with the selection and get the edit // SelectionMementoRef aChange = dynamic_cast ( dynamic_cast(aEvent)->getMemento() ); string & originalText( aChange.getSelected() ); cout << "Enter the change for [" << originalText << "] : "; cin.getline( gBuffer, sizeof(gBuffer) ); string changedText(gBuffer); // // Then let colleagues know the new Edit // ListEvent aEv( EditedEntry, new EditSelectionMemento( originalText, changedText ) ); Colleague::invokeMediator( (Event*)&aEv ); } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/05/07 03:46:00 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex19/SelectColleague.cpp0000664000000000000000000000746510771017616020710 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__SELECTCOLLEAGUE_HPP) #include #endif #if !defined(__LISTEVENTS_HPP) #include #endif #if !defined(__LISTMEMENTOS_HPP) #include #endif #include using namespace corelinux; using namespace std; // Constructor SelectColleague::SelectColleague( ListMediatorPtr aPtr ) : Colleague( MediatorPtr(aPtr) ), theCurrentList() { ; // do nothing } // Copy constructor SelectColleague::SelectColleague( SelectColleagueCref aColleague ) : Colleague( aColleague ), theCurrentList( aColleague.theCurrentList ) { ; // do nothing } // Destructor SelectColleague::~SelectColleague( void ) { theCurrentList.clear(); } // Assignment SelectColleagueRef SelectColleague::operator=( SelectColleagueCref aColleague ) { if( *this == aColleague ) { ; // do nothing } else { theCurrentList.clear(); theCurrentList = aColleague.theCurrentList; } return ( *this ); } // Equality bool SelectColleague::operator==( SelectColleagueCref aColleague ) const { return ( this == &aColleague ); } // Get the events I generate void SelectColleague::getEventsGenerated( EventIdentifiersRef aVector ) { aVector.push_back( &SelectionMade ); } // Get the events I am interested in void SelectColleague::getInterestedEvents( EventIdentifiersRef aVector ) { aVector.push_back( &ListChanged ); } // The goods bool SelectColleague::getSelection( void ) { bool keepRunning(false); if( theCurrentList.size() != 0 ) { keepRunning = true; int x = 1; int select = 0; cout << endl; ListEntriesIterator begin=theCurrentList.begin(); for( ; begin != theCurrentList.end(); ++begin, ++x ) { cout << x << "\t" << (*begin) << endl; } --x; do { cout << endl; cout << "Enter the number for the entry you want to change, or 0 to quit : "; cin >> select; } while( select < 0 || select > x ); if( select != 0 ) { char crap[2]; cin.getline( crap, sizeof(crap) ); // peel off the new-line ListEvent aEv( SelectionMade, new SelectionMemento( theCurrentList[select - 1]) ); Colleague::invokeMediator( (Event*)&aEv ); } else { keepRunning = false; } } return keepRunning; } // Called when a event comes my way void SelectColleague::action( Event *aEvent ) { // // We deal with the selection and get the Select // ChangedListMementoRef aChange = dynamic_cast ( dynamic_cast(aEvent)->getMemento() ); theCurrentList = aChange.getList(); } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/05/07 04:03:02 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex19/examp19.cpp0000664000000000000000000001043210771017616017120 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** \example examp19.cpp This example is to show use of the Mediator and Memento patterns. We create three (3) Colleagues: ListColleague - Maintains a list of sentences that the user can edit SelectColleague - Sets up the select of the sentence to edit EditColleague - Provides editing for a sentence When something occurs in a Colleague, it captures the state in a Memento which is made part of the Event. The Colleague then calls the Mediator action interface with the event. The flow of traffic is: A) ListColleague updates the list and calls the mediator with a memento that contains the current list --> B B) SelectColleague is interested in list changes, so it receives an event with the current list. C) The ListMediator invokes SelectColleague to do it's thing, which is to display the list and allow for a selection. When a valid selection is received, it calls the mediator with a memento containing the text of the selection ---> D D) The EditColleague receives the event and displays the selected string with a edit prompt. It calls the mediator with a memento that contains the original string, and the replacement string ---> E E) The ListColleague receives the event and updates it list and A then C. */ #include #if !defined(__LISTMEDIATOR__HPP) #include #endif using namespace corelinux; #include #include using namespace std; // // In module function prototypes // int main( void ); // // General Functions // void handleAssertion( AssertionCref ); void handleException( ExceptionCref ); // // Global data // // // Main entry point // int main( void ) { cout << endl; // // Practice graceful exception management // try { ListMediator aMediator; aMediator.run(); } catch( NullPointerException aException ) { cerr << "Received NullPointerException!" << endl; handleException(aException); } catch( AssertionRef aAssert ) { handleAssertion(aAssert); } catch( ExceptionRef aException ) { handleException(aException); } catch( std::exception & e ) { cerr << e.what() << endl; } catch( ... ) { cerr << "Unknown exception." << endl; } return 0; } // // Some utility functions // // // Error handlers // void handleAssertion( AssertionCref aAssert ) { cerr << aAssert.getFile() << ":" << aAssert.getLine() << ":" << "Assertion: "; if( aAssert.getType() == Assertion::NEVERGETHERE ) { cerr << "NEVER_GET_HERE"; } else { if( aAssert.getType() == Assertion::REQUIRE ) { cerr << "REQUIRE"; } else if( aAssert.getType() == Assertion::ENSURE ) { cerr << "ENSURE"; } else if( aAssert.getType() == Assertion::CHECK ) { cerr << "CHECK"; } else { cerr << "ASSERT"; } cerr << "( " << aAssert.getWhy() << " )"; } cerr << endl; } void handleException( ExceptionCref aExcp ) { cerr << aExcp.getFile() << ":" << aExcp.getLine() << ":" << "Exception: " << aExcp.getWhy() << endl; } /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.2 $ $Date: 2000/08/31 22:49:01 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex19/ListColleague.cpp0000664000000000000000000000714407105163370020372 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__LISTCOLLEAGUE_HPP) #include #endif #if !defined(__LISTEVENTS_HPP) #include #endif #if !defined(__LISTMEMENTOS_HPP) #include #endif using namespace corelinux; // Some startup strings static string ent1("First Line"); static string ent2("Second Line"); static string ent3("Third Line"); static string ent4("Fourth Line"); // Constructor ListColleague::ListColleague( ListMediatorPtr aPtr ) : Colleague( MediatorPtr(aPtr) ), theList() { theList.push_back(ent1); theList.push_back(ent2); theList.push_back(ent3); theList.push_back(ent4); } // Copy constructor ListColleague::ListColleague( ListColleagueCref aColleague ) : Colleague( aColleague ), theList( aColleague.theList ) { ; // do nothing } // Destructor ListColleague::~ListColleague( void ) { theList.clear(); } // Assignment ListColleagueRef ListColleague::operator=( ListColleagueCref aColleague ) { if( *this == aColleague ) { ; // do nothing } else { theList.clear(); theList = aColleague.theList; } return ( *this ); } // Equality bool ListColleague::operator==( ListColleagueCref aColleague ) const { return ( this == &aColleague ); } // Get the events I generate void ListColleague::getEventsGenerated( EventIdentifiersRef aVector ) { aVector.push_back( &ListChanged ); } // Get the events I am interested in void ListColleague::getInterestedEvents( EventIdentifiersRef aVector ) { aVector.push_back( &EditedEntry ); } // Initialization called by mediator void ListColleague::initialize( void ) { // // Send the list out for discovery // ListEvent aEv( ListChanged, new ChangedListMemento( theList ) ); Colleague::invokeMediator( (Event*)&aEv ); } // Called when a event comes my way void ListColleague::action( Event *aEvent ) { // // We deal with the list change // EditSelectionMementoRef aChange = dynamic_cast ( dynamic_cast(aEvent)->getMemento() ); string & originalText( aChange.getSelected() ); string & changedText( aChange.getChange() ); size_t count = theList.size(); for( size_t x = 0; x < count; ++x ) { if( theList[x] == originalText ) { theList[x] = changedText; x = count; } else { ; // do nothing } } // // Then let colleagues know the new list // this->initialize(); } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/05/07 03:46:00 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex19/Makefile.am0000664000000000000000000000127307137764212017172 0ustar # -*- Mode: makefile -*- # SUMMARY : # USAGE : make # AUTHOR : Christophe Prud'homme # ORG : Christophe Prud'homme # E-MAIL : # ORIG-DATE : 26-Apr-89 # LAST-MOD : $Id: Makefile.am,v 1.3 2000/07/27 07:45:14 prudhomm Exp $ # DESCRIPTION : # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = include bin_PROGRAMS = ex19 ex19_SOURCES = examp19.cpp ListMediator.cpp ListColleague.cpp EditColleague.cpp SelectColleague.cpp ex19_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la # Common rcs information do not modify # $Author: prudhomm $ # $Revision: 1.3 $ # $Date: 2000/07/27 07:45:14 $ # $Locker: $ libcorelinux-0.4.32/src/testdrivers/ex19/Makefile.in0000664000000000000000000004460007743170753017210 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY : # USAGE : make # AUTHOR : Christophe Prud'homme # ORG : Christophe Prud'homme # E-MAIL : # ORIG-DATE : 26-Apr-89 # LAST-MOD : $Id: Makefile.am,v 1.3 2000/07/27 07:45:14 prudhomm Exp $ # DESCRIPTION : # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = include bin_PROGRAMS = ex19 ex19_SOURCES = examp19.cpp ListMediator.cpp ListColleague.cpp EditColleague.cpp SelectColleague.cpp ex19_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la subdir = src/testdrivers/ex19 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = bin_PROGRAMS = ex19$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) am_ex19_OBJECTS = examp19.$(OBJEXT) ListMediator.$(OBJEXT) \ ListColleague.$(OBJEXT) EditColleague.$(OBJEXT) \ SelectColleague.$(OBJEXT) ex19_OBJECTS = $(am_ex19_OBJECTS) ex19_DEPENDENCIES = ${top_builddir}/src/classlibs/corelinux/libcl++.la ex19_LDFLAGS = DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/admin/depcomp am__depfiles_maybe = depfiles @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/EditColleague.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/ListColleague.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/ListMediator.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/SelectColleague.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/examp19.Po CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ DIST_SOURCES = $(ex19_SOURCES) RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \ ps-recursive install-info-recursive uninstall-info-recursive \ all-recursive install-data-recursive install-exec-recursive \ installdirs-recursive install-recursive uninstall-recursive \ check-recursive installcheck-recursive DIST_COMMON = $(srcdir)/Makefile.in Makefile.am DIST_SUBDIRS = $(SUBDIRS) SOURCES = $(ex19_SOURCES) all: all-recursive .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc .lo .obj $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex19/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(bindir) @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f $(DESTDIR)$(bindir)/$$f"; \ rm -f $(DESTDIR)$(bindir)/$$f; \ done clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done ex19$(EXEEXT): $(ex19_OBJECTS) $(ex19_DEPENDENCIES) @rm -f ex19$(EXEEXT) $(CXXLINK) $(ex19_LDFLAGS) $(ex19_OBJECTS) $(ex19_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) core *.core distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/EditColleague.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ListColleague.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ListMediator.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SelectColleague.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/examp19.Po@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if (etags --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ else \ include_option=--include; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -f $$subdir/TAGS && \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ || exit 1; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" \ distdir=../$(distdir)/$$subdir \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(PROGRAMS) installdirs: installdirs-recursive installdirs-am: $(mkinstalldirs) $(DESTDIR)$(bindir) install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: info: info-recursive info-am: install-data-am: install-exec-am: install-binPROGRAMS install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \ clean-binPROGRAMS clean-generic clean-libtool clean-recursive \ ctags ctags-recursive distclean distclean-compile \ distclean-generic distclean-libtool distclean-recursive \ distclean-tags distdir dvi dvi-am dvi-recursive info info-am \ info-recursive install install-am install-binPROGRAMS \ install-data install-data-am install-data-recursive \ install-exec install-exec-am install-exec-recursive \ install-info install-info-am install-info-recursive install-man \ install-recursive install-strip installcheck installcheck-am \ installdirs installdirs-am installdirs-recursive \ maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \ pdf pdf-am pdf-recursive ps ps-am ps-recursive tags \ tags-recursive uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-info-am uninstall-info-recursive uninstall-recursive # Common rcs information do not modify # $Author: prudhomm $ # $Revision: 1.3 $ # $Date: 2000/07/27 07:45:14 $ # $Locker: $ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/ex19/ListMediator.cpp0000664000000000000000000001027207105163370020232 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__LISTEVENTS_HPP) #include #endif #if !defined(__LISTMEDIATOR_HPP) #include #endif #if !defined(__LISTCOLLEAGUE_HPP) #include #endif #if !defined(__EDITCOLLEAGUE_HPP) #include #endif #if !defined(__SELECTCOLLEAGUE_HPP) #include #endif #if !defined(__CORELINUXASSOCIATIVEITERATOR_HPP) #include #endif using namespace corelinux; // Constructor ListMediator::ListMediator( void ) : Mediator(), theList( NULLPTR ), theEditor( NULLPTR ), theSelection( NULLPTR ), theInterestedMap() { theList = new ListColleague( this ); theEditor = new EditColleague( this ); theSelection = new SelectColleague( this ); colleagueCreated( theList ); colleagueCreated( theEditor ); colleagueCreated( theSelection ); } // Destructor ListMediator::~ListMediator( void ) { theInterestedMap.clear(); if( theList != NULLPTR ) { delete theList; theList = NULLPTR; } else { ; // do nothing } if( theEditor != NULLPTR ) { delete theEditor; theEditor = NULLPTR; } else { ; // do nothing } if( theSelection != NULLPTR ) { delete theSelection; theSelection = NULLPTR; } else { ; // do nothing } } // Invoke system void ListMediator::run( void ) { theList->initialize(); do { } while( theSelection->getSelection() == true ); } // Gather information from Colleague void ListMediator::colleagueCreated( ColleaguePtr aColleague ) { EventIdentifiers aEvId; // // We only get the events that the Colleague is interested // in as it will tell us what we need to know. For discovery // implementations, the list of events generated by a Colleague // may be useful, but not here. // aColleague->getInterestedEvents( aEvId ); // // Loop through looking for entries to perform // the link with, or create a new one // for( EventIdentifiersIterator aItr = aEvId.begin() ; aItr != aEvId.end() ; ++aItr ) { DwordIdentifierRef aDRef = dynamic_cast(*(*aItr)); InterestedMapIterator aFItr( theInterestedMap.find( aDRef ) ); if( aFItr == theInterestedMap.end() ) { theInterestedMap[aDRef] = aColleague ; } else { NEVER_GET_HERE; } } } // Create a iterator over the interested parties Iterator *ListMediator::createIterator( Event *anId ) { Iterator *pList(NULLPTR); ListEventPtr anEvent( dynamic_cast(anId) ); DwordIdentifierRef aDI( *DwordIdentifierPtr(*anEvent) ); pList = new CoreLinuxAssociativeIterator ( theInterestedMap.lower_bound(aDI), theInterestedMap.upper_bound(aDI) ); ENSURE( pList != NULLPTR ); return pList; } // Destroy the iterator void ListMediator::destroyIterator( Iterator *aPtr ) { REQUIRE( aPtr != NULLPTR ); delete aPtr; } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/05/07 03:46:00 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex10/0000775000000000000000000000000007743170746015130 5ustar libcorelinux-0.4.32/src/testdrivers/ex10/Makefile.am0000664000000000000000000000106107137764150017155 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 08:34:22 # LAST-MOD: 23-Apr-00 at 16:15:10 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc bin_PROGRAMS = ex10 ex10_SOURCES = examp10.cpp ex10_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la ${top_builddir}/src/testdrivers/exmplsupport/libexmplsupport.la libcorelinux-0.4.32/src/testdrivers/ex10/Makefile.in0000664000000000000000000003410307743170746017176 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 08:34:22 # LAST-MOD: 23-Apr-00 at 16:15:10 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc bin_PROGRAMS = ex10 ex10_SOURCES = examp10.cpp ex10_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la ${top_builddir}/src/testdrivers/exmplsupport/libexmplsupport.la subdir = src/testdrivers/ex10 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = bin_PROGRAMS = ex10$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) am_ex10_OBJECTS = examp10.$(OBJEXT) ex10_OBJECTS = $(am_ex10_OBJECTS) ex10_DEPENDENCIES = ${top_builddir}/src/classlibs/corelinux/libcl++.la \ ${top_builddir}/src/testdrivers/exmplsupport/libexmplsupport.la ex10_LDFLAGS = DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/admin/depcomp am__depfiles_maybe = depfiles @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/examp10.Po CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ DIST_SOURCES = $(ex10_SOURCES) DIST_COMMON = $(srcdir)/Makefile.in Makefile.am SOURCES = $(ex10_SOURCES) all: all-am .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc .lo .obj $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex10/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(bindir) @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f $(DESTDIR)$(bindir)/$$f"; \ rm -f $(DESTDIR)$(bindir)/$$f; \ done clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done ex10$(EXEEXT): $(ex10_OBJECTS) $(ex10_DEPENDENCIES) @rm -f ex10$(EXEEXT) $(CXXLINK) $(ex10_LDFLAGS) $(ex10_OBJECTS) $(ex10_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) core *.core distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/examp10.Po@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: $(mkinstalldirs) $(DESTDIR)$(bindir) install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-exec-am: install-binPROGRAMS install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libtool ctags distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-exec install-exec-am \ install-info install-info-am install-man install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/ex10/examp10.cpp0000664000000000000000000002431607153560525017106 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** \example examp10.cpp This example is to show use of the Flyweight pattern. What we do here is utilize a flyweight because of the following assumptions: Assumption: Rooms have sides with cardinality of [4] Assumption: The side can be either a door or a wall Assumption: The room has at least one (1) door Unless it is an extreme maze, there is a high probability that there are more walls in a room than doors. By using the Flyweight pattern we can reduce our instance requirements by ( rooms * (sides==walls) ) - 1, for example: 20 rooms with an average of 3 walls each saves 59 wall instances! The memory savings are the walls * sizeof( wall ) in general and the cycle savings are the new and deletes needed to instantiate and destroy each wall. Then there is the probable reduction in the locality of reference faults when actually doing something with a wall. But that is beyond the scope of this example. Anyway, in this example we play with pre-building a room with three (3) walls each. In addition, we utilize the Room interface of setting a side to the room instance. Refer to ex9 for some of the first order class implementations. You will notice that we reuse almost everything from ex9 except for the Wall (in theory), the MazeFactory for creating the Wall, and the changes in the examp10.cpp source. A more realistic implementation would have a MazeFactory that is configurable to register allocators so we don't need to expose the application to whether it is using a Flyweight or a true Class instance. Stay tuned, with Builder, Factory Method and a few other patterns we will achieve this and more. */ #include #include #include #include #include using namespace corelinux; #include #include CORELINUX_VECTOR( DoorPtr , DoorVector ); CORELINUX_MAP( RoomNumber, RoomPtr, less , RoomMap ); // // In module function prototypes // int main( void ); void doWork( MazeFactoryRef , WallFactoryRef ); // // Functions that work with Engine types // void handleAssertion( AssertionCref ); void handleException( ExceptionCref ); int main( void ) { // // Practice gracefull exception management // cout << endl; try { MazeFactory aFactory; WallFactory aWallFactory; doWork( aFactory, aWallFactory ); } catch( AssertionRef aAssert ) { handleAssertion(aAssert); } catch( ExceptionRef aException ) { handleException(aException); } catch( std::exception & e ) { cerr << e.what() << endl; } catch( ... ) { cerr << "Unknown exception." << endl; } return 0; } void displayMenu( void ) { cout << endl; cout << "\tCreate a Room 1" << endl; cout << "\tCreate a Wall 2" << endl; cout << "\tCreate a Room 3" << endl; cout << "\tQuit the example 4" << endl; cout << endl; } Int getCommand( void ) { displayMenu(); Int aOption; cout << "Enter the option number on the right to execute : "; cin >> aOption; return aOption; } void doWork( MazeFactoryRef aFactory, WallFactoryRef aWallFactory ) { bool keepWorking(true); DoorVector doors; RoomMap rooms; do { Int aCommand( getCommand() ); if( aCommand > 4 || aCommand < 0 ) { cerr << "You can't enter non-numeric options!" << endl; aCommand = 4; } else { ; // do nothing } switch( aCommand ) { // // Create a new room and insure that the same // doesn't already exist // case 1: { RoomNumber aNumber(0); cout << endl; cout << "Enter a RoomNumber for the new room : "; cin >> aNumber; if( rooms.find(aNumber) == rooms.end() ) { RoomPtr aRoom( aFactory.createRoom(aNumber) ); rooms[aNumber] = aRoom ; // // To bring this into reality, we will look // to the best case scenario and auto create // three (3) walls per room, all doors lead // to the east! // aRoom->setSide( NORTH, aWallFactory.createType() ); aRoom->setSide( SOUTH, aWallFactory.createType() ); aRoom->setSide( WEST, aWallFactory.createType() ); } else { cerr << "Room " << aNumber << " already exists!" << endl; } break; } // // Create a Wall. This is where we saved our job by // getting the maze to scale. // case 2: { IGNORE_RETURN aWallFactory.createType(); cout << endl; cout << "You now have " << aWallFactory.getAllocateCount() << " wall" << ( aWallFactory.getAllocateCount() > 1 ? "s." : "." ) << endl; cout << endl; break; } // // Create a door, we need two (2) valid rooms that the door // connects. But there is a bug here. Get involved, fix // the sample, become part of the open development process. // case 3: { RoomNumber aFirstNumber(0); RoomNumber aSecondNumber(0); cout << endl; cout << "Enter the first room the door connects : "; cin >> aFirstNumber; cout << endl; cout << "Enter the second room the door connects : "; cin >> aSecondNumber; if( rooms.find(aFirstNumber) == rooms.end() || rooms.find(aSecondNumber) == rooms.end() ) { cerr << "You need to enter valid room numbers." << endl; } else { doors.push_back ( aFactory.createDoor ( (*rooms.find(aFirstNumber)).second, (*rooms.find(aSecondNumber)).second ) ); cout << "You now have " << doors.size() << " door" << ( doors.size() > 1 ? "s." : "." ) << endl; } break; } // // Add a parent to an object // case 4: keepWorking=false; break; default: ; //do nothing break; } } while( keepWorking == true ); // // Now we can display info and clean up // cout << endl; cout << "Pre-cleanup Factory Statistics" << endl; cout << "==============================" << endl; cout << "Total Creates : " << aFactory.getTotalAllocates() << endl; cout << "Total Destroys : " << aFactory.getTotalDeallocates() << endl; cout << "Room Creates : " << rooms.size() << endl; cout << "Door Creates : " << doors.size() << endl; cout << "Wall Creates : " << aWallFactory.getAllocateCount() << endl; cout << "\t For a general memory saving of : " << sizeof( Wall ) * aWallFactory.getAllocateCount() << " bytes!" << endl; cout << endl; // // Clean out doors // DoorVectorIterator dItr( doors.begin() ); while( dItr != doors.end() ) { aFactory.destroyDoor( (*dItr ) ); ++dItr; } doors.clear(); // // Clean out walls, but wait!!! We don't have to // // // Clean out rooms // RoomMapIterator rItr( rooms.begin() ); while( rItr != rooms.end() ) { aFactory.destroyRoom( (*rItr).second ); ++rItr; } rooms.clear(); // // Final statistics // cout << endl; cout << "Post-cleanup Factory Statistics" << endl; cout << "===============================" << endl; cout << "Total Creates : " << aFactory.getTotalAllocates() << endl; cout << "Total Destroys : " << aFactory.getTotalDeallocates() << endl; cout << endl; } // // Peform default (just show it) // void handleAssertion( AssertionCref aAssert ) { cerr << aAssert.getFile() << ":" << aAssert.getLine() << ":" << "Assertion: "; if( aAssert.getType() == Assertion::NEVERGETHERE ) { cerr << "NEVER_GET_HERE"; } else { if( aAssert.getType() == Assertion::REQUIRE ) { cerr << "REQUIRE"; } else if( aAssert.getType() == Assertion::ENSURE ) { cerr << "ENSURE"; } else if( aAssert.getType() == Assertion::CHECK ) { cerr << "CHECK"; } else { cerr << "ASSERT"; } cerr << "( " << aAssert.getWhy() << " )"; } cerr << endl; } void handleException( ExceptionCref aExcp ) { cerr << aExcp.getFile() << ":" << aExcp.getLine() << ":" << "Exception: " << aExcp.getWhy() << endl; } /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.3 $ $Date: 2000/08/31 22:51:01 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex7/0000775000000000000000000000000007743170760015052 5ustar libcorelinux-0.4.32/src/testdrivers/ex7/include/0000775000000000000000000000000010771017615016467 5ustar libcorelinux-0.4.32/src/testdrivers/ex7/include/PostBanner.hpp0000664000000000000000000000714007050545765021265 0ustar #if !defined(__POSTBANNER_HPP) #define __POSTBANNER_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__DECORATOR_HPP) #include #endif #if !defined(__BANNERCOMPONENT_HPP) #include #endif /** PostBanner is a BannerComponent Decorator that adds information to the banner. */ DECLARE_CLASS( PostBanner ); class PostBanner : public BannerComponent, public CORELINUX(Decorator) { public: // // Constructors and Destructor // /** Default constructor requires a banner and an implementation. @param string const reference @param BannerComponent pointer to implementation */ PostBanner( const string &,BannerComponentPtr ); /** Copy constructor copies theBanner and the implementation. @param PostBanner const reference */ PostBanner( PostBannerCref ); /// Virtual destructor virtual ~PostBanner( void ); /** Assignmnet operator copies theBanner and the implementation. @param PostBanner const reference @return PostBanner reference (*this) */ PostBannerRef operator=( PostBannerCref ); /** Equality operator @param PostBanner const reference @return bool - true if theBanner is same */ bool operator==( PostBannerCref ) const; // // Accessors // /** Retrieves the banner, only our task is to Post-pend the constructed banner first. */ virtual string getBanner( void ) const; /** drawBanner displays theBanner @param ostream - stream output @param bool true if endl is appended */ virtual void drawBanner ( ostream &aStream , bool doEndl=false ) const; protected: /** Default constructor not allowed. @exception Exception */ PostBanner( void ) throw(CORELINUX(Exception)); }; #endif // if !defined(__POSTBANNER_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/02/10 14:32:21 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex7/include/BannerComponent.hpp0000664000000000000000000000671210771017615022276 0ustar #if !defined(__BANNERCOMPONENT_HPP) #define __BANNERCOMPONENT_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #include #include using namespace std; /** A BannerComponent is a base component that displays its Banner. You can must set the banner during construction but always reset it later. */ DECLARE_CLASS(BannerComponent) class BannerComponent { public: /** Default constructor requires a banner @param string const reference */ BannerComponent( const string & ); /** Copy constructor copies theBanner @param BannerComponent const reference */ BannerComponent( BannerComponentCref ); /// Virtual destructor virtual ~BannerComponent( void ); /** Assignmnet operator copies theBanner @param BannerComponent const reference @return BannerComponent reference (*this) */ BannerComponentRef operator=( BannerComponentCref ); /** Equality operator @param BannerComponent const reference @return bool - true if theBanner is same */ bool operator==( BannerComponentCref ) const; // // Accessors // /** Retrieves the banner */ virtual string getBanner( void ) const; /** drawBanner displays theBanner @param ostream - stream output @param bool true if endl is appended */ virtual void drawBanner ( ostream &aStream , bool doEndl=false ) const; // // Mutators // /// Sets a new banner void setBanner( const string & ); protected: /** Default constructor not allowed. @exception Exception */ BannerComponent( void ) throw(CORELINUX(Exception)); private: string theBanner; }; #endif // if !defined(__BANNERCOMPONENT_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/02/10 14:32:21 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex7/include/PreBanner.hpp0000664000000000000000000000712407050545765021070 0ustar #if !defined(__PREBANNER_HPP) #define __PREBANNER_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__DECORATOR_HPP) #include #endif #if !defined(__BANNERCOMPONENT_HPP) #include #endif /** A PreBanner is a BannerComponent Decorator that pre-pends information to the banner. */ DECLARE_CLASS( PreBanner ); class PreBanner : public BannerComponent, public CORELINUX(Decorator) { public: // // Constructors and Destructor // /** Default constructor requires a banner and an implementation. @param string const reference @param BannerComponent pointer to implementation */ PreBanner( const string &,BannerComponentPtr ); /** Copy constructor copies theBanner and the implementation. @param PreBanner const reference */ PreBanner( PreBannerCref ); /// Virtual destructor virtual ~PreBanner( void ); /** Assignmnet operator copies theBanner and the implementation. @param PreBanner const reference @return PreBanner reference (*this) */ PreBannerRef operator=( PreBannerCref ); /** Equality operator @param PreBanner const reference @return bool - true if theBanner is same */ bool operator==( PreBannerCref ) const; // // Accessors // /** Retrieves the banner, only our task is to pre-pend the constructed banner first. */ virtual string getBanner( void ) const; /** drawBanner displays theBanner @param ostream - stream output @param bool true if endl is appended */ virtual void drawBanner ( ostream &aStream , bool doEndl=false ) const; protected: /** Default constructor not allowed. @exception Exception */ PreBanner( void ) throw(CORELINUX(Exception)); }; #endif // if !defined(__PREBANNER_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/02/10 14:32:21 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex7/include/Makefile.am0000664000000000000000000000070007100671014020507 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 13:13:19 # LAST-MOD: 10-Apr-00 at 13:13:38 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc noinst_HEADERS = BannerComponent.hpp PreBanner.hpp PostBanner.hpplibcorelinux-0.4.32/src/testdrivers/ex7/include/Makefile.in0000664000000000000000000002275607743170760020556 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 13:13:19 # LAST-MOD: 10-Apr-00 at 13:13:38 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc noinst_HEADERS = BannerComponent.hpp PreBanner.hpp PostBanner.hpp subdir = src/testdrivers/ex7/include ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = DIST_SOURCES = HEADERS = $(noinst_HEADERS) DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.in Makefile.am all: all-am .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex7/include/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am info \ info-am install install-am install-data install-data-am \ install-exec install-exec-am install-info install-info-am \ install-man install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags uninstall uninstall-am uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/ex7/examp7.cpp0000664000000000000000000001021607153560334016752 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** \example examp7.cpp This example is to show use of the Decorator pattern. In our scenario we have a BannerComponent. This is the Component that the Decorators need to add responsibility to.We create two (2) decorators PreBanner and PostBanner which are the relevance of where they add responsibilities. Finally, we chain the decorators and the component being decorated. */ #include #include #include #include using namespace corelinux; #include #include // // In module function prototypes // int main( void ); // // Functions that work with Engine types // void handleAssertion( AssertionCref ); void handleException( ExceptionCref ); int main( void ) { // // Practice gracefull exception management // cout << endl; try { // // Instantiate the component implementation. // And invoke the operation. // BannerComponent aBanner("A Basic Banner"); cout << "-------------------------------------------" << endl; aBanner.drawBanner( cout ); cout << endl; cout << "-------------------------------------------" << endl; // // And a pre decorator and invoke the // operation. // PreBanner aPreBanner("A header to ",&aBanner); aPreBanner.drawBanner(cout); cout << endl; cout << "-------------------------------------------" << endl; // // Add a post decorator and invoke the operation // PostBanner aPostBanner(" with a trailer.",&aBanner); aPostBanner.drawBanner(cout); cout << endl; cout << "-------------------------------------------" << endl; // // How you can chain decorators. // aPreBanner.setImplementation(&aPostBanner); aPreBanner.drawBanner(cout); cout << endl; cout << "-------------------------------------------" << endl; } catch( AssertionRef aAssert ) { handleAssertion(aAssert); } catch( ExceptionRef aException ) { handleException(aException); } catch( std::exception & e ) { cerr << e.what() << endl; } catch( ... ) { cerr << "Unknown exception." << endl; } return 0; } // // Peform default (just show it) // void handleAssertion( AssertionCref aAssert ) { cerr << aAssert.getFile() << ":" << aAssert.getLine() << ":" << "Assertion: "; if( aAssert.getType() == Assertion::NEVERGETHERE ) { cerr << "NEVER_GET_HERE"; } else { if( aAssert.getType() == Assertion::REQUIRE ) { cerr << "REQUIRE"; } else if( aAssert.getType() == Assertion::ENSURE ) { cerr << "ENSURE"; } else if( aAssert.getType() == Assertion::CHECK ) { cerr << "CHECK"; } else { cerr << "ASSERT"; } cerr << "( " << aAssert.getWhy() << " )"; } cerr << endl; } void handleException( ExceptionCref aExcp ) { cerr << aExcp.getFile() << ":" << aExcp.getLine() << ":" << "Exception: " << aExcp.getWhy() << endl; } /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.2 $ $Date: 2000/08/31 22:49:00 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex7/PreBanner.cpp0000664000000000000000000000535307064702745017440 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__DECORATOR_HPP) #include #endif #if !defined(__PREBANNER_HPP) #include #endif using namespace corelinux; // // Default constructor wack // PreBanner::PreBanner( void ) throw(Exception) : BannerComponent(), Decorator(NULLPTR) { ; // } // // Constructor with banner and implementation // PreBanner::PreBanner( const string &aBanner, BannerComponentPtr aImplementation ) : BannerComponent( aBanner ), Decorator( aImplementation ) { REQUIRE( aImplementation != NULLPTR ); } // // Copy constructor // PreBanner::PreBanner( PreBannerCref aRef ) : BannerComponent( aRef ), Decorator( aRef ) { ; // do nothing } PreBanner::~PreBanner( void ) { ; // do nothing } // // Assignment operator // PreBannerRef PreBanner::operator=( PreBannerCref aRef ) { BannerComponent::operator=(aRef); Decorator::operator=(aRef); return (*this); } // // Equality operator // bool PreBanner::operator==( PreBannerCref aRef ) const { return ( BannerComponent::operator==(aRef) && Decorator::operator==(aRef) ); } // // Retrieve the entire banner // string PreBanner::getBanner( void ) const { string aString( BannerComponent::getBanner() ); aString += getImplementation()->getBanner(); return aString; } // // Draw the banner with a stream // void PreBanner::drawBanner( ostream &aStream, bool doEndl ) const { aStream << BannerComponent::getBanner(); if( doEndl == true ) { aStream << endl; } else { ; // do nothing } getImplementation()->drawBanner(aStream,doEndl); } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/03/18 13:34:29 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex7/BannerComponent.cpp0000664000000000000000000000510107042402337020631 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__BANNERCOMPONENT_HPP) #include #endif using namespace corelinux; // // Default constructor not allowed // BannerComponent::BannerComponent( void ) throw(Exception) { throw Exception("Requires a Banner!",LOCATION); } // // Constructor with a Banner // BannerComponent::BannerComponent( const string &aBanner ) : theBanner( aBanner ) { ; // do nothing } // // Copy constructor // BannerComponent::BannerComponent( BannerComponentCref aRef ) : theBanner( aRef.getBanner() ) { ; // do nothing } // // Destructor // BannerComponent::~BannerComponent( void ) { ; // do nothing } // // Assignment operator // BannerComponentRef BannerComponent::operator=( BannerComponentCref aBanner ) { if( *this == aBanner ) { ; // do nothing } else { this->setBanner( aBanner.getBanner() ); } return (*this); } // // Equality operator // bool BannerComponent::operator==( BannerComponentCref aBanner ) const { return (this == &aBanner && ( this->getBanner() == aBanner.getBanner() ) ); } // // Retrieve theBanner // string BannerComponent::getBanner( void ) const { return theBanner; } // // Draw the banner // void BannerComponent::drawBanner( ostream &aStream, bool doEndl ) const { aStream << this->getBanner(); if( doEndl == true ) { aStream << endl; } else { ; // do nothing } } // // Set a new banner // void BannerComponent::setBanner( const string &aBanner ) { theBanner = aBanner; } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/01/22 19:28:31 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex7/Makefile.am0000664000000000000000000000106007137764257017112 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 08:34:22 # LAST-MOD: 23-Apr-00 at 16:14:20 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = include bin_PROGRAMS = ex7 ex7_SOURCES = examp7.cpp BannerComponent.cpp PostBanner.cpp PreBanner.cpp ex7_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la libcorelinux-0.4.32/src/testdrivers/ex7/Makefile.in0000664000000000000000000004405607743170760017130 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 08:34:22 # LAST-MOD: 23-Apr-00 at 16:14:20 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = include bin_PROGRAMS = ex7 ex7_SOURCES = examp7.cpp BannerComponent.cpp PostBanner.cpp PreBanner.cpp ex7_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la subdir = src/testdrivers/ex7 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = bin_PROGRAMS = ex7$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) am_ex7_OBJECTS = examp7.$(OBJEXT) BannerComponent.$(OBJEXT) \ PostBanner.$(OBJEXT) PreBanner.$(OBJEXT) ex7_OBJECTS = $(am_ex7_OBJECTS) ex7_DEPENDENCIES = ${top_builddir}/src/classlibs/corelinux/libcl++.la ex7_LDFLAGS = DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/admin/depcomp am__depfiles_maybe = depfiles @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/BannerComponent.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/PostBanner.Po ./$(DEPDIR)/PreBanner.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/examp7.Po CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ DIST_SOURCES = $(ex7_SOURCES) RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \ ps-recursive install-info-recursive uninstall-info-recursive \ all-recursive install-data-recursive install-exec-recursive \ installdirs-recursive install-recursive uninstall-recursive \ check-recursive installcheck-recursive DIST_COMMON = $(srcdir)/Makefile.in Makefile.am DIST_SUBDIRS = $(SUBDIRS) SOURCES = $(ex7_SOURCES) all: all-recursive .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc .lo .obj $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex7/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(bindir) @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f $(DESTDIR)$(bindir)/$$f"; \ rm -f $(DESTDIR)$(bindir)/$$f; \ done clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done ex7$(EXEEXT): $(ex7_OBJECTS) $(ex7_DEPENDENCIES) @rm -f ex7$(EXEEXT) $(CXXLINK) $(ex7_LDFLAGS) $(ex7_OBJECTS) $(ex7_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) core *.core distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BannerComponent.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PostBanner.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PreBanner.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/examp7.Po@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if (etags --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ else \ include_option=--include; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -f $$subdir/TAGS && \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ || exit 1; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" \ distdir=../$(distdir)/$$subdir \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(PROGRAMS) installdirs: installdirs-recursive installdirs-am: $(mkinstalldirs) $(DESTDIR)$(bindir) install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: info: info-recursive info-am: install-data-am: install-exec-am: install-binPROGRAMS install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \ clean-binPROGRAMS clean-generic clean-libtool clean-recursive \ ctags ctags-recursive distclean distclean-compile \ distclean-generic distclean-libtool distclean-recursive \ distclean-tags distdir dvi dvi-am dvi-recursive info info-am \ info-recursive install install-am install-binPROGRAMS \ install-data install-data-am install-data-recursive \ install-exec install-exec-am install-exec-recursive \ install-info install-info-am install-info-recursive install-man \ install-recursive install-strip installcheck installcheck-am \ installdirs installdirs-am installdirs-recursive \ maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \ pdf pdf-am pdf-recursive ps ps-am ps-recursive tags \ tags-recursive uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-info-am uninstall-info-recursive uninstall-recursive # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/ex7/PostBanner.cpp0000664000000000000000000000542407064702745017636 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__DECORATOR_HPP) #include #endif #if !defined(__POSTBANNER_HPP) #include #endif using namespace corelinux; // // Default constructor wack // PostBanner::PostBanner( void ) throw(Exception) : BannerComponent(), Decorator(NULLPTR) { ; // } // // Constructor with banner and implementation // PostBanner::PostBanner ( const string &aBanner, BannerComponentPtr aImplementation ) : BannerComponent( aBanner ), Decorator( aImplementation ) { REQUIRE( aImplementation != NULLPTR ); } // // Copy constructor // PostBanner::PostBanner( PostBannerCref aRef ) : BannerComponent( aRef ), Decorator( aRef ) { ; // do nothing } PostBanner::~PostBanner( void ) { ; // do nothing } // // Assignment operator // PostBannerRef PostBanner::operator=( PostBannerCref aRef ) { BannerComponent::operator=(aRef); Decorator::operator=(aRef); return (*this); } // // Equality operator // bool PostBanner::operator==( PostBannerCref aRef ) const { return ( BannerComponent::operator==(aRef) && Decorator::operator==(aRef) ); } // // Retrieve the entire banner // string PostBanner::getBanner( void ) const { string aString( getImplementation()->getBanner()); aString += BannerComponent::getBanner() ; return aString; } // // Draw the banner with a stream // void PostBanner::drawBanner( ostream &aStream, bool doEndl ) const { getImplementation()->drawBanner(aStream,doEndl); if( doEndl == true ) { aStream << endl; } else { ; // do nothing } aStream << BannerComponent::getBanner(); } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/03/18 13:34:29 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex16/0000775000000000000000000000000010771017616015125 5ustar libcorelinux-0.4.32/src/testdrivers/ex16/examp16.cpp0000664000000000000000000001161510771017616017116 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** \example examp16.cpp This example is to show use of the basic Memory and MemoryStorage implementations. 1. Create a private storage region 2. Write data to region 3. Read data from region 4. Destroy the region 5. Handle all the exception potentials */ #include #include using namespace corelinux; using namespace std; #include #include // // In module function prototypes // int main( void ); // // General Functions // void handleAssertion( AssertionCref ); void handleException( ExceptionCref ); // // Thread entry point declarations // // // Global data // struct MyStruct { int va1; int va2; int va3; }; // // Main entry point // int main( void ) { cout << endl; // // Practice graceful exception management // MemoryStoragePtr aMemoryBlock( NULLPTR ); try { Int regionSize(300); Byte value(1); // // Test for write and read of simple types using // subscript addressing // aMemoryBlock = Memory::createStorage( regionSize ); --regionSize; for( Int x = 0; x < regionSize; ++x ) { // Alternate the data changes if( x % 2 ) { (*aMemoryBlock)[x] = value; } else { ; // do nothing } } for( Int x = 0; x < regionSize; ++x ) { Byte v = (*aMemoryBlock)[x]; cout << ( v ? "*" : "." ); } cout << endl; // // Test for more complex types // MyStruct aCompoundTest={1,2,3}; regionSize /= sizeof( MyStruct ); for( Int x = 0; x < regionSize; ++x ) { // Because the operator[] assumes an absolute address // in the MemoryStorage region (*aMemoryBlock)[sizeof(MyStruct)*x] = aCompoundTest; } // Read 'em out for( Int x = 0; x < regionSize; ++x ) { MyStruct retTest = (*aMemoryBlock)[sizeof(MyStruct)*x]; cout << retTest.va1 << "," << retTest.va2 << "," << retTest.va3 << " "; } cout << endl; Memory::destroyStorage( aMemoryBlock ); aMemoryBlock = NULLPTR; } catch( BoundsException aBoundsException ) { cerr << "Bounds exception occured referencing MemoryStorage" << endl; handleException(aBoundsException); } catch( StorageException aStorageException ) { cerr << "General storage exception received" << endl; handleException(aStorageException); } catch( AssertionRef aAssert ) { handleAssertion(aAssert); } catch( ExceptionRef aException ) { handleException(aException); } catch( std::exception & e ) { cerr << e.what() << endl; } catch( ... ) { cerr << "Unknown exception." << endl; } // Be sure to cleanup if( aMemoryBlock != NULLPTR ) { Memory::destroyStorage( aMemoryBlock ); aMemoryBlock = NULLPTR; } else { ; // do nothing } return 0; } // // Error handlers // void handleAssertion( AssertionCref aAssert ) { cerr << aAssert.getFile() << ":" << aAssert.getLine() << ":" << "Assertion: "; if( aAssert.getType() == Assertion::NEVERGETHERE ) { cerr << "NEVER_GET_HERE"; } else { if( aAssert.getType() == Assertion::REQUIRE ) { cerr << "REQUIRE"; } else if( aAssert.getType() == Assertion::ENSURE ) { cerr << "ENSURE"; } else if( aAssert.getType() == Assertion::CHECK ) { cerr << "CHECK"; } else { cerr << "ASSERT"; } cerr << "( " << aAssert.getWhy() << " )"; } cerr << endl; } void handleException( ExceptionCref aExcp ) { cerr << aExcp.getFile() << ":" << aExcp.getLine() << ":" << "Exception: " << aExcp.getWhy() << endl; } /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.4 $ $Date: 2000/08/31 22:49:02 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex16/Makefile.am0000664000000000000000000000112307137764174017170 0ustar # -*- Mode: makefile -*- # SUMMARY : # USAGE : make # AUTHOR : Christophe Prud'homme # ORG : Christophe Prud'homme # E-MAIL : # ORIG-DATE : 26-Apr-89 # LAST-MOD : 12-Apr-00 at 15:49:03 by Christophe Prud'homme # DESCRIPTION : # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc bin_PROGRAMS = ex16 ex16_SOURCES = examp16.cpp ex16_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la # Common rcs information do not modify # $Author: prudhomm $ # $Revision: 1.3 $ # $Date: 2000/07/27 07:45:00 $ # $Locker: $ libcorelinux-0.4.32/src/testdrivers/ex16/Makefile.in0000664000000000000000000003404107743170751017201 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY : # USAGE : make # AUTHOR : Christophe Prud'homme # ORG : Christophe Prud'homme # E-MAIL : # ORIG-DATE : 26-Apr-89 # LAST-MOD : 12-Apr-00 at 15:49:03 by Christophe Prud'homme # DESCRIPTION : # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc bin_PROGRAMS = ex16 ex16_SOURCES = examp16.cpp ex16_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la subdir = src/testdrivers/ex16 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = bin_PROGRAMS = ex16$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) am_ex16_OBJECTS = examp16.$(OBJEXT) ex16_OBJECTS = $(am_ex16_OBJECTS) ex16_DEPENDENCIES = ${top_builddir}/src/classlibs/corelinux/libcl++.la ex16_LDFLAGS = DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/admin/depcomp am__depfiles_maybe = depfiles @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/examp16.Po CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ DIST_SOURCES = $(ex16_SOURCES) DIST_COMMON = $(srcdir)/Makefile.in Makefile.am SOURCES = $(ex16_SOURCES) all: all-am .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc .lo .obj $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex16/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(bindir) @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f $(DESTDIR)$(bindir)/$$f"; \ rm -f $(DESTDIR)$(bindir)/$$f; \ done clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done ex16$(EXEEXT): $(ex16_OBJECTS) $(ex16_DEPENDENCIES) @rm -f ex16$(EXEEXT) $(CXXLINK) $(ex16_LDFLAGS) $(ex16_OBJECTS) $(ex16_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) core *.core distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/examp16.Po@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: $(mkinstalldirs) $(DESTDIR)$(bindir) install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-exec-am: install-binPROGRAMS install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libtool ctags distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-exec install-exec-am \ install-info install-info-am install-man install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-info-am # Common rcs information do not modify # $Author: prudhomm $ # $Revision: 1.3 $ # $Date: 2000/07/27 07:45:00 $ # $Locker: $ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/ex18/0000775000000000000000000000000010771017616015127 5ustar libcorelinux-0.4.32/src/testdrivers/ex18/include/0000775000000000000000000000000007743170753016561 5ustar libcorelinux-0.4.32/src/testdrivers/ex18/include/UpperCaseCommand.hpp0000664000000000000000000000564607104206647022464 0ustar #if !defined(__UPPERCASECOMMAND_HPP) #define __UPPERCASECOMMAND_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__COMMAND_HPP) #include #endif /** UpperCaseCommand takes a string and converts it to upper case. If a reverse command is assigned, it tests it for a RestoreCaseCommand and assigns the original and restoration locations accordingly. */ DECLARE_CLASS( UpperCaseCommand ); class UpperCaseCommand : public CORELINUX( Command ) { public: // // Constructors and destructors // /// Default takes string argument UpperCaseCommand( const std::string & ); /// Copy constructor UpperCaseCommand( UpperCaseCommandCref ); /// Virtual Destructor virtual ~UpperCaseCommand( void ); // // Operator overloads // /// Assignment operator UpperCaseCommandRef operator=( UpperCaseCommandCref ); /// Equality operator bool operator==( UpperCaseCommandCref ) const; // // Accessors // /// Retrieve the original value const std::string & getOriginalValue( void ) const; /// Retrieve the new value const std::string & getNewValue( void ) const; // // Methods supplied as per command interface // /// Override to set reverse information virtual void setReverseCommand( CORELINUX(AbstractCommandPtr) ); /// Execute the upper case routine virtual void execute( void ) ; protected: /// Default is an error, need string UpperCaseCommand( void ) throw ( CORELINUX( Assertion ) ); protected: std::string *theOriginalValue; std::string *theNewValue; private: }; #endif // if !defined(__UPPERCASECOMMAND_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/05/04 05:41:59 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex18/include/Makefile.am0000664000000000000000000000110107104206647020577 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 13:16:42 # LAST-MOD: $Id: Makefile.am,v 1.1 2000/05/04 05:41:59 frankc Exp $ # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc noinst_HEADERS = UpperCaseCommand.hpp RestoreCaseCommand.hpp # Common rcs information do not modify # $Author: frankc $ # $Revision: 1.1 $ # $Date: 2000/05/04 05:41:59 $ # $Locker: $ libcorelinux-0.4.32/src/testdrivers/ex18/include/Makefile.in0000664000000000000000000002316007743170753020630 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 13:16:42 # LAST-MOD: $Id: Makefile.am,v 1.1 2000/05/04 05:41:59 frankc Exp $ # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc noinst_HEADERS = UpperCaseCommand.hpp RestoreCaseCommand.hpp subdir = src/testdrivers/ex18/include ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = DIST_SOURCES = HEADERS = $(noinst_HEADERS) DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.in Makefile.am all: all-am .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex18/include/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am info \ info-am install install-am install-data install-data-am \ install-exec install-exec-am install-info install-info-am \ install-man install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags uninstall uninstall-am uninstall-info-am # Common rcs information do not modify # $Author: frankc $ # $Revision: 1.1 $ # $Date: 2000/05/04 05:41:59 $ # $Locker: $ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/ex18/include/RestoreCaseCommand.hpp0000664000000000000000000000535107104206647023005 0ustar #if !defined(__RESTORECASECOMMAND_HPP) #define __RESTORECASECOMMAND_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__COMMAND_HPP) #include #endif /** RestoreCaseCommand restores the original string */ DECLARE_CLASS( RestoreCaseCommand ); class RestoreCaseCommand : public CORELINUX(Command) { public: // // Constructors and destructors // /// Default takes string argument RestoreCaseCommand( void ); /// Virtual Destructor virtual ~RestoreCaseCommand( void ); // // Operator overloads // /// Equality operator bool operator==( RestoreCaseCommandCref ) const; // // Accessors // // // Mutators // /** Set the value locations to correct @param string the original value location @param string the location to restore to @exception Assertion if either is NULLPTR */ void setValues( std::string **, std::string ** ) throw ( CORELINUX( Assertion ) ); // // Methods supplied as per command interface // virtual void execute( void ) ; protected: /// Copy constructor is no good! RestoreCaseCommand( RestoreCaseCommandCref ) throw ( CORELINUX( Assertion ) ); /// Assignment operator no good RestoreCaseCommandRef operator=( RestoreCaseCommandCref ) throw ( CORELINUX( Assertion ) ); private: std::string **theOriginalValue; std::string **theRestoredValue; }; #endif // if !defined(__RESTORECASECOMMAND_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/05/04 05:41:59 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex18/examp18.cpp0000664000000000000000000002215210771017616017120 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** \example examp18.cpp This example is to show use of the Command pattern. There are three(3) self documenting tests that are run: 1. Create a command which converts a mixed case string to upper case. 2. Same as #1 but add a reverse command and intentionaly undo the change. 3. Add the command and reverse and a little nasty suprise to force the CommandFrame to roll-back the commands automatically because of a problem in the transaction. */ #include #if !defined(__COMMANDFRAME__HPP) #include #endif #include #include using namespace corelinux; using namespace std; #include #include // // In module function prototypes // int main( void ); // // General Functions // void doTestOne( void ); void doTestTwo( void ); void doTestThree( void ); void handleAssertion( AssertionCref ); void handleException( ExceptionCref ); // // Global data // // // Main entry point // int main( void ) { cout << endl; // // Practice graceful exception management // try { // // Run the various tests // doTestOne(); doTestTwo(); doTestThree(); } catch( CommandFrameException aException ) { cerr << "Received CommandFrameException!" << endl; handleException(aException); } catch( AssertionRef aAssert ) { handleAssertion(aAssert); } catch( ExceptionRef aException ) { handleException(aException); } catch( std::exception & e ) { cerr << e.what() << endl; } catch( ... ) { cerr << "Unknown exception." << endl; } return 0; } // // Some utility functions // CommandFramePtr createTransaction( bool autoMode = true ); void destroyTransaction( CommandFramePtr ); void displayResults( CommandFramePtr ); CommandPtr createUpperCommand( void ); void cleanupCommands( CommandFramePtr ); // Test One Simple void doTestOne( void ) { cout << endl; cout << "With the first test we create a command that " << endl; cout << "converts a string to upper case." << endl; cout << endl; CommandFramePtr aTransaction(NULLPTR); try { aTransaction = createTransaction( false ); aTransaction->addCommand( createUpperCommand() ); aTransaction->execute(); displayResults( aTransaction ); destroyTransaction( aTransaction ); } catch( ExceptionRef aExcp ) { if( aTransaction != NULLPTR ) { destroyTransaction( aTransaction ); } else { ; // do nothing } throw; } } CommandPtr createUpperAndReverseCommand( void ); // Test two (imagine a undo stack!!! void doTestTwo( void ) { cout << endl; cout << "With the next test we create a command that " << endl; cout << "converts a string to upper case. We also add " << endl; cout << "an undo command, we execute and then undo the " << endl; cout << "change displaying as we go. THINK UNDO STACK!!! " << endl; cout << endl; CommandFramePtr aTransaction(NULLPTR); try { aTransaction = createTransaction( true ); aTransaction->addCommand( createUpperAndReverseCommand() ); aTransaction->execute(); displayResults( aTransaction ); aTransaction->executeReverse(); displayResults( aTransaction ); destroyTransaction( aTransaction ); } catch( ExceptionRef aExcp ) { if( aTransaction != NULLPTR ) { destroyTransaction( aTransaction ); } else { ; // do nothing } throw; } } // Bogus run on purpose! // // The nasty ugly that excercises the CommandFrame // rollback // class UglyCommand : public Command { public: UglyCommand( void ) : Command() { ; // do nothing } virtual ~UglyCommand( void ) { ; // do nothing } virtual void execute( void ) { throw Exception("Candy gram for Mungo",LOCATION); } }; void doTestThree( void ) { cout << endl; cout << "In this test, we put a nasty little command that " << endl; cout << "forces the CommandFrame to rollback itself AFTER " << endl; cout << "the UpperCaseCommand. The resulting output should " << endl; cout << "show that the original string is restored." << endl; cout << endl; CommandFramePtr aTransaction(NULLPTR); try { aTransaction = createTransaction( true ); aTransaction->addCommand( createUpperAndReverseCommand() ); aTransaction->addCommand( new UglyCommand ); aTransaction->execute(); displayResults( aTransaction ); destroyTransaction( aTransaction ); } catch( ExceptionRef aExcp ) { if( aTransaction != NULLPTR ) { destroyTransaction( aTransaction ); } else { ; // do nothing } throw; } } // // Allocate a CommandFrame // CommandFramePtr createTransaction( bool autoMode ) { return new CommandFrame( autoMode ); } // // Destroy the command frame // void destroyTransaction( CommandFramePtr aTransaction ) { cleanupCommands( aTransaction ); delete aTransaction; } // // Iterate the results // void displayResults( CommandFramePtr aTransaction ) { REQUIRE( aTransaction != NULLPTR ); Commands aCollection; WorkState aRunFlag( aTransaction->getState() ); cout << "Transaction state = " << ( aRunFlag == COMPLETED ? "Success" : ( aRunFlag == REVERSED ? "Rolled back" : "Invalid" ) ) << endl; aTransaction->getCommands(aCollection); CommandsIterator begin( aCollection.begin() ); while( begin != aCollection.end() ) { if( dynamic_cast((*begin)) != NULLPTR ) { cout << "Upper case results = " << dynamic_cast((*begin))->getNewValue() << endl; } ++begin; } cout << endl; } // // Create the to UpperCase command // CommandPtr createUpperCommand( void ) { string aString; cout << "Enter a mixed case string : "; cin >> aString; return new UpperCaseCommand( aString ); } // // Create the Upper command and the ability // to restore it. // CommandPtr createUpperAndReverseCommand( void ) { CommandPtr baseCmd( createUpperCommand() ); CHECK( baseCmd != NULLPTR ); CommandPtr undoCmd( new RestoreCaseCommand ); CHECK( undoCmd != NULLPTR ); baseCmd->setReverseCommand( undoCmd ); return baseCmd; } // // Iterates through the transaction and deletes // the commands and reverse commands // void cleanupCommands( CommandFramePtr aTransaction ) { REQUIRE( aTransaction != NULLPTR ); Commands aCollection; aTransaction->getCommands(aCollection); CommandsIterator begin( aCollection.begin() ); while( begin != aCollection.end() ) { CommandPtr aCmdPtr( static_cast(*begin) ); if( aCmdPtr->getReverseCommand() != NULLPTR ) { delete aCmdPtr->getReverseCommand(); aCmdPtr->setReverseCommand( NULLPTR ); } else { ; // do nothing } delete aCmdPtr; ++begin; } } // // Error handlers // void handleAssertion( AssertionCref aAssert ) { cerr << aAssert.getFile() << ":" << aAssert.getLine() << ":" << "Assertion: "; if( aAssert.getType() == Assertion::NEVERGETHERE ) { cerr << "NEVER_GET_HERE"; } else { if( aAssert.getType() == Assertion::REQUIRE ) { cerr << "REQUIRE"; } else if( aAssert.getType() == Assertion::ENSURE ) { cerr << "ENSURE"; } else if( aAssert.getType() == Assertion::CHECK ) { cerr << "CHECK"; } else { cerr << "ASSERT"; } cerr << "( " << aAssert.getWhy() << " )"; } cerr << endl; } void handleException( ExceptionCref aExcp ) { cerr << aExcp.getFile() << ":" << aExcp.getLine() << ":" << "Exception: " << aExcp.getWhy() << endl; } /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.2 $ $Date: 2000/08/31 22:49:02 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex18/RestoreCaseCommand.cpp0000664000000000000000000000523507104206647021356 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__RESTORECASECOMMAND_HPP) #include #endif using namespace corelinux; // Default RestoreCaseCommand::RestoreCaseCommand( void ) : Command(), theOriginalValue( NULLPTR ), theRestoredValue( NULLPTR ) { ; // do nothing } // Copy not allowed RestoreCaseCommand::RestoreCaseCommand( RestoreCaseCommandCref ) throw ( Assertion ) : Command(), theOriginalValue( NULLPTR ), theRestoredValue( NULLPTR ) { NEVER_GET_HERE; } // Destructor RestoreCaseCommand::~RestoreCaseCommand( void ) { theOriginalValue = NULLPTR; theRestoredValue = NULLPTR; } // Assignment RestoreCaseCommandRef RestoreCaseCommand::operator=( RestoreCaseCommandCref ) throw ( Assertion ) { NEVER_GET_HERE; return ( *this ); } // Operator equals bool RestoreCaseCommand::operator== ( RestoreCaseCommandCref aRestoreCommand ) const { return ( this == &aRestoreCommand ); } // Set the execution values void RestoreCaseCommand::setValues( std::string **orig, std::string **restored ) throw ( Assertion ) { REQUIRE( orig != NULLPTR && *orig != NULLPTR ); REQUIRE( restored != NULLPTR && *restored != NULLPTR ); theOriginalValue = orig; theRestoredValue = restored; } // Execute void RestoreCaseCommand::execute( void ) { if( theOriginalValue != NULLPTR && *theOriginalValue != NULLPTR ) { if( theRestoredValue != NULLPTR && theRestoredValue != NULLPTR ) { **theRestoredValue = **theOriginalValue; } else { ; // do nothing } } else { ; // do nothing } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/05/04 05:41:59 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex18/Makefile.am0000664000000000000000000000123607137764206017173 0ustar # -*- Mode: makefile -*- # SUMMARY : # USAGE : make # AUTHOR : Christophe Prud'homme # ORG : Christophe Prud'homme # E-MAIL : # ORIG-DATE : 26-Apr-89 # LAST-MOD : $Id: Makefile.am,v 1.3 2000/07/27 07:45:10 prudhomm Exp $ # DESCRIPTION : # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = include bin_PROGRAMS = ex18 ex18_SOURCES = examp18.cpp UpperCaseCommand.cpp RestoreCaseCommand.cpp ex18_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la # Common rcs information do not modify # $Author: prudhomm $ # $Revision: 1.3 $ # $Date: 2000/07/27 07:45:10 $ # $Locker: $ libcorelinux-0.4.32/src/testdrivers/ex18/Makefile.in0000664000000000000000000004412307743170752017206 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY : # USAGE : make # AUTHOR : Christophe Prud'homme # ORG : Christophe Prud'homme # E-MAIL : # ORIG-DATE : 26-Apr-89 # LAST-MOD : $Id: Makefile.am,v 1.3 2000/07/27 07:45:10 prudhomm Exp $ # DESCRIPTION : # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = include bin_PROGRAMS = ex18 ex18_SOURCES = examp18.cpp UpperCaseCommand.cpp RestoreCaseCommand.cpp ex18_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la subdir = src/testdrivers/ex18 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = bin_PROGRAMS = ex18$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) am_ex18_OBJECTS = examp18.$(OBJEXT) UpperCaseCommand.$(OBJEXT) \ RestoreCaseCommand.$(OBJEXT) ex18_OBJECTS = $(am_ex18_OBJECTS) ex18_DEPENDENCIES = ${top_builddir}/src/classlibs/corelinux/libcl++.la ex18_LDFLAGS = DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/admin/depcomp am__depfiles_maybe = depfiles @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/RestoreCaseCommand.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/UpperCaseCommand.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/examp18.Po CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ DIST_SOURCES = $(ex18_SOURCES) RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \ ps-recursive install-info-recursive uninstall-info-recursive \ all-recursive install-data-recursive install-exec-recursive \ installdirs-recursive install-recursive uninstall-recursive \ check-recursive installcheck-recursive DIST_COMMON = $(srcdir)/Makefile.in Makefile.am DIST_SUBDIRS = $(SUBDIRS) SOURCES = $(ex18_SOURCES) all: all-recursive .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc .lo .obj $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex18/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(bindir) @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f $(DESTDIR)$(bindir)/$$f"; \ rm -f $(DESTDIR)$(bindir)/$$f; \ done clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done ex18$(EXEEXT): $(ex18_OBJECTS) $(ex18_DEPENDENCIES) @rm -f ex18$(EXEEXT) $(CXXLINK) $(ex18_LDFLAGS) $(ex18_OBJECTS) $(ex18_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) core *.core distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/RestoreCaseCommand.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UpperCaseCommand.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/examp18.Po@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if (etags --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ else \ include_option=--include; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -f $$subdir/TAGS && \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ || exit 1; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" \ distdir=../$(distdir)/$$subdir \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(PROGRAMS) installdirs: installdirs-recursive installdirs-am: $(mkinstalldirs) $(DESTDIR)$(bindir) install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: info: info-recursive info-am: install-data-am: install-exec-am: install-binPROGRAMS install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \ clean-binPROGRAMS clean-generic clean-libtool clean-recursive \ ctags ctags-recursive distclean distclean-compile \ distclean-generic distclean-libtool distclean-recursive \ distclean-tags distdir dvi dvi-am dvi-recursive info info-am \ info-recursive install install-am install-binPROGRAMS \ install-data install-data-am install-data-recursive \ install-exec install-exec-am install-exec-recursive \ install-info install-info-am install-info-recursive install-man \ install-recursive install-strip installcheck installcheck-am \ installdirs installdirs-am installdirs-recursive \ maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \ pdf pdf-am pdf-recursive ps ps-am ps-recursive tags \ tags-recursive uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-info-am uninstall-info-recursive uninstall-recursive # Common rcs information do not modify # $Author: prudhomm $ # $Revision: 1.3 $ # $Date: 2000/07/27 07:45:10 $ # $Locker: $ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/ex18/UpperCaseCommand.cpp0000664000000000000000000000716410771017616021031 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__UPPERCASECOMMAND_HPP) #include #endif #if !defined(__RESTORECASECOMMAND_HPP) #include #endif #include using namespace corelinux; // Default constructor UpperCaseCommand::UpperCaseCommand( void ) throw ( Assertion ) : Command(), theOriginalValue( NULLPTR ), theNewValue( NULLPTR ) { NEVER_GET_HERE; } // Proper constructor UpperCaseCommand::UpperCaseCommand( const std::string & aValue ) : Command(), theOriginalValue( new std::string(aValue) ), theNewValue( new std::string("") ) { ; // do nothing } // Copy constructor UpperCaseCommand::UpperCaseCommand( UpperCaseCommandCref aUpCaseCmd ) : Command( aUpCaseCmd ), theOriginalValue( new std::string(aUpCaseCmd.getOriginalValue()) ), theNewValue( new std::string("") ) { ; // do nothing } // Destructor UpperCaseCommand::~UpperCaseCommand( void ) { if( theOriginalValue != NULLPTR ) { delete theOriginalValue; theOriginalValue = NULLPTR; } else { ; // do nothing } if( theNewValue != NULLPTR ) { delete theNewValue; theNewValue = NULLPTR; } else { ; // do nothing } } // Assignment operator UpperCaseCommandRef UpperCaseCommand::operator= ( UpperCaseCommandCref aUpCaseCmd ) { if( *this == aUpCaseCmd ) { ; // do nothing, its us } else { *theOriginalValue = aUpCaseCmd.getOriginalValue() ; *theNewValue = ""; } return (*this); } // Equality operator bool UpperCaseCommand::operator==( UpperCaseCommandCref aUpCaseCmd ) const { return ( this == &aUpCaseCmd ); } // Access for original const std::string & UpperCaseCommand::getOriginalValue( void ) const { return *theOriginalValue; } // Access for results const std::string & UpperCaseCommand::getNewValue( void ) const { return *theNewValue; } void UpperCaseCommand::setReverseCommand( AbstractCommandPtr aCmdPtr ) { if( dynamic_cast(aCmdPtr) != NULLPTR ) { dynamic_cast(aCmdPtr)->setValues ( &theOriginalValue, &theNewValue ); } else { ; // do nothing } Command::setReverseCommand( aCmdPtr ); } // Do the work void UpperCaseCommand::execute( void ) { size_t len = theOriginalValue->length(); *theNewValue = ""; if( len != 0 ) { for( size_t x = 0; x < len; ++x ) { *theNewValue += toupper((*theOriginalValue)[x]); } } else { ; // do nothing } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/05/04 05:41:59 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex20/0000775000000000000000000000000010771017616015120 5ustar libcorelinux-0.4.32/src/testdrivers/ex20/SubjectObserver.cpp0000664000000000000000000001442510771017616020741 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__CORELINUXASSOCIATIVEITERATOR_HPP) #include #endif #if !defined(__SUBJECTOBSERVER_HPP) #include #endif #if !defined(__EVENTS_HPP) #include #endif using namespace corelinux; using namespace std; // Default constructor SubjectObserver::SubjectObserver( void ) : Subject(), Observer(), theObserverMap() { theObserverMap.clear(); } // Copy constructor SubjectObserver::SubjectObserver( SubjectObserverCref anotherSO ) throw ( Assertion ) : Subject(anotherSO), Observer(anotherSO), theObserverMap() { NEVER_GET_HERE; } // Virtual destructor SubjectObserver::~SubjectObserver( void ) { theObserverMap.clear(); } // Assignment operator SubjectObserverRef SubjectObserver::operator=( SubjectObserverCref ) throw ( Assertion ) { NEVER_GET_HERE; return ( *this ); } // Equality operator bool SubjectObserver::operator=( SubjectObserverCref anotherSO ) const { return ( this == &anotherSO ); } // Add an observer void SubjectObserver::addObserver ( ObserverPtr aObserver, Event *forEvent ) throw ( NullPointerException ) { if( aObserver == NULLPTR || forEvent == NULLPTR ) { throw NullPointerException( LOCATION ); } else { // // Check if we have the observer already, if not we add it // ListEventPtr anEvent( dynamic_cast(forEvent) ); DwordIdentifier aDI( *DwordIdentifierPtr(*anEvent) ); ObserverMapIterator lowerB = theObserverMap.lower_bound( aDI ) ; ObserverMapIterator upperB = theObserverMap.upper_bound( aDI ) ; bool notFound( true ); while( lowerB != upperB && notFound == true ) { if( (*lowerB).second == aObserver ) { notFound = false; } else { ++lowerB; } } if( notFound == true ) { theObserverMap.insert( ObserverMap::value_type(aDI,aObserver) ); } else { ; // do nothing } } } // Take an observer off the subject notification list void SubjectObserver::removeObserver( ObserverPtr aObserver ) throw ( NullPointerException ) { if( aObserver == NULLPTR ) { throw NullPointerException( LOCATION ); } else { ObserverMapIterator begin( theObserverMap.begin() ); ObserverMapIterator end( theObserverMap.end() ); while( begin != end ) { if( (*begin).second == aObserver ) { ObserverMapIterator tmpItr( begin ); ++tmpItr; theObserverMap.erase(begin); begin = tmpItr; } else { ++begin; } } } } void SubjectObserver::removeObserver ( ObserverPtr aObserver, Event *forEvent ) throw ( NullPointerException ) { if( aObserver == NULLPTR || forEvent == NULLPTR ) { throw NullPointerException( LOCATION ); } else { // // Check if we have the observer already, if not we add it // ListEventPtr anEvent( dynamic_cast(forEvent) ); DwordIdentifier aDI( *DwordIdentifierPtr(*anEvent) ); ObserverMapIterator lowerB( theObserverMap.lower_bound( aDI ) ); ObserverMapIterator upperB( theObserverMap.upper_bound( aDI ) ); while( lowerB != upperB ) { if( (*lowerB).second == aObserver ) { ObserverMapIterator tmpItr( lowerB ); ++tmpItr; theObserverMap.erase(lowerB); lowerB = tmpItr; } else { ++lowerB; } } } } // Iterator Factory for all observers Iterator *SubjectObserver::createIterator( void ) { Iterator *pList(NULLPTR); pList = new CoreLinuxAssociativeIterator ( theObserverMap.begin(), theObserverMap.end() ); ENSURE( pList != NULLPTR ); return pList; } // Iterator Factory for all observers interest in this event Iterator *SubjectObserver::createIterator ( Event *anId ) throw ( NullPointerException ) { Iterator *pList(NULLPTR); if( anId == NULLPTR ) { throw NullPointerException(LOCATION); } else { ListEventPtr anEvent( dynamic_cast(anId) ); DwordIdentifier aDI( *DwordIdentifierPtr(*anEvent) ); pList = new CoreLinuxAssociativeIterator ( theObserverMap.lower_bound(aDI), theObserverMap.upper_bound(aDI) ); if( pList == NULLPTR ) { throw NullPointerException(LOCATION); } else { ; // do nothing } } return pList; } // Destroy iterator void SubjectObserver::destroyIterator( Iterator *aIterator ) throw ( NullPointerException ) { if( aIterator == NULLPTR ) { throw NullPointerException(LOCATION); } else { delete aIterator; } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/05/08 22:29:04 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex20/include/0000775000000000000000000000000010771017616016543 5ustar libcorelinux-0.4.32/src/testdrivers/ex20/include/Mementos.hpp0000664000000000000000000001632107153560335021047 0ustar #if !defined(__MEMENTOS_HPP) #define __MEMENTOS_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__VECTOR_HPP) #include #endif #if !defined(__MEMENTO_HPP) #include #endif DECLARE_CLASS( ChangedListMemento ); CORELINUX_VECTOR( string , ListEntries ); /** ChangedListMemento captures the state of the ListColleague */ class ChangedListMemento : public CORELINUX( Memento ) { public: /** Default Constructor @param ListEntries reference to vector of strings */ ChangedListMemento( ListEntriesRef aList ) : CORELINUX(Memento)(), theCurrentList( aList ) { ; // do nothing } /** Copy Constructor @param ChangedListMemento reference */ ChangedListMemento( ChangedListMementoCref aMemento ) : CORELINUX(Memento)(aMemento), theCurrentList( aMemento.theCurrentList ) { ; // do nothing } /// Destructor virtual ~ChangedListMemento( void ) { theCurrentList.clear(); } // // Operator overloads // /// Assignment operator ChangedListMementoRef operator=( ChangedListMementoCref aMemento ) { if( *this == aMemento ) { ; // do nothing } else { CORELINUX(Memento)::operator=( aMemento ); theCurrentList.clear(); theCurrentList = aMemento.theCurrentList; } return ( *this ); } /// Equality test bool operator==( ChangedListMementoCref aMemento ) const { return CORELINUX(Memento)::operator==( aMemento ); } // // Accessors // /// Retrieve the list for inspection, etc. inline ListEntriesRef getList( void ) { return theCurrentList; } protected: private: /// The list ListEntries theCurrentList; }; DECLARE_CLASS( SelectionMemento ); /** SelectionMemento captures the state of SelectColleague. That is which string was selected from the list */ class SelectionMemento : public CORELINUX( Memento ) { public: SelectionMemento( string aSelection ) : CORELINUX(Memento)(), theSelection( aSelection ) { ; // do nothing } SelectionMemento( SelectionMementoCref aMemento ) : CORELINUX(Memento)(aMemento), theSelection( aMemento.theSelection ) { ; // do nothing } virtual ~SelectionMemento( void ) { ; // do nothing } // // Operator overloads // SelectionMementoRef operator=( SelectionMementoCref aMemento ) { if( *this == aMemento ) { ; // do nothing } else { CORELINUX(Memento)::operator=( aMemento ); theSelection = aMemento.theSelection ; } return ( *this ); } bool operator==( SelectionMementoCref aMemento ) const { return CORELINUX(Memento)::operator==( aMemento ); } // // Accessors // inline string &getSelected( void ) { return theSelection; } protected: private: string theSelection; }; DECLARE_CLASS( EditSelectionMemento ); /** EditSelectionMemento captures the state of EditColleague. That is the original string, and the intended replacement */ class EditSelectionMemento : public CORELINUX( Memento ) { public: EditSelectionMemento( string aSelection, string aChange ) : CORELINUX(Memento)(), theSelection( aSelection ), theChange( aChange ) { ; // do nothing } EditSelectionMemento( EditSelectionMementoCref aMemento ) : CORELINUX(Memento)(aMemento), theSelection( aMemento.theSelection ), theChange( aMemento.theChange ) { ; // do nothing } virtual ~EditSelectionMemento( void ) { ; // do nothing } // // Operator overloads // EditSelectionMementoRef operator=( EditSelectionMementoCref aMemento ) { if( *this == aMemento ) { ; // do nothing } else { CORELINUX(Memento)::operator=( aMemento ); theSelection = aMemento.theSelection ; theChange = aMemento.theChange; } return ( *this ); } bool operator==( EditSelectionMementoCref aMemento ) const { return CORELINUX(Memento)::operator==( aMemento ); } // // Accessors // inline string &getSelected( void ) { return theSelection; } inline string &getChange( void ) { return theChange; } protected: private: string theSelection; string theChange; }; #endif /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.2 $ $Date: 2000/08/31 22:49:01 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex20/include/Edit.hpp0000664000000000000000000000456407153560335020153 0ustar #if !defined(__EDIT_HPP) #define __EDIT_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__SUBJECTOBSERVER_HPP) #include #endif DECLARE_CLASS( ListMediator ); DECLARE_CLASS( Edit ); /** Edit listens for a selection event and allows the user to change the entry */ class Edit : public SubjectObserver { public: // // Constructors and destructor // /// Default constructor Edit( void ); /// Virtual destructor virtual ~Edit( void ); // // Operator overloads // /// Equality operator bool operator==( EditCref ) const; // // Accessors // // // Mutators // /** Called by a subject when an event that this observer is interested in gets generated. @param Event pointer to event */ virtual void event( CORELINUX( Event ) * ) throw ( CORELINUX(NullPointerException) ); protected: /// Copy constructor Edit( EditCref ) throw ( CORELINUX( Assertion ) ); /// Assignment operator EditRef operator=( EditCref ) throw ( CORELINUX( Assertion ) ); private: }; #endif // if !defined(__EDIT_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.2 $ $Date: 2000/08/31 22:49:01 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex20/include/Select.hpp0000664000000000000000000000531107153560335020474 0ustar #if !defined(__Select_HPP) #define __Select_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__VECTOR_HPP) #include #endif #if !defined(__SUBJECTOBSERVER_HPP) #include #endif DECLARE_CLASS( Select ); /** Select provides support for selecting a sentence from a list. When this occurs, it fires off an event with a SelectionMemento */ class Select : public SubjectObserver { CORELINUX_VECTOR( string , ListEntries ); public: // // Constructors and destructor // /// Default constructor Select( void ); /// Virtual destructor virtual ~Select( void ); // // Operator overloads // /// Equality operator bool operator==( SelectCref ) const; // // Accessors // // // Mutators // /// Returns true if selection was made bool getSelection( void ); /** Called by subject when there is a change and this observer is in the interested observer list. @param Event pointer to event */ virtual void event( CORELINUX( Event ) * ) throw ( CORELINUX(NullPointerException) ); protected: /// Copy constructor Select( SelectCref ) throw ( CORELINUX( Assertion ) ); /// Assignment operator SelectRef operator=( SelectCref ) throw ( CORELINUX( Assertion ) ); private: /// The list of entries ListEntries theCurrentList; }; #endif // if !defined(__SELECT_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.2 $ $Date: 2000/08/31 22:49:01 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex20/include/Events.hpp0000664000000000000000000000670007105637660020527 0ustar #if !defined(__EVENTS_HPP) #define __EVENTS_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__EVENT_HPP) #include #endif #if !defined(__MEMENTO_HPP) #include #endif /** Useful event identifier assignments */ static DwordIdentifier ListChanged(1); static DwordIdentifier SelectionMade(2); static DwordIdentifier EditedEntry(3); DECLARE_CLASS( ListEvent ); /** We define our domain event type which uses a numeric identifier and accepts generic Memento pointers. The destructor of the Event clears out the Memento for us. How nice. */ class ListEvent : public CORELINUX( Event< DwordIdentifier > ) { public: /// Constructor ListEvent ( DwordIdentifierCref aId, CORELINUX(MementoPtr) aMemento ) throw ( CORELINUX( NullPointerException ) ) : CORELINUX(Event)( aId ), theMemento(aMemento) { if( theMemento == NULLPTR ) { throw CORELINUX(NullPointerException)(LOCATION); } } /// Virtual destructor virtual ~ListEvent( void ) { if( theMemento != NULLPTR ) { delete theMemento; theMemento = NULLPTR; } else { ; // do nothing } } // // Accessors // /// Retrieve the memento inline CORELINUX(MementoRef) getMemento( void ) { return *theMemento; } protected: ListEvent( void ) : CORELINUX( Event )(), theMemento( NULLPTR ) { ; // do nothing } private: CORELINUX(MementoPtr) theMemento; }; #endif // if !defined(__LISTEVENTS_HPP) /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/05/08 22:29:04 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex20/include/Lister.hpp0000664000000000000000000000570307153560335020524 0ustar #if !defined(__LISTER_HPP) #define __LISTER_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__VECTOR_HPP) #include #endif #if !defined(__SUBJECTOBSERVER_HPP) #include #endif DECLARE_CLASS( Lister ); /** Does anybody read these things? Anyway, Lister is the maintainer of the list, and is interested in changes made to keep it current */ class Lister : public SubjectObserver { CORELINUX_VECTOR( string , ListEntries ); public: // // Constructors and destructor // /// Default constructor Lister( void ); /// Virtual destructor virtual ~Lister( void ); // // Operator overloads // /// Equality test bool operator==( ListerCref ) const; // // Accessors // // // Mutators // /** Called once to get the list ready. I'm sure there are more imaginitive ways. This is actually a by product of hurried example writing, violating many of my own standards. Well, my son had a baseball game I had to go to so I cut it short! */ void initialize( void ); /** Called by the subject when an event we are interested in gets generated. @param Event pointer to event */ virtual void event( CORELINUX( Event ) * ) throw ( CORELINUX(NullPointerException) ); protected: /// Copy constructor Lister( ListerCref ) throw ( CORELINUX( Assertion ) ); /// Assignment operator ListerRef operator=( ListerCref ) throw ( CORELINUX( Assertion ) ); private: /// The infamous list ListEntries theList; }; #endif // if !defined(__LISTER_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.2 $ $Date: 2000/08/31 22:49:01 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex20/include/Makefile.am0000664000000000000000000000114107105637660020600 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 13:16:42 # LAST-MOD: $Id: Makefile.am,v 1.1 2000/05/08 22:29:04 frankc Exp $ # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc noinst_HEADERS = Events.hpp Mementos.hpp SubjectObserver.hpp Lister.hpp Edit.hpp Select.hpp # Common rcs information do not modify # $Author: frankc $ # $Revision: 1.1 $ # $Date: 2000/05/08 22:29:04 $ # $Locker: $ libcorelinux-0.4.32/src/testdrivers/ex20/include/Makefile.in0000664000000000000000000002321707743170754020625 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 13:16:42 # LAST-MOD: $Id: Makefile.am,v 1.1 2000/05/08 22:29:04 frankc Exp $ # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc noinst_HEADERS = Events.hpp Mementos.hpp SubjectObserver.hpp Lister.hpp Edit.hpp Select.hpp subdir = src/testdrivers/ex20/include ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = DIST_SOURCES = HEADERS = $(noinst_HEADERS) DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.in Makefile.am all: all-am .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex20/include/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am info \ info-am install install-am install-data install-data-am \ install-exec install-exec-am install-info install-info-am \ install-man install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags uninstall uninstall-am uninstall-info-am # Common rcs information do not modify # $Author: frankc $ # $Revision: 1.1 $ # $Date: 2000/05/08 22:29:04 $ # $Locker: $ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/ex20/include/SubjectObserver.hpp0000664000000000000000000001171010771017616022363 0ustar #if !defined(__SUBJECTOBSERVER_HPP) #define __SUBJECTOBSERVER_HPP /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__SUBJECT_HPP) #include #endif #if !defined(__OBSERVER_HPP) #include #endif #if !defined(__MAP_HPP) #include #endif using namespace std; DECLARE_CLASS( SubjectObserver ); /** SubjectObserver maintains the observer list and definitions for subject. Because we have the need for all of our subjects to also be observers, this factors the behavior as well. */ class SubjectObserver : public CORELINUX( Subject ), CORELINUX( Observer ) { CORELINUX_MULTIMAP ( DwordIdentifier, CORELINUX(ObserverPtr), less, ObserverMap ); public: // // Constructors and destructor // /// Default constructor SubjectObserver( void ); /// Virtual destructor virtual ~SubjectObserver( void ); // // Operator overloads // /// Equality operator bool operator=( SubjectObserverCref ) const; // // Mutators // /** Add an observer for a specific event @param Event the type of event interested in @exception NullPointer exception if event is null */ virtual void addObserver ( CORELINUX( ObserverPtr ), CORELINUX( Event ) * ) throw ( CORELINUX( NullPointerException ) ) ; /** Remove an observer from all event notifications @param Observer to remove @exception NullPointer exception Observer is null */ virtual void removeObserver( CORELINUX( ObserverPtr ) ) throw ( CORELINUX( NullPointerException ) ) ; /** Remove an observer from specific event notifications @param Observer to remove @exception NullPointer exception Observer or Event is null */ virtual void removeObserver ( CORELINUX( ObserverPtr ), CORELINUX( Event ) * ) throw ( CORELINUX( NullPointerException ) ) ; // // Iterator Factory methods // /** Create a iterator for all observers @return Iterator */ virtual CORELINUX(Iterator< corelinux::ObserverPtr >) *createIterator( void ); /** Create a iterator for observers of this event @param Event defines the event type predicate @return Iterator @exception NullPointerException if event null */ virtual CORELINUX(Iterator< corelinux::ObserverPtr >) *createIterator ( CORELINUX( Event ) * ) throw ( CORELINUX( NullPointerException ) ) ; /** Deletes the iterator instance @param Iterator @exception NullPointerException if iterator null */ virtual void destroyIterator ( CORELINUX(Iterator< corelinux::ObserverPtr >) * ) throw ( CORELINUX( NullPointerException ) ) ; protected: /// Copy constructor SubjectObserver( SubjectObserverCref ) throw ( CORELINUX( Assertion ) ); /// Assignment operator SubjectObserverRef operator=( SubjectObserverCref ) throw ( CORELINUX( Assertion ) ); private: /// Maps event identifiers to interested observers ObserverMap theObserverMap; }; #endif // if !defined(__SUBJECTOBSERVER_HPP) /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.2 $ $Date: 2000/08/31 22:49:01 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex20/examp20.cpp0000664000000000000000000001467407153560335017115 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** \example examp20.cpp This example is to show use of the Subject/Observer patterns. We basically rework ex19 so that the colleagues @li ListColleague - Maintains a list of sentences that the user can edit @li SelectColleague - Sets up the select of the sentence to edit @li EditColleague - Provides editing for a sentence Now become subject AND observers themselves @li List - Maintains a list of sentences that the user can edit @li Select - Sets up the select of the sentence to edit @li Edit - Provides editing for a sentence and we ditch the Mediator. The above must be both Subject and Observer because they generate and listen for events. When something occurs in a Subject, it captures the state in a Memento which is made part of the Event. The Subject then calls the interested Observers event interface. The flow of traffic is: A) Lister updates the list and calls observers with a memento that contains the current list --> B B) Select is interested in list changes, so it receives an event with the current list. C) The main part of the application invokes Select to do it's thing, which is to display the list and allow for a selection. When a valid selection is received, it calls the mediator with a memento containing the text of the selection ---> D D) The Edit receives the event and displays the selected string with a edit prompt. It calls its observers with a memento that contains the original string, and the replacement string ---> E E) The List receives the event and updates it list and A then C. It behooves me to point out that the advantage of the Mediator implementation lies in the fact that the Colleagues have NO knowledge of other colleagues, whereas the Subjects MUST know their observers. This may be limiting in some solution spaces. The choice, of course, is YOURS!!! Ain't life grand? Some improvements to this code would be makeing the Events prototypes for submitting to observer interest. */ #include #if !defined(__LISTER_HPP) #include #endif #if !defined(__EDIT_HPP) #include #endif #if !defined(__SELECT_HPP) #include #endif #if !defined(__EVENTS_HPP) #include #endif #if !defined(__MEMENTOS_HPP) #include #endif using namespace corelinux; #include #include // // In module function prototypes // int main( void ); // // General Functions // void handleAssertion( AssertionCref ); void handleException( ExceptionCref ); // // Type declarations // // // Global data // // // Main entry point // int main( void ) { cout << endl; // // Practice graceful exception management // try { // // Instantiate Event prototypes // ListEntries aDummy; ListEvent aListEvent( ListChanged,new ChangedListMemento( aDummy ) ); ListEvent aSelectEvent( SelectionMade,new SelectionMemento( "" )); ListEvent aEditEvent( EditedEntry, new EditSelectionMemento("","") ); // // Instantiate SubjectObserver types // Lister aList; Edit aEditor; Select aSelection; // // Make the links // aList.addObserver ( ObserverPtr(&aSelection), (Event*)&aListEvent ); aEditor.addObserver ( ObserverPtr(&aList), (Event*)&aEditEvent ); aSelection.addObserver ( ObserverPtr(&aEditor), (Event*)&aSelectEvent ); // // Perform the work // aList.initialize(); while( aSelection.getSelection() == true ) ; // // Clean somethings up // aSelection.removeObserver( ObserverPtr( &aEditor ) ); aEditor.removeObserver( ObserverPtr( &aList ) ); aList.removeObserver( ObserverPtr( &aSelection ) ); } catch( NullPointerException aException ) { cerr << "Received NullPointerException!" << endl; handleException(aException); } catch( AssertionRef aAssert ) { handleAssertion(aAssert); } catch( ExceptionRef aException ) { handleException(aException); } catch( std::exception & e ) { cerr << e.what() << endl; } catch( ... ) { cerr << "Unknown exception." << endl; } return 0; } // // Some utility functions // // // Error handlers // void handleAssertion( AssertionCref aAssert ) { cerr << aAssert.getFile() << ":" << aAssert.getLine() << ":" << "Assertion: "; if( aAssert.getType() == Assertion::NEVERGETHERE ) { cerr << "NEVER_GET_HERE"; } else { if( aAssert.getType() == Assertion::REQUIRE ) { cerr << "REQUIRE"; } else if( aAssert.getType() == Assertion::ENSURE ) { cerr << "ENSURE"; } else if( aAssert.getType() == Assertion::CHECK ) { cerr << "CHECK"; } else { cerr << "ASSERT"; } cerr << "( " << aAssert.getWhy() << " )"; } cerr << endl; } void handleException( ExceptionCref aExcp ) { cerr << aExcp.getFile() << ":" << aExcp.getLine() << ":" << "Exception: " << aExcp.getWhy() << endl; } /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.2 $ $Date: 2000/08/31 22:49:01 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex20/Select.cpp0000664000000000000000000000632110771017616017045 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__SELECT_HPP) #include #endif #if !defined(__EVENTS_HPP) #include #endif #if !defined(__MEMENTOS_HPP) #include #endif #include using namespace corelinux; using namespace std; // Constructor Select::Select( void ) : SubjectObserver( ), theCurrentList() { ; // do nothing } // Copy constructor Select::Select( SelectCref ) throw ( Assertion ) : SubjectObserver( ), theCurrentList( ) { NEVER_GET_HERE; } // Destructor Select::~Select( void ) { theCurrentList.clear(); } // Assignment SelectRef Select::operator=( SelectCref ) throw ( Assertion ) { NEVER_GET_HERE; return ( *this ); } // Equality bool Select::operator==( SelectCref aSelect ) const { return ( this == &aSelect ); } // The goods bool Select::getSelection( void ) { bool keepRunning(false); if( theCurrentList.size() != 0 ) { keepRunning = true; int x = 1; int select = 0; cout << endl; ListEntriesIterator begin=theCurrentList.begin(); for( ; begin != theCurrentList.end(); ++begin, ++x ) { cout << x << "\t" << (*begin) << endl; } --x; do { cout << endl; cout << "Enter the number for the entry you want to change, or 0 to quit : "; cin >> select; } while( select < 0 || select > x ); if( select != 0 ) { char crap[2]; cin.getline( crap, sizeof(crap) ); // peel off the new-line ListEvent aEv( SelectionMade, new SelectionMemento( theCurrentList[select - 1]) ); Subject::notifyObservers( (Event*)&aEv ); } else { keepRunning = false; } } return keepRunning; } // Called when a event comes my way void Select::event( Event *aEvent ) throw ( CORELINUX(NullPointerException) ) { // // We deal with the selection and get the Select // ChangedListMementoRef aChange = dynamic_cast ( dynamic_cast(aEvent)->getMemento() ); theCurrentList = aChange.getList(); } /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.2 $ $Date: 2000/08/31 22:49:01 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex20/Edit.cpp0000664000000000000000000000512310771017616016512 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__EDIT_HPP) #include #endif #if !defined(__EVENTS_HPP) #include #endif #if !defined(__MEMENTOS_HPP) #include #endif #include // Buffer space for cin.getline static char gBuffer[1024]; using namespace corelinux; using namespace std; // Constructor Edit::Edit( void ) : SubjectObserver( ) { ; // do nothing } // Copy constructor Edit::Edit( EditCref aEdit ) throw ( Assertion ) : SubjectObserver( aEdit ) { NEVER_GET_HERE; } // Destructor Edit::~Edit( void ) { ; // do nothing } // Assignment EditRef Edit::operator=( EditCref ) throw ( Assertion ) { NEVER_GET_HERE; return ( *this ); } // Equality bool Edit::operator==( EditCref aEdit ) const { return ( this == &aEdit ); } // Called when a event comes my way void Edit::event( Event *aEvent ) throw ( CORELINUX(NullPointerException) ) { // // We deal with the selection and get the edit // SelectionMementoRef aChange = dynamic_cast ( dynamic_cast(aEvent)->getMemento() ); string & originalText( aChange.getSelected() ); cout << "Enter the change for [" << originalText << "] : "; cin.getline( gBuffer, sizeof(gBuffer) ); string changedText(gBuffer); // // Then let colleagues know the new Edit // ListEvent aEv( EditedEntry, new EditSelectionMemento( originalText, changedText ) ); Subject::notifyObservers( (Event*)&aEv ); } /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.2 $ $Date: 2000/08/31 22:49:01 $ $Locker: $ */ libcorelinux-0.4.32/src/testdrivers/ex20/Makefile.am0000664000000000000000000000124507137764221017161 0ustar # -*- Mode: makefile -*- # SUMMARY : # USAGE : make # AUTHOR : Christophe Prud'homme # ORG : Christophe Prud'homme # E-MAIL : # ORIG-DATE : 26-Apr-89 # LAST-MOD : $Id: Makefile.am,v 1.3 2000/07/27 07:45:21 prudhomm Exp $ # DESCRIPTION : # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = include bin_PROGRAMS = ex20 ex20_SOURCES = examp20.cpp Lister.cpp Edit.cpp Select.cpp SubjectObserver.cpp ex20_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la # Common rcs information do not modify # $Author: prudhomm $ # $Revision: 1.3 $ # $Date: 2000/07/27 07:45:21 $ # $Locker: $ libcorelinux-0.4.32/src/testdrivers/ex20/Makefile.in0000664000000000000000000004442607743170754017207 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY : # USAGE : make # AUTHOR : Christophe Prud'homme # ORG : Christophe Prud'homme # E-MAIL : # ORIG-DATE : 26-Apr-89 # LAST-MOD : $Id: Makefile.am,v 1.3 2000/07/27 07:45:21 prudhomm Exp $ # DESCRIPTION : # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = include bin_PROGRAMS = ex20 ex20_SOURCES = examp20.cpp Lister.cpp Edit.cpp Select.cpp SubjectObserver.cpp ex20_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la subdir = src/testdrivers/ex20 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = bin_PROGRAMS = ex20$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) am_ex20_OBJECTS = examp20.$(OBJEXT) Lister.$(OBJEXT) Edit.$(OBJEXT) \ Select.$(OBJEXT) SubjectObserver.$(OBJEXT) ex20_OBJECTS = $(am_ex20_OBJECTS) ex20_DEPENDENCIES = ${top_builddir}/src/classlibs/corelinux/libcl++.la ex20_LDFLAGS = DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/admin/depcomp am__depfiles_maybe = depfiles @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/Edit.Po ./$(DEPDIR)/Lister.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/Select.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/SubjectObserver.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/examp20.Po CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ DIST_SOURCES = $(ex20_SOURCES) RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \ ps-recursive install-info-recursive uninstall-info-recursive \ all-recursive install-data-recursive install-exec-recursive \ installdirs-recursive install-recursive uninstall-recursive \ check-recursive installcheck-recursive DIST_COMMON = $(srcdir)/Makefile.in Makefile.am DIST_SUBDIRS = $(SUBDIRS) SOURCES = $(ex20_SOURCES) all: all-recursive .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc .lo .obj $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/testdrivers/ex20/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(bindir) @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f $(DESTDIR)$(bindir)/$$f"; \ rm -f $(DESTDIR)$(bindir)/$$f; \ done clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done ex20$(EXEEXT): $(ex20_OBJECTS) $(ex20_DEPENDENCIES) @rm -f ex20$(EXEEXT) $(CXXLINK) $(ex20_LDFLAGS) $(ex20_OBJECTS) $(ex20_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) core *.core distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Edit.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Lister.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Select.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SubjectObserver.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/examp20.Po@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if (etags --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ else \ include_option=--include; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -f $$subdir/TAGS && \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ || exit 1; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" \ distdir=../$(distdir)/$$subdir \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(PROGRAMS) installdirs: installdirs-recursive installdirs-am: $(mkinstalldirs) $(DESTDIR)$(bindir) install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: info: info-recursive info-am: install-data-am: install-exec-am: install-binPROGRAMS install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \ clean-binPROGRAMS clean-generic clean-libtool clean-recursive \ ctags ctags-recursive distclean distclean-compile \ distclean-generic distclean-libtool distclean-recursive \ distclean-tags distdir dvi dvi-am dvi-recursive info info-am \ info-recursive install install-am install-binPROGRAMS \ install-data install-data-am install-data-recursive \ install-exec install-exec-am install-exec-recursive \ install-info install-info-am install-info-recursive install-man \ install-recursive install-strip installcheck installcheck-am \ installdirs installdirs-am installdirs-recursive \ maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \ pdf pdf-am pdf-recursive ps ps-am ps-recursive tags \ tags-recursive uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-info-am uninstall-info-recursive uninstall-recursive # Common rcs information do not modify # $Author: prudhomm $ # $Revision: 1.3 $ # $Date: 2000/07/27 07:45:21 $ # $Locker: $ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/testdrivers/ex20/Lister.cpp0000664000000000000000000000611707153560335017074 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__LISTER_HPP) #include #endif #if !defined(__EVENTS_HPP) #include #endif #if !defined(__MEMENTOS_HPP) #include #endif using namespace corelinux; // Some startup strings static string ent1("First Line"); static string ent2("Second Line"); static string ent3("Third Line"); static string ent4("Fourth Line"); // Constructor Lister::Lister( void ) : SubjectObserver( ), theList() { theList.push_back(ent1); theList.push_back(ent2); theList.push_back(ent3); theList.push_back(ent4); } // Copy constructor Lister::Lister( ListerCref aList ) throw ( Assertion ) : SubjectObserver( ), theList( ) { NEVER_GET_HERE; } // Destructor Lister::~Lister( void ) { theList.clear(); } // Assignment ListerRef Lister::operator=( ListerCref aLister ) throw ( Assertion ) { NEVER_GET_HERE; return (*this); } // Equality bool Lister::operator==( ListerCref aLister ) const { return ( this == &aLister ); } // Initialization called by mediator void Lister::initialize( void ) { // // Send the list out for discovery // ListEvent aEv( ListChanged, new ChangedListMemento( theList ) ); Subject::notifyObservers( (Event*)&aEv ); } // Called when a event comes my way void Lister::event( Event *aEvent ) throw ( CORELINUX(NullPointerException) ) { // // We deal with the list change // EditSelectionMementoRef aChange = dynamic_cast ( dynamic_cast(aEvent)->getMemento() ); string & originalText( aChange.getSelected() ); string & changedText( aChange.getChange() ); size_t count = theList.size(); for( size_t x = 0; x < count; ++x ) { if( theList[x] == originalText ) { theList[x] = changedText; x = count; } else { ; // do nothing } } // // Then let colleagues know the new list // this->initialize(); } /* Common rcs information do not modify $Author: prudhomm $ $Revision: 1.2 $ $Date: 2000/08/31 22:49:01 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/0000775000000000000000000000000007743170744013752 5ustar libcorelinux-0.4.32/src/classlibs/corelinux/0000775000000000000000000000000010771017615015752 5ustar libcorelinux-0.4.32/src/classlibs/corelinux/GuardSemaphore.cpp0000664000000000000000000000537407115717730021400 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__GUARDSEMAPHORE_HPP) #include #endif extern "C" { #include } namespace corelinux { // // Default constructor not allowed // GuardSemaphore::GuardSemaphore( void ) throw(Assertion) : Semaphore() { NEVER_GET_HERE; } // // Copy constructor not allowed // GuardSemaphore::GuardSemaphore( GuardSemaphoreCref ) throw(Assertion) : Semaphore() { NEVER_GET_HERE; } // // Default constructor to use // GuardSemaphore::GuardSemaphore ( SemaphoreGroupPtr aGroup, SemaphoreIdentifierRef aIdentifier ) throw(Assertion) : Semaphore(aGroup, aIdentifier, false, false) { setValue(1); } // // Virtual Destructor // GuardSemaphore::~GuardSemaphore( void ) { ; // do nothing } // // Returns true if lock value == 0 // bool GuardSemaphore::isLocked( void ) { return !( getValue() ); } // // Call for lock with wait disposition // SemaphoreOperationStatus GuardSemaphore::lockWithWait( void ) throw(SemaphoreException) { SemaphoreOperationStatus aStatus(SUCCESS); aStatus = setLock(0); return aStatus; } // // Call for lock without waiting // SemaphoreOperationStatus GuardSemaphore::lockWithNoWait( void ) throw(SemaphoreException) { return setLock( IPC_NOWAIT ); } // // Call release for lock // SemaphoreOperationStatus GuardSemaphore::release( void ) throw(SemaphoreException) { SemaphoreOperationStatus aStatus( SUCCESS ); aStatus = setUnlock( IPC_NOWAIT ); return aStatus; } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/06/02 11:51:52 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/Component.cpp0000664000000000000000000000456507117164274020436 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__COMPONENT_HPP) #include #endif #if !defined(__VISITOR_HPP) #include #endif namespace corelinux { // // Default constructor // Component::Component( void ) : CoreLinuxObject() { ; // do nothing } // // Copy constructor // Component::Component( ComponentCref ) : CoreLinuxObject() { ; // do nothing } // // Destructor // Component::~Component( void ) { ; // do nothing } // // Assignment operator // ComponentRef Component::operator=( ComponentCref ) { return (*this); } // // Equality operator // bool Component::operator==( ComponentCref aRef ) const { bool isMe(false); if( this == &aRef ) { isMe = true; } else { ; // do nothing } return isMe; } // // Non-equality operator // bool Component::operator!=( ComponentCref aRef ) const { return !(this->operator==(aRef)); } // // Visitor nop // void Component::accept( VisitorPtr aVisitor ) throw ( NullPointerException ) { if( aVisitor == NULLPTR ) { throw NullPointerException(LOCATION); } else { ; // do nothing } } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.3 $ $Date: 2000/06/06 12:04:12 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/Thread.cpp0000664000000000000000000003052207262675143017676 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ extern "C" { #include #include #include #include #include #include } #if !defined(__COMMON_HPP) #include #endif #if !defined(__THREADCONTEXT_HPP) #include #endif #include typedef void (*termIntf)(int, siginfo_t *, void *); namespace corelinux { // Setup the singleton instance for the Thread ThreadManager Thread::theThreadManager( new Thread ); ThreadIdentifier Thread::theThreadManagerId; // The map of thread contexts managed by Thread ThreadMap Thread::theThreadMap; Count Thread::theThreadCount (0); // Default constructor Thread::Thread( void ) throw( Assertion ) { // // Make sure we are the only one // if( theThreadManager.instance() == NULLPTR ) { // // Get my identifier // theThreadManagerId = getpid(); // // Setup terminate handler // struct sigaction sa; memset(&sa,0,sizeof(sa)); sa.sa_sigaction = (termIntf)threadTerminated; sa.sa_flags = SA_SIGINFO; sigaction(SIGCHLD,&sa,NULLPTR); } else { NEVER_GET_HERE; } } // Copy constructor Thread::Thread( ThreadCref ) throw ( Assertion ) : Synchronized() { NEVER_GET_HERE; } // Destructor Thread::~Thread( void ) { ; // do nothing yet } // Assignment operator ThreadRef Thread::operator=( ThreadCref ) throw ( Assertion ) { NEVER_GET_HERE; return (*this); } // Equality operator bool Thread::operator==( ThreadCref ) const throw ( Assertion ) { NEVER_GET_HERE; return false; } // Return thread instance errno Int Thread::getKernelError( void ) { return Int(*__errno_location()); } // Return the thread identifier ThreadIdentifier Thread::getThreadIdentifier( void ) { return ThreadIdentifier( getpid() ); } // Get the parent thread of this thread ThreadIdentifier Thread::getParentThreadIdentifier( void ) { return ThreadIdentifier( getppid() ); } // Return the owner thread of Thread ThreadIdentifierCref Thread::getThreadManagerIdentifier( void ) { return theThreadManagerId; } // Retrieve a thread context for the caller ThreadContextCref Thread::getThreadContext( ThreadIdentifierCref anId ) throw ( InvalidThreadException ) { Guard myGuard( theThreadManager.instance()->access() ); ThreadMapIterator aTCItr( theThreadMap.find(anId) ); if( aTCItr == theThreadMap.end() ) { throw InvalidThreadException( LOCATION ); } else { ; // do nothing } return *((*aTCItr).second); } // Get created thread count Count Thread::getCreatedThreadCount( void ) { return theThreadCount; } // Get active thread count Count Thread::getActiveThreadCount( void ) { Guard myGuard( theThreadManager.instance()->access() ); // // Setup the count and iterators outside the loop // Count aCount(0); ThreadMapIterator begin( theThreadMap.begin() ); ThreadMapIterator end( theThreadMap.end() ); while( begin != end ) { // // Get the state and test for some state of activeness // const ThreadState & aState( (*begin).second->getState() ); if( aState == THREAD_STARTING || aState == THREAD_RUNNING ) { ++aCount; } else { ; // do nothing } ++begin; } return aCount; } // Get the non-active thread count Count Thread::getCompletedThreadCount( void ) { Guard myGuard( theThreadManager.instance()->access() ); // // Setup the count and iterators outside the loop // Count aCount(0); ThreadMapIterator begin( theThreadMap.begin() ); ThreadMapIterator end( theThreadMap.end() ); while( begin != end ) { // // Get the state and test for some state of inactiveness // if( (*begin).second->getState() > THREAD_RUNNING ) { ++aCount; } else { ; // do nothing } ++begin; } return aCount; } // Get the blocked thread count Count Thread::getBlockedThreadCount( void ) { Guard myGuard( theThreadManager.instance()->access() ); // // Setup the count and iterators outside the loop // Count aCount(0); ThreadMapIterator begin( theThreadMap.begin() ); ThreadMapIterator end( theThreadMap.end() ); while( begin != end ) { // // Get the state and test for some state of inactiveness // if( (*begin).second->getState() == THREAD_WAITING_TO_START ) { ++aCount; } else { ; // do nothing } ++begin; } return aCount; } // Test routine for collection void Thread::dump( void ) { Guard myGuard( theThreadManager.instance()->access() ); ThreadMapIterator begin( theThreadMap.begin() ); ThreadMapIterator end( theThreadMap.end() ); std::cout << std::endl; while( begin != end ) { std::cout << "Thread [" << (*begin).first.getScalar() << "] : " << (*begin).second->getState() << std::endl; ++begin; } std::cout << std::endl; } // Allocate context, allocate stack, invoke frame ThreadIdentifier Thread::startThread( ThreadContextRef aContextRef ) { ThreadContextPtr aContextPtr( NULLPTR ); ThreadIdentifier aThreadId( -1 ); // Get myself synchronous to prevent handler changes // when trying to start something, and hold onto it // as I may need the exception handled safely as well Guard myGuard( theThreadManager.instance()->access() ); try { // // Create a managed instance object. // And then start the thread frame // aContextPtr = aContextRef.createContext(); typedef int (* CloneFunctionType)(void *); aThreadId = ::clone ( CloneFunctionType(ThreadContext::cloneFrameFunction), // aContextPtr->getFramePointer(), aContextPtr->getStackTop(), aContextPtr->getShareMask(), aContextPtr ); // // If the clone failed we need to indicate it to the // caller in THEIR context argument because we don't // have a valid key for them to retrieve the context // with. We also remove the allocations we have made. // if( aThreadId.getScalar() == -1 ) { aContextRef.setReturnCode( Thread::getKernelError() ); aContextRef.setThreadState( THREAD_START_FAILED ); aContextRef.destroyContext( aContextPtr ); } else { theThreadMap[aThreadId] = aContextPtr; aContextPtr->setThreadState ( THREAD_RUNNING ); theThreadCount++; } } // // Handle cleanup before rethrowing the exception // catch( ExceptionRef aExcp ) { aContextRef.setThreadState( THREAD_START_EXCEPTION ); aContextRef.destroyContext(aContextPtr); throw; } catch( ... ) { aContextRef.setThreadState( THREAD_START_EXCEPTION ); aContextRef.destroyContext(aContextPtr); throw; } return aThreadId; } // Blocks caller waiting until thread ended Int Thread::waitForThread( ThreadIdentifierCref anId ) throw ( InvalidThreadException ) { ThreadContextCref aContext(Thread::getThreadContext(anId)); Int aStatus(0); waitpid(anId.getScalar(),&aStatus,0); return aStatus; } // Destroy the thread context void Thread::destroyThreadContext( ThreadIdentifierCref anId ) throw ( InvalidThreadException, Assertion ) { Guard myGuard( theThreadManager.instance()->access() ); // // First find the thread // ThreadMapIterator aTCItr( theThreadMap.find(anId) ); if( aTCItr == theThreadMap.end() ) { throw InvalidThreadException( LOCATION ); } else { ; // do nothing } // easy access ThreadContextPtr aTargetContext( (*aTCItr).second ); // validate its state ENSURE( aTargetContext->getState() != THREAD_STARTING ); ENSURE( aTargetContext->getState() != THREAD_RUNNING ); // make a copy for the factory methods ThreadContext aContext(*aTargetContext); // destroy the instance aContext.destroyContext( aTargetContext ); // remove from map theThreadMap.erase( aTCItr ); } // Get thread priority Int Thread::getThreadPriority(ThreadIdentifierCref anId) throw ( InvalidThreadException, Assertion ) { ThreadContextCref aContext( Thread::getThreadContext( anId ) ); return Environment::getThreadPriority( aContext.getIdentifier() ); } // Set thread priority void Thread::setThreadPriority(ThreadIdentifierCref anId, Int prio) throw ( InvalidThreadException, Assertion ) { ThreadContextCref aContext( Thread::getThreadContext( anId ) ); Environment::setThreadPriority(aContext.getIdentifier(), prio); } // // Thread termination handler to insure that the state of the thread // is at least accurate to completion. This is very likely to change // once a handle on Signal implementation and the validity of the // ucontext is confirmed. // void Thread::threadTerminated( Int aNum, VoidPtr vInfo, VoidPtr vPtr ) { /* std::cout << DwordPtr(vPtr)[0] << std::endl; std::cout << DwordPtr(vPtr)[1] << std::endl; std::cout << DwordPtr(vPtr)[2] << std::endl; std::cout << DwordPtr(vPtr)[3] << std::endl; std::cout << DwordPtr(vPtr)[4] << std::endl; std::cout << DwordPtr(vPtr)[5] << std::endl; std::cout << DwordPtr(vPtr)[6] << std::endl; std::cout << DwordPtr(vPtr)[7] << std::endl; std::cout << DwordPtr(vPtr)[8] << std::endl; std::cout << (void * ) DwordPtr(vPtr)[9] << std::endl; std::cout << DwordPtr(vPtr)[10] << std::endl; std::cout << (void * ) DwordPtr(vPtr)[11] << std::endl; std::cout << (void * ) DwordPtr(vPtr)[12] << std::endl; std::cout << "pid = " << DwordPtr(vPtr)[13] << std::endl; std::cout << DwordPtr(vPtr)[14] << std::endl; std::cout << (void * ) DwordPtr(vPtr)[15] << std::endl; std::cout << "pid = " << DwordPtr(vPtr)[16] << std::endl; std::cout << " Terminate received " << std::endl; */ int pid = waitpid( -1, NULL, WNOHANG ); if (pid != -1) { ThreadIdentifier anId = pid; ThreadContext aContext( Thread::getThreadContext( anId ) ); aContext.setThreadState( THREAD_NORMAL_EXIT ); // If the following line is enabled, exception will occur //destroyThreadContext( anId ); } else { ; // do nothing } } } /* Common rcs information do not modify $Author: dulimart $ $Revision: 1.20 $ $Date: 2001/04/04 19:47:47 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/StringUtf8.cpp0000664000000000000000000000745707022320402020472 0ustar /* CoreLinux++ Copyright (C) 1999 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__STRINGUTF8_HPP) #include #endif // // Utf8 String Implementation // namespace corelinux { // // Default constructor // StringUtf8::StringUtf8( void ) : AbstractString(), std::string() { } // // CharPtr copy constructor // StringUtf8::StringUtf8( CharCptr aPtr ) : AbstractString(), std::string((const Char *)aPtr) { } StringUtf8::StringUtf8( const std::string & aRef ) : AbstractString(), std::string(aRef) { ; // do nothing } // // Copy constructor // StringUtf8::StringUtf8( StringUtf8Cref aRef ) : AbstractString(), std::string( aRef ) { ; // do nothing } // // Cast copy constructor. This constructor also determines // if the incoming string is suitable for conversion // StringUtf8::StringUtf8( AbstractStringCref aRef ) throw ( Exception ) : AbstractString(), std::string() { REQUIRE( aRef.supportsStandardInterface() == true ); REQUIRE( aRef.isUtf8() == true ); std::string::operator=(dynamic_cast(aRef)); } // // Destructor // StringUtf8::~StringUtf8( void ) { ; // do nothing } // // Return the count of bytes to represent one (1) // character // Byte StringUtf8::getElementByteCount( void ) const { return sizeof( Char ); } // // We support casts to std::string // bool StringUtf8::supportsStandardInterface( void ) const { return true; } // // We are a Utf8 string as defined by std::string // bool StringUtf8::isUtf8( void ) const { return true; } // // We are not UCS2 capable // bool StringUtf8::isUcs2( void ) const { return false; } // // We are not UCS4 capable // bool StringUtf8::isUcs4( void ) const { return false; } // // Common clone method. This basically calls the // hard cloneUtf8 to carry out the work // AbstractStringPtr StringUtf8::clone( void ) const throw ( Exception ) { return this->cloneUtf8(); } // // Clone myself into a Utf8 String (default) // AbstractStringPtr StringUtf8::cloneUtf8( void ) const throw ( Exception ) { return new StringUtf8(*this); } // // Clone myself to a Ucs2 implementation (won't happen!) // AbstractStringPtr StringUtf8::cloneUcs2( void ) const throw ( Exception ) { NEVER_GET_HERE; return NULLPTR; } // // Clone myself to a Ucs4 implementation (maybe?!?) // AbstractStringPtr StringUtf8::cloneUcs4( void ) const throw ( Exception ) { NEVER_GET_HERE; return NULLPTR; } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 1999/12/04 23:17:22 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/InvalidThreadException.cpp0000664000000000000000000000544007067676513023072 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__INVALIDTHREADEXCEPTION_HPP) #include #endif namespace corelinux { // // Default public constructor // InvalidThreadException::InvalidThreadException ( CharCptr file, LineNum line, Severity severity, bool outOfMemory ) : ThreadException ( "InvalidThreadException", file, line, severity, outOfMemory ) { ; // do nothing } // // Implementation protected constructor // InvalidThreadException::InvalidThreadException ( CharCptr why, CharCptr file, LineNum line, Severity severity, bool outOfMemory ) : ThreadException(why,file,line,severity,outOfMemory) { ; // do nothing } // // Default protected constructor // InvalidThreadException::InvalidThreadException( void ) : ThreadException() { NEVER_GET_HERE; } // // Copy constructor // InvalidThreadException::InvalidThreadException( InvalidThreadExceptionCref aRef ) : ThreadException( aRef ) { ; // do nothing } // // Destructor // InvalidThreadException::~InvalidThreadException( void ) { ; // do nothing } // // Assignment operator // InvalidThreadExceptionRef InvalidThreadException::operator= ( InvalidThreadExceptionCref aRef ) { ThreadException::operator=( aRef ); return (*this); } // // Equality operator // bool InvalidThreadException::operator==( InvalidThreadExceptionCref aRef ) const { return (this == &aRef); } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/03/27 15:24:59 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/AbstractFactoryException.cpp0000664000000000000000000000540407044611503023426 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__ABSTRACTFACTORYEXCEPTION_HPP) #include #endif namespace corelinux { // // Default public constructor // AbstractFactoryException::AbstractFactoryException ( CharCptr file, LineNum line, Severity severity, bool outOfMemory ) : Exception("AbstractFactoryException",file,line,severity,outOfMemory) { ; // do nothing } // // Implementation protected constructor // AbstractFactoryException::AbstractFactoryException ( CharCptr why, CharCptr file, LineNum line, Severity severity, bool outOfMemory ) : Exception(why,file,line,severity,outOfMemory) { ; // do nothing } // // Default protected constructor // AbstractFactoryException::AbstractFactoryException( void ) : Exception() { NEVER_GET_HERE; } // // Copy constructor // AbstractFactoryException::AbstractFactoryException ( AbstractFactoryExceptionCref aRef ) : Exception( aRef ) { ; // do nothing } // // Destructor // AbstractFactoryException::~AbstractFactoryException( void ) { ; // do nothing } // // Assignment operator // AbstractFactoryExceptionRef AbstractFactoryException::operator= ( AbstractFactoryExceptionCref aRef ) { Exception::operator=( aRef ); return (*this); } // // Equality operator // bool AbstractFactoryException::operator== ( AbstractFactoryExceptionCref aRef ) const { return (this == &aRef); } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/01/29 16:20:19 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/corelinux.cpp0000664000000000000000000001050507156610014020462 0ustar // -*- Mode : c++ -*- // // SUMMARY : // USAGE : // ORG : Christophe Prud'homme // AUTHOR : Christophe Prud'homme // E-MAIL : prudhomm@users.sourceforge.net // // DESCRIPTION : /*! \file corelinux.cpp */ /*! \mainpage CoreLinux++ Classes Reference Manual \section intro Introduction \subsection consortium The CoreLinux Consortium The CoreLinux consortium will: @li Enlist members ( for requirements, analysis, design, and development ) @li Formalize conventions for Object Oriented Analysis (OOA) and Design (OOD). @li Formalize standards and conventions for C++ code style. @li Gather requirements. Perform OOA and OOD using UML as the modeling language. @li Implement designs and example drivers. @li Develop utilities and applications for Linux that are CoreLinux++ certified @li Showcase CoreLinux++ certified applications by others \subsection description Short description This manual is the classes reference manual of the corelinux++ library and its associated examples. It allows you to browse easily the entire namespace corelinux and go through all the examples. \section copyright Copyright \subsection source Source license CoreLinux++ Copyright (C) 1999, 2000 CoreLinux++ Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. see COPYING.LIB \subsection doc Documentation license All CoreLinux++ is free documentation and may be distributed only subject to the terms and conditions set forth in the Open Publication License. see COPYING.DOC */ /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ // DESCRIP-END. // extern "C" { /*! \fn char ACCheckCoreLinux() \brief Function for autoconf checks This purpose of this function is to provide the autoconf users a symbol to check for in corelinux library. Unfortunately autoconf uses the C compiler to check for symbols into libraries and corelinux is a C++ one so the way the functions and objects are mangled makes it impossible to check for them. The solution is to provide a C symbol to check for using extern "C" {}. To enable corelinux into autoconf, you can put the following lines into the configure.in file. \verbatim AC_CHECK_LIB(cl++, ACCheckCoreLinux,[ CXXFLAGS="${CXXFLAGS} -I/usr/include/corelinux" LDFLAGS="${LDFLAGS} " LIBS="${LIBS} -lcl++" ],[ echo "You need to install corelinux. See http://corelinux.sourceforge.net" exit; ],) \endverbatim */ char ACCheckCoreLinux() { return 1; } /* #include void _init( void ) { printf("I'm init\n"); } void _fini( void ) { printf("I'm fini\n"); } */ } // Common rcs information do not modify // $Author: frankc $ // $Revision: 1.3 $ // $Date: 2000/09/10 04:37:32 $ // $Locker: $ libcorelinux-0.4.32/src/classlibs/corelinux/MutexSemaphoreGroup.cpp0000664000000000000000000003262007117164274022450 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__MUTEXSEMAPHOREGROUP_HPP) #include #endif #if !defined(__MUTEXSEMAPHORE_HPP) #include #endif namespace corelinux { static SemaphoreIdentifier findAny(-1); // // Basic group constructor with access rights specified // MutexSemaphoreGroup::MutexSemaphoreGroup( Short aSemCount, Int aRightSet ) throw(Assertion,SemaphoreException) : SemaphoreGroup( aSemCount, aRightSet ), theUsedMap() { ; // do nothing } // // Constructor where the identifier has been formed already // MutexSemaphoreGroup::MutexSemaphoreGroup ( Short aSemCount, SemaphoreGroupIdentifierCref aGID , Int aRightSet, CreateDisposition disp ) throw(Assertion,SemaphoreException) : SemaphoreGroup( aSemCount, aGID, aRightSet, disp ), theUsedMap() { ; // do nothing } // // Constructor to form a group // MutexSemaphoreGroup::MutexSemaphoreGroup ( Short aSemCount, CharCptr aName, Int aRightSet, CreateDisposition disp ) throw(Assertion,SemaphoreException) : SemaphoreGroup( aSemCount+1, aName, aRightSet, disp ), theUsedMap() { ; // do nothing } // // Destructor // MutexSemaphoreGroup::~MutexSemaphoreGroup( void ) { SemaphoreSharesIterator begin( theUsedMap.begin() ); SemaphoreSharesIterator end( theUsedMap.end() ); // For each semaphore lingering for( ; begin != end; ++begin ) { // For each reference not returned for( Int x = 0; x < (*begin).second.theCount; ++x ) { SemaphoreCommon::relinquishSemaphore(this,(*begin).first); } // If there was one there, delete it if( (*begin).second.theCount ) { ::delete (*begin).second.theSem; } else { ; // do nothing } } theUsedMap.clear(); } // // Creates a default semaphore. We need to lock our pages // if we are shared so that we only get a semaphore that // is not used cross process, otherwise we use our map // AbstractSemaphorePtr MutexSemaphoreGroup::createSemaphore( void ) throw( SemaphoreException ) { return (this->resolveSemaphore(findAny,-1,FAIL_IF_EXISTS,true,false)); } // // Creates a default semaphore locked // AbstractSemaphorePtr MutexSemaphoreGroup::createLockedSemaphore ( bool Recursive, bool Balking ) throw( SemaphoreException ) { return (this->resolveSemaphore ( findAny, -1, FAIL_IF_EXISTS, Recursive, Balking, true )); } // // Creates, or opens, a specific semaphore in the // group // AbstractSemaphorePtr MutexSemaphoreGroup::createSemaphore ( SemaphoreIdentifierRef aIdentifier, CreateDisposition disp, bool Recursive, bool Balking ) throw( SemaphoreException ) { Short aSid( aIdentifier.getScalar() ); if( aSid < 0 || aSid > getSemaphoreCount() ) { throw SemaphoreException ( "Invalid Semaphore identifier", LOCATION, Exception::CONTINUABLE ); } else { ; // do nothing } return (this->resolveSemaphore(aIdentifier,aSid,disp,Recursive,Balking)); } // // Creates, or opens, a specific semaphore in the // group and either lock on create, or get lock // AbstractSemaphorePtr MutexSemaphoreGroup::createLockedSemaphore ( SemaphoreIdentifierRef aIdentifier, CreateDisposition disp, bool Recursive, bool Balking ) throw( SemaphoreException ) { Short aSid( aIdentifier.getScalar() ); if( aSid < 0 || aSid > getSemaphoreCount() ) { throw SemaphoreException ( "Invalid Semaphore identifier", LOCATION, Exception::CONTINUABLE ); } else { ; // do nothing } return (this->resolveSemaphore(aIdentifier,aSid,disp,Recursive,Balking,true)); } // // Creates or opens a specific named semaphore in the // group (not implemented) // AbstractSemaphorePtr MutexSemaphoreGroup::createSemaphore ( std::string aName, CreateDisposition disp, bool Recursive, bool Balking ) throw( SemaphoreException ) { AbstractSemaphorePtr aSem(NULLPTR); throw SemaphoreException ( "Semaphore does not exist", LOCATION ); return aSem; } // // Destroy the semaphore // void MutexSemaphoreGroup::destroySemaphore( AbstractSemaphorePtr aPtr ) throw( SemaphoreException ) { REQUIRE( aPtr != NULLPTR ); GUARD; // // Insure that we are in the same arena // if( aPtr->getGroupIdentifier() == getIdentifier() ) { // // Get the index, because thats what identifiers are, // and check before whacking space. // Index idx( aPtr->getIdentifier().getScalar() ); SemaphoreSharesIterator aFItr( theUsedMap.find(idx) ); if( aFItr != theUsedMap.end() ) { SemaphoreCommon::relinquishSemaphore(this,idx); (*aFItr).second.theCount -= 1; theUsedMap[idx].theCount -= 1; if( (*aFItr).second.theCount == 0 ) { theUsedMap.erase(aFItr); ::delete aPtr; } else { ; // not yet } } else { ; // double delete exception MAYBE!!! } } else { throw SemaphoreException ( "Semaphore not part of group", LOCATION ); } } // // This is where the work belongs // AbstractSemaphorePtr MutexSemaphoreGroup::resolveSemaphore ( SemaphoreIdentifierRef aIdentifier, Short aSemId, CreateDisposition aDisp, bool aRecurse, bool aBalk, bool aAutoLock ) throw( SemaphoreException ) { Guard localGuard(this->access()); // // Setup for operating in CSA or local // Int aRec(aRecurse); Int aBlk(aBalk); Int aMaxValue(1); Int aCmnRet(0); MutexSemaphorePtr aSemPtr( NULLPTR ); SemaphoreReference aLocalShare = {0,NULLPTR}; // // Let the CSA and our group decide behavior // aCmnRet = SemaphoreCommon::obtainSemaphore ( this, aSemId, aMaxValue, aRec, aBlk, ( aDisp == FAIL_IF_EXISTS ? 0 : ( aDisp == FAIL_IF_NOTEXISTS ? 2 :1 ) ) ); // If the CSA has resolved it if( aCmnRet >= 0 ) { // If we don't already have it, create it, otherwise // reuse the local instance SemaphoreSharesIterator aFItr( theUsedMap.find(aCmnRet) ); if( aFItr == theUsedMap.end() ) { aSemPtr = ::new MutexSemaphore ( this, aIdentifier, aAutoLock, aRec, aBlk ); aLocalShare.theCount = 1; aLocalShare.theSem = AbstractSemaphorePtr(aSemPtr); theUsedMap[aCmnRet] = aLocalShare; } else { (*aFItr).second.theCount += 1; aSemPtr = MutexSemaphorePtr(SemaphorePtr((*aFItr).second.theSem)); if( aAutoLock == true ) { localGuard.release(); aSemPtr->lockWithWait(); } else { ; // do nothing } } } // Either we are in local mode, or there was an error in // constraints from the CSA else { SemaphoreException exists("Semaphore exists exception",LOCATION); SemaphoreException notexists("Semaphore does not exist",LOCATION); if( aCmnRet == -1 ) { // If a specific one is being looked for if( aSemId >= 0 ) { SemaphoreSharesIterator aFItr( theUsedMap.find(aSemId) ); // // If we find it // if( aFItr != theUsedMap.end() ) { // // And the caller needs a unique instance // if( aDisp == FAIL_IF_EXISTS ) { throw exists; } else { (*aFItr).second.theCount += 1; aSemPtr = MutexSemaphorePtr(SemaphorePtr((*aFItr).second.theSem)); if( aAutoLock == true ) { localGuard.release(); aSemPtr->lockWithWait(); } else { ; // do nothing } } } // // If we need to create it // else { // // And the user doesn't expect it to // exist // if( aDisp != FAIL_IF_NOTEXISTS ) { aSemPtr = ::new MutexSemaphore ( this, aIdentifier, aAutoLock, aRec, aBlk ); aLocalShare.theCount = 1; aLocalShare.theSem = AbstractSemaphorePtr(aSemPtr); theUsedMap[aSemId] = aLocalShare; } else { throw notexists; } } } // Otherwise, give what we can get else { Index maxCnt(this->getSemaphoreCount()); for( Index x = 0; x < maxCnt; ++x ) { if( theUsedMap.find(x) == theUsedMap.end() ) { aSemPtr = ::new MutexSemaphore ( this, aIdentifier, aAutoLock, aRec, aBlk ); aLocalShare.theCount = 1; aLocalShare.theSem = AbstractSemaphorePtr(aSemPtr); theUsedMap[aSemId] = aLocalShare; x = maxCnt; } else { ; // do nothing } } if( aSemPtr == NULLPTR ) { throw notexists; } else { ; // do nothing } } } // // Failure to resolve in the CSA // else { if( aDisp == FAIL_IF_EXISTS ) { throw exists; } else { throw notexists; } } } return AbstractSemaphorePtr(aSemPtr); } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.10 $ $Date: 2000/06/06 12:04:12 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/NullPointerException.cpp0000664000000000000000000000521007105011665022602 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__NULLPOINTEREXCEPTION_HPP) #include #endif namespace corelinux { // // Default public constructor // NullPointerException::NullPointerException ( CharCptr file, LineNum line, Severity severity, bool outOfMemory ) : Exception("NullPointerException",file,line,severity,outOfMemory) { ; // do nothing } // // Implementation protected constructor // NullPointerException::NullPointerException ( CharCptr why, CharCptr file, LineNum line, Severity severity, bool outOfMemory ) : Exception(why,file,line,severity,outOfMemory) { ; // do nothing } // // Default protected constructor // NullPointerException::NullPointerException( void ) : Exception() { NEVER_GET_HERE; } // // Copy constructor // NullPointerException::NullPointerException( NullPointerExceptionCref aRef ) : Exception( aRef ) { ; // do nothing } // // Destructor // NullPointerException::~NullPointerException( void ) { ; // do nothing } // // Assignment operator // NullPointerExceptionRef NullPointerException::operator= ( NullPointerExceptionCref aRef ) { Exception::operator=( aRef ); return (*this); } // // Equality operator // bool NullPointerException::operator==( NullPointerExceptionCref aRef ) const { return (this == &aRef); } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/05/06 12:44:37 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/CoreLinuxObject.cpp0000664000000000000000000000376507036653430021531 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif namespace corelinux { // // Default constructor // CoreLinuxObject::CoreLinuxObject( void ) { ; // do nothing } // // Copy constructor // CoreLinuxObject::CoreLinuxObject( CoreLinuxObjectCref ) { ; // do nothing } // // Destructor // CoreLinuxObject::~CoreLinuxObject( void ) { ; // do nothing } // // Assignment operator // CoreLinuxObjectRef CoreLinuxObject::operator=( CoreLinuxObjectCref ) { return (*this); } // // Equality operator // bool CoreLinuxObject::operator==( CoreLinuxObjectCref aRef ) const { bool isMe(false); if( this == &aRef ) { isMe = true; } else { ; // do nothing } return isMe; } // // Non-equality operator // bool CoreLinuxObject::operator!=( CoreLinuxObjectCref aRef ) const { return !(this->operator==(aRef)); } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/01/11 16:15:20 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/IteratorException.cpp0000664000000000000000000000511507040743437022133 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__ITERATOREXCEPTION_HPP) #include #endif namespace corelinux { // // Default public constructor // IteratorException::IteratorException ( CharCptr file, LineNum line, Severity severity, bool outOfMemory ) : Exception("IteratorException",file,line,severity,outOfMemory) { ; // do nothing } // // Implementation protected constructor // IteratorException::IteratorException ( CharCptr why, CharCptr file, LineNum line, Severity severity, bool outOfMemory ) : Exception(why,file,line,severity,outOfMemory) { ; // do nothing } // // Default protected constructor // IteratorException::IteratorException( void ) : Exception() { NEVER_GET_HERE; } // // Copy constructor // IteratorException::IteratorException( IteratorExceptionCref aRef ) : Exception( aRef ) { ; // do nothing } // // Destructor // IteratorException::~IteratorException( void ) { ; // do nothing } // // Assignment operator // IteratorExceptionRef IteratorException::operator= ( IteratorExceptionCref aRef ) { Exception::operator=( aRef ); return (*this); } // // Equality operator // bool IteratorException::operator==( IteratorExceptionCref aRef ) const { return (this == &aRef); } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/01/18 01:51:27 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/Identifier.cpp0000664000000000000000000000577707057107241020556 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif namespace corelinux { // // Default constructor // Identifier::Identifier( void ) : CoreLinuxObject() { ; // do nothing } // // Copy constructor // Identifier::Identifier( IdentifierCref aRef ) : CoreLinuxObject( aRef ) { ; // do nothing } // // Virtual Destructor // Identifier::~Identifier( void ) { ; // do nothing } // // Assignment operator // IdentifierRef Identifier::operator=( IdentifierCref aRef ) { CoreLinuxObject::operator=( aRef ); return (*this); } // // Equality operator // bool Identifier::operator==( IdentifierCref aRef ) const { return isEqual( aRef ); } // // Non-equality operator // bool Identifier::operator!=( IdentifierCref aRef ) const { return !( this->operator==(aRef) ); } // // Less than operator // bool Identifier::operator<( IdentifierCref aRef ) const { return isLessThan(aRef); } // // Less than or equal operator // bool Identifier::operator<=( IdentifierCref aRef ) const { return isLessThanOrEqual(aRef); } // // Greater than operator // bool Identifier::operator>( IdentifierCref aRef ) const { return isGreaterThan(aRef); } // // Greater than or equal operator // bool Identifier::operator>=( IdentifierCref aRef ) const { return isGreaterThanOrEqual(aRef); } // // Virtual methods that all return true // bool Identifier::isEqual( IdentifierCref ) const { return true; } bool Identifier::isLessThan( IdentifierCref ) const { return true; } bool Identifier::isLessThanOrEqual( IdentifierCref ) const { return true; } bool Identifier::isGreaterThan( IdentifierCref ) const { return true; } bool Identifier::isGreaterThanOrEqual( IdentifierCref ) const { return true; } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/03/01 03:29:37 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/Adapter.cpp0000664000000000000000000000370107036131443020033 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__ADAPTER_HPP) #include #endif namespace corelinux { // // Default constructor // Adapter::Adapter( void ) { ; // do nothing } // // Copy constructor // Adapter::Adapter( AdapterCref ) { ; // do nothing } // // Destructor // Adapter::~Adapter( void ) { ; // do nothing } // // Assignment operator // AdapterRef Adapter::operator=( AdapterCref ) { return (*this); } // // Equality operator // bool Adapter::operator==( AdapterCref aRef ) const { bool isMe(false); if( this == &aRef ) { isMe = true; } else { ; // do nothing } return isMe; } // // Non-equality operator // bool Adapter::operator!=( AdapterCref aRef ) const { return !(this->operator==(aRef)); } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/01/09 16:11:15 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/Subject.cpp0000664000000000000000000000567007105301531020053 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__SUBJECT_HPP) #include #endif #if !defined(__OBSERVER_HPP) #include #endif namespace corelinux { // // Default constructor // Subject::Subject( void ) { ; // do nothing } // // Copy constructor // Subject::Subject( SubjectCref ) { ; // do nothing } // // Destructor // Subject::~Subject( void ) { ; // do nothing } // // Assignment operator // SubjectRef Subject::operator=( SubjectCref ) { return (*this); } // // Equality operator // bool Subject::operator==( SubjectCref aRef ) const { bool isMe(false); if( this == &aRef ) { isMe = true; } else { ; // do nothing } return isMe; } // // Non-equality operator // bool Subject::operator!=( SubjectCref aRef ) const { return !(this->operator==(aRef)); } // Notification spray void Subject::notifyObservers( Event * anEvent ) throw ( NullPointerException ) { if( anEvent == NULLPTR ) { throw NullPointerException(LOCATION); } else { Iterator *aItr( this->createIterator( anEvent ) ); while( aItr->isValid() ) { aItr->getElement()->event( anEvent ); aItr->setNext(); } } } // Notification spray void Subject::notifyAllObservers( Event * anEvent ) throw ( NullPointerException ) { if( anEvent == NULLPTR ) { throw NullPointerException(LOCATION); } else { Iterator *aItr( this->createIterator() ); while( aItr->isValid() ) { aItr->getElement()->event( anEvent ); aItr->setNext(); } } } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/05/07 14:53:13 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/Semaphore.cpp0000664000000000000000000001033307115717730020404 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__SEMAPHORE_HPP) #include #endif extern "C" { #include } static SemaphoreIdentifier dummy(-1); namespace corelinux { // // Default constructor not allowed // Semaphore::Semaphore( void ) throw(Assertion) : AbstractSemaphore( NULLPTR, dummy ), theOwningThread(-1), theRecursionQueueLength(0) { NEVER_GET_HERE; } // // Copy constructor not allowed // Semaphore::Semaphore( SemaphoreCref ) throw(Assertion) : AbstractSemaphore( NULLPTR, dummy ), theOwningThread(-1), theRecursionQueueLength(0) { NEVER_GET_HERE; } // // Default constructor to use // Semaphore::Semaphore ( SemaphoreGroupPtr aGroup, SemaphoreIdentifierRef aIdentifier, bool aRecursionFlag, bool aBalkingFlag ) throw ( NullPointerException ) : AbstractSemaphore(aGroup,aIdentifier), theOwningThread(0), theRecursionQueueLength(0), theRecursiveMode( aRecursionFlag ), theBalkingMode( aBalkingFlag ) { ; // do nothing } // // Virtual Destructor // Semaphore::~Semaphore( void ) { theOwningThread = (-1); theRecursionQueueLength = 0; } // // Equality operator // bool Semaphore::operator==( SemaphoreCref aSemaphore ) const { return ( getIdentifier() == aSemaphore.getIdentifier() && aSemaphore.getGroupIdentifier() == getGroupIdentifier() ); } // // Assignment operator // SemaphoreRef Semaphore::operator=( SemaphoreCref ) throw( Assertion ) { NEVER_GET_HERE; return ( *this ); } // Increment operator CounterCref Semaphore::operator++( void ) { return (++theRecursionQueueLength); } // Decrement operator CounterCref Semaphore::operator--( void ) { return (--theRecursionQueueLength); } // Returns true if balking enabled bool Semaphore::isBalkingEnabled( void ) const { return theBalkingMode; } // Returns true if recursion allowed bool Semaphore::isRecursionEnabled( void ) const { return theRecursiveMode; } // Return the current thread owner ThreadIdentifierCref Semaphore::getOwningThreadIdentifier( void ) const { return theOwningThread; } // Return the queue length for recursion CounterCref Semaphore::getRecursionQueueLength( void ) const { return theRecursionQueueLength; } // Protected method for retrieving thread identifier ThreadIdentifierRef Semaphore::getOwnerId( void ) { return theOwningThread; } // Protected method for setting thread identifier void Semaphore::setOwnerId( void ) { theOwningThread = Thread::getThreadIdentifier(); } // Protected method for setting queue length void Semaphore::setRecursionQueueLength( Counter aCount ) { theRecursionQueueLength = aCount; } // Protected method for setting the thread identifier to non void Semaphore::resetOwnerId( void ) { theOwningThread = (0); theRecursionQueueLength = (0); } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.5 $ $Date: 2000/06/02 11:51:52 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/AllocatorAlreadyExistsException.cpp0000664000000000000000000000536707044611503024765 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__ALLOCATORALREADYEXISTSEXCEPTION_HPP) #include #endif #if !defined(__ABSTRACTFACTORYEXCEPTION_HPP) #include #endif namespace corelinux { // // Default public constructor // AllocatorAlreadyExistsException::AllocatorAlreadyExistsException ( CharCptr file, LineNum line, Severity severity, bool outOfMemory ) : AbstractFactoryException ( "AllocatorAlreadyExistsException", file,line,severity,outOfMemory ) { ; // do nothing } // // Default protected constructor // AllocatorAlreadyExistsException::AllocatorAlreadyExistsException( void ) : AbstractFactoryException() { NEVER_GET_HERE; } // // Copy constructor // AllocatorAlreadyExistsException::AllocatorAlreadyExistsException ( AllocatorAlreadyExistsExceptionCref aRef ) : AbstractFactoryException( aRef ) { ; // do nothing } // // Destructor // AllocatorAlreadyExistsException::~AllocatorAlreadyExistsException( void ) { ; // do nothing } // // Assignment operator // AllocatorAlreadyExistsExceptionRef AllocatorAlreadyExistsException::operator= ( AllocatorAlreadyExistsExceptionCref aRef ) { AbstractFactoryException::operator=( aRef ); return (*this); } // // Equality operator // bool AllocatorAlreadyExistsException::operator== ( AllocatorAlreadyExistsExceptionCref aRef ) const { return (this == &aRef); } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/01/29 16:20:19 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/MemoryStorage.cpp0000664000000000000000000000742507117164274021267 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__MEMORYSTORAGE_HPP) #include #endif namespace corelinux { // Constructor MemoryStorage::MemoryStorage( void ) throw( Assertion ) : TransientStorage(), Synchronized(), theIdentifier( 0 ), theSize( 0 ), theBasePointer( NULLPTR ), theCurrentPointer( NULLPTR ) { NEVER_GET_HERE; } // Copy constructor MemoryStorage::MemoryStorage( MemoryStorageCref aRef ) : TransientStorage( aRef ), Synchronized( aRef ), theIdentifier( aRef.theIdentifier ), theSize( aRef.theSize ), theBasePointer( aRef.theBasePointer ), theCurrentPointer( aRef.theCurrentPointer ) { ; // vacuous, do nothing } MemoryStorage::MemoryStorage ( MemoryIdentifierCref anId, IntCref aSize, VoidPtr aBase ) : TransientStorage( ), theIdentifier( anId ), theSize( aSize ), theBasePointer( aBase ), theCurrentPointer( aBase ) { } // Destructor MemoryStorage::~MemoryStorage( void ) { theIdentifier = 0 ; theSize = 0 ; theBasePointer = NULLPTR; theCurrentPointer = NULLPTR; } // Operator assignment MemoryStorageRef MemoryStorage::operator=( MemoryStorageCref aRef ) { return MemoryStorageRef(TransientStorage::operator=(aRef)); } // Equality operator bool MemoryStorage::operator==( MemoryStorageCref aRef ) const { return ( theIdentifier == aRef ); } // Identifier coercion MemoryStorage::operator MemoryIdentifierCref( void ) const { return theIdentifier; } // Index increment void MemoryStorage::operator+( Int aIncrement ) throw( BoundsException ) { BytePtr aCp((BytePtr(theCurrentPointer) + aIncrement)); Int pos(aCp - BytePtr(theBasePointer) ); if( pos < 0 || pos > theSize ) { throw BoundsException( LOCATION ); } else { theCurrentPointer = VoidPtr(aCp); } } // Index decrement void MemoryStorage::operator-( Int aIncrement ) throw( BoundsException ) { BytePtr aCp((BytePtr(theCurrentPointer) - aIncrement)); Int pos(aCp - BytePtr(theBasePointer) ); if( pos < 0 || pos > theSize ) { throw BoundsException( LOCATION ); } else { theCurrentPointer = VoidPtr(aCp); } } // Absolute offset MemoryStorageRef MemoryStorage::operator[]( Int offset ) throw( BoundsException ) { theCurrentPointer = theBasePointer; (*this) + offset; return (*this); } // Protected access VoidPtr MemoryStorage::getBasePointer( void ) { return theBasePointer; } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.4 $ $Date: 2000/06/06 12:04:12 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/Request.cpp0000664000000000000000000000347007102047565020113 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__REQUEST_HPP) #include #endif namespace corelinux { // // Default constructor // Request::Request( void ) { ; // do nothing } // // Copy constructor // Request::Request( RequestCref ) { ; // do nothing } // // Destructor // Request::~Request( void ) { ; // do nothing } // // Assignment operator // RequestRef Request::operator=( RequestCref ) { return (*this); } // // Equality operator // bool Request::operator==( RequestCref aRef ) const { return ( this == &aRef ); } // // Non-equality operator // bool Request::operator!=( RequestCref aRef ) const { return !( *this == aRef ); } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/04/27 14:32:21 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/Strategy.cpp0000664000000000000000000000372307107245525020267 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__STRATEGY_HPP) #include #endif namespace corelinux { // // Default constructor // Strategy::Strategy( void ) { ; // do nothing } // // Copy constructor // Strategy::Strategy( StrategyCref ) { ; // do nothing } // // Destructor // Strategy::~Strategy( void ) { ; // do nothing } // // Assignment operator // StrategyRef Strategy::operator=( StrategyCref ) { return (*this); } // // Equality operator // bool Strategy::operator==( StrategyCref aRef ) const { bool isMe(false); if( this == &aRef ) { isMe = true; } else { ; // do nothing } return isMe; } // // Non-equality operator // bool Strategy::operator!=( StrategyCref aRef ) const { return !(this->operator==(aRef)); } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/05/13 12:32:21 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/SemaphoreGroup.cpp0000664000000000000000000003115610771017615021424 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__SEMAPHOREGROUP_HPP) #include #endif #if !defined(__SEMAPHORECOMMON_HPP) #include #endif extern "C" { #include #include #include #include #include #include #include } namespace corelinux { // // Checks to see that the file exists, or will create // based on create flags. // Returns 0 if exists already, 1 if created for this // operation, and -1 for error // static CharCptr tmpDir = "/tmp/"; static CharCptr tmpName= "/tmp/clsgtemp."; // // Basic group constructor with access rights specified // SemaphoreGroup::SemaphoreGroup( Short aSemCount, Int aRightSet ) throw(Assertion,SemaphoreException) : theIdentifier(-1), theNumberOfSemaphores( aSemCount ), theGroupCSA( NULLPTR ) { REQUIRE( aSemCount >= 1 ); memset(theName,0,NAMEBUFFERSIZE); strcpy(theName,tmpName); struct timeval tv; struct timezone tz; gettimeofday(&tv,&tz); srand(tv.tv_sec); sprintf( &theName[strlen(tmpName)],"%ld%ld%d",tv.tv_sec,tv.tv_usec,rand() ); // // In order to insure a valid token, we // need a valid file. We use the creationFlag // to see that we have that, if one doesn't // exist already // if( Environment::setupCommonAccess(theName,FAIL_IF_EXISTS) == -1 ) { throw SemaphoreException ( theName, LOCATION, Exception::CONTINUABLE, false, Thread::getKernelError() ); } else { ; // do nothing } Int tokVal = ftok(theName,'z'); if( tokVal == -1 ) { throw SemaphoreException ( theName, LOCATION, Exception::CONTINUABLE, false, Thread::getKernelError() ); } else { ; // do nothing } theIdentifier = semget ( tokVal, theNumberOfSemaphores, IPC_CREAT | IPC_EXCL | aRightSet ); if( theIdentifier == (-1) ) { theNumberOfSemaphores = 0; throw SemaphoreException ( "SemaphoreGroup( Short , Int )::semget", LOCATION, Exception::CONTINUABLE, false, Thread::getKernelError() ); } else { ; // do nothing } } // // Constructor where the identifier has been formed already // SemaphoreGroup::SemaphoreGroup ( Short aSemCount, SemaphoreGroupIdentifierCref aGID , Int aRightSet, CreateDisposition disp ) throw(Assertion,SemaphoreException) : theIdentifier(-1), theNumberOfSemaphores( aSemCount ), theGroupCSA( NULLPTR ) { Int createFlag(0); memset(theName,0,NAMEBUFFERSIZE); // // If we should fail in the prescence // of an existing group with the same // identifier we need to indicate that // and insure that there are positive // values for semaphore counts // if( disp == FAIL_IF_EXISTS ) { ENSURE( aSemCount >= 1 ); createFlag = ( IPC_CREAT | IPC_EXCL ); } else { ; // do nothing } theIdentifier = semget ( SemaphoreGroupIdentifierRef(aGID), theNumberOfSemaphores, createFlag | aRightSet ); // // If the call failed // if( theIdentifier == (-1) ) { theNumberOfSemaphores = 0; // If exists and it shouldn't if( disp == FAIL_IF_EXISTS && Thread::getKernelError() == EEXIST ) { throw SemaphoreException("Group Exists Exception",LOCATION); } // If doesn't exist and it should else if( disp == FAIL_IF_NOTEXISTS && Thread::getKernelError() == ENOENT ) { throw SemaphoreException("Group Not Exists Exception",LOCATION); } // Or for any other reason (like access, deleted, etc.) else { throw SemaphoreException ( "SemaphoreGroup exception", LOCATION, Exception::CONTINUABLE, false, Thread::getKernelError() ); } } // // Else it is open shared // else { SemaphoreCommon::groupDefined(this); } } // // Constructor to form a group // SemaphoreGroup::SemaphoreGroup ( Short aSemCount, CharCptr aName, Int aRightSet, CreateDisposition disp ) throw(Assertion,SemaphoreException) : theIdentifier(-1), theNumberOfSemaphores( aSemCount ), theGroupCSA( NULLPTR ) { Int createFlag(0); memset(theName,0,NAMEBUFFERSIZE); // // If we should fail in the prescence // of an existing group with the same // identifier we need to indicate that // and insure that there are positive // values for semaphore counts // if( disp == FAIL_IF_EXISTS ) { ENSURE( aSemCount >= 1 ); createFlag = ( IPC_CREAT | IPC_EXCL ); } else if( disp == CREATE_OR_REUSE ) { ENSURE( aSemCount >= 1 ); createFlag = IPC_CREAT; } else { ; // do nothing } strcpy(theName,tmpDir); strcat(theName,aName); // // In order to insure a valid token, we // need a valid file. We use the creationFlag // to see that we have that, if one doesn't // exist already // Int setupResults = Environment::setupCommonAccess(theName,disp); if( setupResults == -1 ) { memset(theName,0,NAMEBUFFERSIZE); throw SemaphoreException ( aName, LOCATION, Exception::CONTINUABLE, false, Thread::getKernelError() ); } else { ; // do nothing } Int tokVal = ftok(theName,'z'); if( tokVal == -1 ) { if( setupResults == 1 ) { Environment::removeCommonAccess(theName); } else { ; // do nothing } memset(theName,0,NAMEBUFFERSIZE); throw SemaphoreException ( aName, LOCATION, Exception::CONTINUABLE, false, Thread::getKernelError() ); } else { ; // do nothing } theIdentifier = semget ( tokVal, theNumberOfSemaphores, createFlag | aRightSet ); // // If the call failed // if( theIdentifier == (-1) ) { int keval = Thread::getKernelError(); if( setupResults == 1 ) { Environment::removeCommonAccess(theName); } else { ; // do nothing } memset(theName,0,NAMEBUFFERSIZE); theNumberOfSemaphores = 0; // If exists and it shouldn't if( disp == FAIL_IF_EXISTS && keval == EEXIST ) { throw SemaphoreException("Group Exists Exception",LOCATION); } // If doesn't exist and it should else if( disp == FAIL_IF_NOTEXISTS && keval == ENOENT ) { throw SemaphoreException("Group Not Exists Exception",LOCATION); } // Or for any other reason (like access, deleted, etc.) else { throw SemaphoreException ( "SemaphoreGroup exception", LOCATION, Exception::CONTINUABLE, false, Thread::getKernelError() ); } } // // Else if ok // else { strcpy(theName,aName); SemaphoreCommon::groupDefined(this); if( this->isPrivate() == false ) { theNumberOfSemaphores = theGroupCSA->groupSemCount; } else { ; // do nothing } } } // // Destructor // SemaphoreGroup::~SemaphoreGroup( void ) { // // If the identifier is not invalid // char buffer[254]; if( theIdentifier != (-1) ) { // // Deleting a set // if( theGroupCSA != NULLPTR ) { // // If the number of references drops to zero // if( SemaphoreCommon::groupUnDefined(this) == 0 ) { // And we have a name, remove it if( strlen(theName) != 0 ) { strcpy(buffer,tmpDir); strcat(buffer,theName); Environment::removeCommonAccess(buffer); } else { ; // nothing we can do } // Remove the control group int val = semctl( theIdentifier, 0 , IPC_RMID, 0 ); if( val == -1 ) { throw SemaphoreException("Semaphore Group Destructor failed",LOCATION); } else { ; // do nothing } } else { ; // still in use } } // If private else { // And we have a name, remove it if( strlen(theName) != 0 ) { Environment::removeCommonAccess(theName); } else { ; // nothing we can do } // Remove the control group int val = semctl( theIdentifier, 0 , IPC_RMID, 0 ); if( val == -1 ) { throw SemaphoreException("Semaphore Group Destructor failed",LOCATION); } else { ; // do nothing } } theIdentifier = -1; } else { if( strlen(theName) != 0 ) { if( theGroupCSA == NULLPTR ) { Environment::removeCommonAccess(theName); } else { strcpy(buffer,tmpDir); strcat(buffer,theName); Environment::removeCommonAccess(buffer); } } } } // // Equality operator // bool SemaphoreGroup::operator== ( SemaphoreGroupCref aSemGroupRef ) const { return ( theIdentifier == aSemGroupRef.getIdentifier() ); } // // Return the count in the group // Short SemaphoreGroup::getSemaphoreCount( void ) const { Short aVal(theNumberOfSemaphores); if( aVal == 0 ) { if( this->isPrivate() == false ) { aVal = theGroupCSA->groupSemCount; } else { ; // do nothing } } else { ; // do nothing } return aVal; } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.15 $ $Date: 2001/04/15 01:09:28 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/EventSemaphoreGroup.cpp0000664000000000000000000003304307162203112022410 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__EVENTSEMAPHOREGROUP_HPP) #include #endif #if !defined(__EVENTSEMAPHORE_HPP) #include #endif namespace corelinux { /// default maximum number of listeners is "infinity" const Int DEFAULT_COUNT(-1); static SemaphoreIdentifier findAny(-1); // // Basic group constructor with access rights specified // EventSemaphoreGroup::EventSemaphoreGroup( Short aSemCount, Int aRightSet ) throw(Assertion,SemaphoreException) : SemaphoreGroup( aSemCount, aRightSet ), theUsedMap( ) { ; // do nothing } // // Constructor where the identifier has been formed already // EventSemaphoreGroup::EventSemaphoreGroup ( Short aSemCount, SemaphoreGroupIdentifierCref aGID , Int aRightSet, CreateDisposition disp ) throw(Assertion,SemaphoreException) : SemaphoreGroup( aSemCount, aGID, aRightSet, disp ), theUsedMap() { ; // do nothing } // // Constructor to form a group // EventSemaphoreGroup::EventSemaphoreGroup ( Short aSemCount, CharCptr aName, Int aRightSet, CreateDisposition disp ) throw(Assertion,SemaphoreException) : SemaphoreGroup( aSemCount+1, aName, aRightSet, disp ), theUsedMap() { ; // do nothing } // // Destructor // EventSemaphoreGroup::~EventSemaphoreGroup( void ) { SemaphoreSharesIterator begin( theUsedMap.begin() ); SemaphoreSharesIterator end( theUsedMap.end() ); // For each semaphore lingering for( ; begin != end; ++begin ) { // For each reference not returned for( Int x = 0; x < (*begin).second.theCount; ++x ) { SemaphoreCommon::relinquishSemaphore(this,(*begin).first); } // If there was one there, delete it if( (*begin).second.theCount ) { ::delete (*begin).second.theSem; } else { ; // do nothing } } theUsedMap.clear(); } // // Creates a default semaphore // AbstractSemaphorePtr EventSemaphoreGroup::createSemaphore( void ) throw( SemaphoreException ) { return this->resolveSemaphore ( findAny, -1, FAIL_IF_EXISTS, false, false, DEFAULT_COUNT ); } // // Creates a default EventSemaphore with max listener count // AbstractSemaphorePtr EventSemaphoreGroup::createSemaphore( Counter aLimit ) throw( SemaphoreException ) { return this->resolveSemaphore ( findAny, -1, FAIL_IF_EXISTS, false, false, aLimit ); } // // Creates, or opens, a specific semaphore in the group // AbstractSemaphorePtr EventSemaphoreGroup::createSemaphore ( SemaphoreIdentifierRef aIdentifier, CreateDisposition disp, bool Recursive, bool Balking ) throw( SemaphoreException ) { Short aSid( aIdentifier.getScalar() ); if( aSid < 0 || aSid > getSemaphoreCount() ) { throw SemaphoreException ( "Invalid Semaphore identifier", LOCATION, Exception::CONTINUABLE ); } else { ; // do nothing } return this->resolveSemaphore ( aIdentifier, aSid, disp, Recursive, Balking, DEFAULT_COUNT); } // // Creates, or opens, a specific semaphore in the // group and initialize the limit of listeners // AbstractSemaphorePtr EventSemaphoreGroup::createSemaphore ( SemaphoreIdentifierRef aIdentifier, Counter aLimit, CreateDisposition disp, bool Recursive, bool Balking ) throw( SemaphoreException ) { Short aSid( aIdentifier.getScalar() ); if( aSid < 0 || aSid > getSemaphoreCount() ) { throw SemaphoreException ( "Invalid Semaphore identifier", LOCATION, Exception::CONTINUABLE ); } else { ; // do nothing } return this->resolveSemaphore( aIdentifier, aSid, disp, Recursive, Balking, aLimit ); } // // Creates or opens a specific named semaphore in the // group (not implemented) // AbstractSemaphorePtr EventSemaphoreGroup::createSemaphore ( std::string aName, CreateDisposition disp, bool Recursive, bool Balking ) throw( SemaphoreException ) { AbstractSemaphorePtr aSem(NULLPTR); throw SemaphoreException ( "Semaphore does not exist", LOCATION ); return aSem; } // // Creates or opens a specific named semaphore in the // group (not implemented) // AbstractSemaphorePtr EventSemaphoreGroup::createSemaphore ( std::string aName, Counter aLimit, CreateDisposition disp, bool Recursive, bool Balking ) throw( SemaphoreException ) { AbstractSemaphorePtr aSem(NULLPTR); throw SemaphoreException ( "Semaphore does not exist", LOCATION ); return aSem; } // // Destroy the semaphore // void EventSemaphoreGroup::destroySemaphore( AbstractSemaphorePtr aPtr ) throw( SemaphoreException ) { REQUIRE( aPtr != NULLPTR ); GUARD; // // Insure that we are in the same arena // if( aPtr->getGroupIdentifier() == getIdentifier() ) { // // Get the index, because thats what identifiers are, // and check before whacking space. // Index idx( aPtr->getIdentifier().getScalar() ); SemaphoreSharesIterator aFItr( theUsedMap.find(idx) ); if( aFItr != theUsedMap.end() ) { SemaphoreCommon::relinquishSemaphore(this,idx); aFItr->second.theCount -= 1; //theUsedMap[idx].theCount -= 1; if( aFItr->second.theCount == 0 ) { theUsedMap.erase(aFItr); ::delete aPtr; } else { ; // not yet } } else { ; // double delete exception MAYBE!!! } } else { throw SemaphoreException ( "Semaphore not part of group", LOCATION ); } } // // This is where the work belongs // AbstractSemaphorePtr EventSemaphoreGroup::resolveSemaphore ( SemaphoreIdentifierRef aIdentifier, Short aSemId, CreateDisposition aDisp, bool aRecurse, bool aBalk, Counter aLimit ) throw( SemaphoreException ) { Guard localGuard(this->access()); // // Setup for operating in CSA or local // Int aRec(aRecurse); Int aBlk(aBalk); Int aMaxValue(aLimit); Int aValue(0); Int aCmnRet(0); EventSemaphorePtr aSemPtr( NULLPTR ); SemaphoreReference aLocalShare = {0,NULLPTR}; // // Let the CSA and our group decide behavior // aCmnRet = SemaphoreCommon::obtainSemaphore ( this, aSemId, aValue, aRec, aBlk, ( aDisp == FAIL_IF_EXISTS ? 0 : ( aDisp == FAIL_IF_NOTEXISTS ? 2 :1 ) ) ); // If the CSA has resolved it if( aCmnRet >= 0 ) { // If we don't already have it, create it, otherwise // reuse the local instance SemaphoreSharesIterator aFItr( theUsedMap.find(aCmnRet) ); if( aFItr == theUsedMap.end() ) { aSemPtr = ::new EventSemaphore ( this, aIdentifier, aMaxValue, aRec, aBlk ); aLocalShare.theCount = 1; aLocalShare.theSem = AbstractSemaphorePtr(aSemPtr); theUsedMap[aCmnRet] = aLocalShare; } else { (*aFItr).second.theCount += 1; aSemPtr = EventSemaphorePtr(SemaphorePtr((*aFItr).second.theSem)); } } // Either we are in local mode, or there was an error in // constraints from the CSA else { SemaphoreException exists("Semaphore exists exception",LOCATION); SemaphoreException notexists("Semaphore does not exist",LOCATION); if( aCmnRet == -1 ) { // If a specific one is being looked for if( aSemId >= 0 ) { SemaphoreSharesIterator aFItr( theUsedMap.find(aSemId) ); // // If we find it // if( aFItr != theUsedMap.end() ) { // // And the caller needs a unique instance // if( aDisp == FAIL_IF_EXISTS ) { throw exists; } else { (*aFItr).second.theCount += 1; aSemPtr = EventSemaphorePtr(SemaphorePtr((*aFItr).second.theSem)); } } // // If we need to create it // else { // // And the user doesn't expect it to // exist // if( aDisp != FAIL_IF_NOTEXISTS ) { aSemPtr = ::new EventSemaphore ( this, aIdentifier, aMaxValue, aRec, aBlk ); aLocalShare.theCount = 1; aLocalShare.theSem = AbstractSemaphorePtr(aSemPtr); theUsedMap[aSemId] = aLocalShare; } else { throw notexists; } } } // Otherwise, give what we can get else { Index maxCnt(this->getSemaphoreCount()); for( Index x = 0; x < maxCnt; ++x ) { if( theUsedMap.find(x) == theUsedMap.end() ) { aSemPtr = ::new EventSemaphore ( this, aIdentifier, aMaxValue, aRec, aBlk ); aLocalShare.theCount = 1; aLocalShare.theSem = AbstractSemaphorePtr(aSemPtr); theUsedMap[aSemId] = aLocalShare; x = maxCnt; } else { ; // do nothing } } if( aSemPtr == NULLPTR ) { throw notexists; } else { ; // do nothing } } } // // Failure to resolve in the CSA // else { if( aDisp == FAIL_IF_EXISTS ) { throw exists; } else { throw notexists; } } } return AbstractSemaphorePtr(aSemPtr); } } /* Common rcs information do not modify $Author: dulimart $ $Revision: 1.3 $ $Date: 2000/09/20 18:47:38 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/CommandFrameException.cpp0000664000000000000000000000523207103721754022671 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__COMMANDFRAMEEXCEPTION_HPP) #include #endif namespace corelinux { // // Default public constructor // CommandFrameException::CommandFrameException ( CharCptr file, LineNum line, Severity severity, bool outOfMemory ) : Exception("CommandFrameException",file,line,severity,outOfMemory) { ; // do nothing } // // Implementation protected constructor // CommandFrameException::CommandFrameException ( CharCptr why, CharCptr file, LineNum line, Severity severity, bool outOfMemory ) : Exception(why,file,line,severity,outOfMemory) { ; // do nothing } // // Default protected constructor // CommandFrameException::CommandFrameException( void ) : Exception() { NEVER_GET_HERE; } // // Copy constructor // CommandFrameException::CommandFrameException( CommandFrameExceptionCref aRef ) : Exception( aRef ) { ; // do nothing } // // Destructor // CommandFrameException::~CommandFrameException( void ) { ; // do nothing } // // Assignment operator // CommandFrameExceptionRef CommandFrameException::operator= ( CommandFrameExceptionCref aRef ) { Exception::operator=( aRef ); return (*this); } // // Equality operator // bool CommandFrameException::operator==( CommandFrameExceptionCref aRef ) const { return (this == &aRef); } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/05/03 03:58:36 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/Exception.cpp0000664000000000000000000001174507167610670020431 0ustar /* CoreLinux++ Copyright (C) 1999 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif namespace corelinux { // // Default constructor that gathers // the information about the exception // Exception::Exception ( CharCptr aWhy, CharCptr aFile, LineNum aLine, Exception::Severity aSeverity, bool aOutOfMemoryFlag ) : theReason(aWhy), theFile(aFile), theSeverity(aSeverity), theUnwindInfo(), theLine(aLine), theOutOfMemoryFlag(aOutOfMemoryFlag) { ; // do nothing } // // Used by subclasses of Exception // Exception::Exception ( CharCptr aFile, LineNum aLine, Exception::Severity aSeverity, bool aOutOfMemoryFlag ) : theReason(), theFile(aFile), theSeverity(aSeverity), theUnwindInfo(), theLine(aLine), theOutOfMemoryFlag(aOutOfMemoryFlag) { ; //do nothing } // // Copy constructor // Exception::Exception( ExceptionCref crOther ) : theReason(crOther.getWhy()), theFile(crOther.getFile()), theSeverity(crOther.getSeverity()), theUnwindInfo(crOther.getUnwind()), theLine(crOther.getLine()), theOutOfMemoryFlag(crOther.isOutOfMemory()) { ; // do nothing } // // Protected default constructor // Exception::Exception( void ) { ; // do nothing } // // Destructor // Exception::~Exception( void ) { ; // do nothing } // // Assignment operator overload // ExceptionRef Exception::operator=( ExceptionCref crOther ) { if( this != &crOther ) { theReason = crOther.getWhy(); theFile = crOther.getFile(); theSeverity = crOther.getSeverity(); theUnwindInfo = crOther.getUnwind(); theLine = crOther.getLine(); theOutOfMemoryFlag = crOther.isOutOfMemory(); } else { ; // do nothing } return *this; } // // Equality operator overload // bool Exception::operator ==( ExceptionCref aException ) { return (this == &aException); } const std::string & Exception::getFile( void ) const { return theFile; } LineNumCref Exception::getLine( void ) const { return theLine; } const std::string & Exception::getWhy( void ) const { return theReason; } const Exception::Severity & Exception::getSeverity( void ) const { return theSeverity; } const std::string & Exception::getUnwind( void ) const { return theUnwindInfo; } void Exception::addUnwindInfo( CharCptr aUnwindInfo ) { if( theOutOfMemoryFlag == false ) { theUnwindInfo += aUnwindInfo; } else { ; // do nothing } } void Exception::setThreadFatalSeverity( void ) { if( theSeverity < THREADFATAL ) { theSeverity = THREADFATAL ; } else { ; // do nothing, severe enough } } void Exception::setProcessFatalSeverity( void ) { if( theSeverity < PROCESSFATAL ) { theSeverity = PROCESSFATAL ; } else { ; // do nothing, severe enough } } void Exception::setThreadTerminateSeverity( void ) { if( theSeverity < THREADTERMINATE ) { theSeverity = THREADTERMINATE ; } else { ; // do nothing, severe enough } } void Exception::setProcessTerminateSeverity( void ) { if( theSeverity < PROCESSTERMINATE ) { theSeverity = PROCESSTERMINATE ; } else { ; // do nothing, severe enough } } void Exception::setWhy( const std::string & aWhy ) { theReason = aWhy; } void Exception::setWhy( CharCptr aWhy ) { theReason = aWhy; } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.6 $ $Date: 2000/10/07 12:06:16 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/ThreadContext.cpp0000664000000000000000000003400207140162143021222 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__THREADCONTEXT_HPP) #include #endif extern "C" { #include #include } namespace corelinux { // Default stack size to use const Size DEFAULT_STACKSIZE(8192); // Set the default thread frame entry point ThreadFrameFunctionPtr ThreadContext::theDefaultFrameFunction ( defaultFrameFunction ); // Set the default context allocation handler ThreadContextCreatePtr ThreadContext::theDefaultContextCreator ( defaultContextCreate ); // Set the default context deallocation handler ThreadContextDestroyPtr ThreadContext::theDefaultContextDestroyer ( defaultContextDestroy ); // Set the default stack allocation handler ThreadStackCreatePtr ThreadContext::theDefaultStackCreator ( defaultStackCreate ); // Set the default stack deallocation handler ThreadStackDestroyPtr ThreadContext::theDefaultStackDestroyer ( defaultStackDestroy ); // // Default unused constructor // ThreadContext::ThreadContext( void ) throw ( Assertion ) : Synchronized(), theFrameFunction( defaultFrameFunction ), theContextCreator( defaultContextCreate ), theContextDestroyer( defaultContextDestroy ), theStackCreator( defaultStackCreate ), theStackDestroyer( defaultStackDestroy ), theStack( NULLPTR ), theStackSize( 0 ), theShareMask( 0 ), theThreadIdentifier( -1 ), theCallersFunction( NULLPTR ), theThreadState( THREAD_EXCEPTION ), theReturnCode( 0 ) { NEVER_GET_HERE; } // // Minimal Constructor // ThreadContext::ThreadContext( CallerFunctionPtr aFuncPtr ) throw ( Assertion ) : Synchronized(), theFrameFunction( defaultFrameFunction ), theContextCreator( defaultContextCreate ), theContextDestroyer( defaultContextDestroy ), theStackCreator( defaultStackCreate ), theStackDestroyer( defaultStackDestroy ), theStack( NULLPTR ), theStackSize( DEFAULT_STACKSIZE ), theShareMask ( CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | SIGCHLD ), theThreadIdentifier( -1 ), theCallersFunction( NULLPTR ), theThreadState( THREAD_EXCEPTION ), theReturnCode( 0 ) { REQUIRE( aFuncPtr != NULLPTR ); theCallersFunction = aFuncPtr; theThreadState = THREAD_WAITING_TO_START; } // // With user defined stack size // ThreadContext::ThreadContext ( CallerFunctionPtr aFuncPtr, Size aStackSize ) throw ( Assertion ) : Synchronized(), theFrameFunction( defaultFrameFunction ), theContextCreator( defaultContextCreate ), theContextDestroyer( defaultContextDestroy ), theStackCreator( defaultStackCreate ), theStackDestroyer( defaultStackDestroy ), theStack( NULLPTR ), theStackSize( DEFAULT_STACKSIZE ), theShareMask ( CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | SIGCHLD ), theThreadIdentifier( -1 ), theCallersFunction( NULLPTR ), theThreadState( THREAD_EXCEPTION ), theReturnCode( 0 ) { REQUIRE( aFuncPtr != NULLPTR ); REQUIRE( aStackSize > 0 ); theCallersFunction = aFuncPtr; theThreadState = THREAD_WAITING_TO_START; theStackSize = aStackSize; } // // Copy constructor // ThreadContext::ThreadContext( ThreadContextCref aContext ) throw ( Assertion ) : Synchronized(), theFrameFunction( aContext.theFrameFunction ), theContextCreator( aContext.theContextCreator ), theContextDestroyer( aContext.theContextDestroyer ), theStackCreator( aContext.theStackCreator ), theStackDestroyer( aContext.theStackDestroyer ), theStack( NULLPTR ), theStackSize( DEFAULT_STACKSIZE ), theShareMask ( CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | SIGCHLD ), theThreadIdentifier( -1 ), theCallersFunction( NULLPTR ), theThreadState( THREAD_EXCEPTION ), theReturnCode( 0 ) { REQUIRE( aContext.getState() == THREAD_WAITING_TO_START ); theThreadState = THREAD_WAITING_TO_START; theStackSize = aContext.theStackSize; theShareMask = aContext.theShareMask; theCallersFunction = aContext.theCallersFunction; } // // Destructor // ThreadContext::~ThreadContext( void ) { theThreadState = THREAD_EXCEPTION, theStackSize = 0; theShareMask = 0; theThreadIdentifier = (-1); theReturnCode = -1; theStack = NULLPTR; theCallersFunction = NULLPTR; theFrameFunction = NULLPTR; theContextCreator = NULLPTR; theContextDestroyer = NULLPTR; theStackCreator = NULLPTR; theStackDestroyer = NULLPTR; } // // Assignment operator // ThreadContextRef ThreadContext::operator=( ThreadContextCref aContext ) throw ( Assertion ) { REQUIRE( aContext.getState() == THREAD_WAITING_TO_START ); REQUIRE( theThreadState == THREAD_WAITING_TO_START ); if( this != &aContext ) { theStackSize = aContext.theStackSize; theShareMask = aContext.theShareMask; theCallersFunction = aContext.theCallersFunction; } else { ; // do nothing } return (*this); } // Assign identifier ThreadContextRef ThreadContext::operator=( ThreadIdentifier aIdentifier ) { theThreadIdentifier = aIdentifier; return ( *this ); } // Equality on instance bool ThreadContext::operator==( ThreadContextCref aContext ) const { return ( this == &aContext ); } // Equality on identifier bool ThreadContext::operator==( ThreadIdentifierCref aIdentifier ) const { return ( theThreadIdentifier == aIdentifier ); } // Equality on function pointer bool ThreadContext::operator==( CallerFunctionPtr aFunction ) const { return ( theCallersFunction == aFunction ); } // Coerce identifier from instance ThreadContext::operator ThreadIdentifierCref( void ) const { return theThreadIdentifier; } // Get the thread state const ThreadState & ThreadContext::getState( void ) const { return theThreadState; } // Get the threads return code Int ThreadContext::getReturnCode( void ) const { return theReturnCode; } // Explicit call for identifier ThreadIdentifierCref ThreadContext::getIdentifier( void ) const { return theThreadIdentifier; } // Get the start function for the caller CallerFunctionPtr ThreadContext::getCallerFunction( void ) { return theCallersFunction; } // Return the size of the stack Size ThreadContext::getStackSize( void ) const { return theStackSize; } // Get the contexts share mask Int ThreadContext::getShareMask( void ) const { return theShareMask; } // Get the stack pointer BytePtr ThreadContext::getStack( void ) { return theStack; } // Get the top of the stack for execution BytePtr *ThreadContext::getStackTop( void ) { BytePtr *st( (BytePtr *) (theStackSize + (BytePtr) theStack) ); return st; } ThreadFrameFunctionPtr ThreadContext::getFramePointer( void ) { return theFrameFunction; } // Work with the resource share mask void ThreadContext::setShareMask( Int aMask ) { theShareMask = aMask; } // Set the thread state void ThreadContext::setThreadState( ThreadState aState ) { theThreadState = aState; } // Set the thread return code void ThreadContext::setReturnCode( Int aReturnCode ) { theReturnCode = aReturnCode; } // Sets the thread frame handler void ThreadContext::setFrameFunction( ThreadFrameFunctionPtr aFrame ) { GUARD; // // If either are null, we are in effect asking to reset to // the defaults. // if( aFrame == NULLPTR ) { theFrameFunction = defaultFrameFunction; } // // Otherwise set the new handler. // else { theFrameFunction = aFrame; } } // Set the context handlers void ThreadContext::setContextFunctions ( ThreadContextCreatePtr aCreate, ThreadContextDestroyPtr aDestroy ) { GUARD; // If any are null, we revert to defaults if( aCreate == NULLPTR || aDestroy == NULLPTR ) { theContextCreator = defaultContextCreate; theContextDestroyer = defaultContextDestroy; } // Otherwise we set the functions specified else { theContextCreator = aCreate; theContextDestroyer = aDestroy; } } // Set the stack handlers void ThreadContext::setStackFunctions ( ThreadStackCreatePtr aCreate, ThreadStackDestroyPtr aDestroy ) { GUARD; // If any are null, we revert to defaults if( aCreate == NULLPTR || aDestroy == NULLPTR ) { theStackCreator = defaultStackCreate; theStackDestroyer = defaultStackDestroy; } // Otherwise we set the functions specified else { theStackCreator = aCreate; theStackDestroyer = aDestroy; } } // Factory create method ThreadContextPtr ThreadContext::createContext( void ) throw ( ThreadException ) { ThreadContextPtr aContextPtr( NULLPTR ); aContextPtr = (*theContextCreator)(*this); if( aContextPtr != NULLPTR ) { try { aContextPtr->theStack = (*theStackCreator)(aContextPtr); if( aContextPtr->theStack == NULLPTR ) { destroyContext( aContextPtr ); aContextPtr = NULLPTR; throw ThreadException("Unable to allocate stack",LOCATION); } else { ; // do nothing } } catch(...) { destroyContext( aContextPtr ); aContextPtr = NULLPTR; throw; } } else { throw ThreadException("Unable to allocate context",LOCATION); } return aContextPtr; } // Factory destroy method void ThreadContext::destroyContext( ThreadContextPtr aContext ) throw ( Assertion ) { REQUIRE( aContext != NULLPTR ); if( aContext->theStack != NULLPTR ) { (*theStackDestroyer)(aContext->theStack); aContext->theStack = NULLPTR; } else { ; // do nothing } (*theContextDestroyer)(aContext); } // The thread frame immutable entry point Int ThreadContext::cloneFrameFunction( ThreadContextPtr aPtr ) { try { aPtr->setThreadState( THREAD_RUNNING ); (*aPtr) = Thread::getThreadIdentifier(); aPtr->setReturnCode(aPtr->getFramePointer()(aPtr)); aPtr->setThreadState( THREAD_NORMAL_EXIT ); } catch( ExceptionRef aRef ) { aPtr->setThreadState( THREAD_EXCEPTION ); } catch( ... ) { aPtr->setThreadState( THREAD_EXCEPTION ); } return aPtr->getReturnCode(); } // The thread frame substitution point Int ThreadContext::defaultFrameFunction( ThreadContextPtr aPtr ) { return (aPtr->getCallerFunction())(aPtr); } // The allocation of the context to operate on ThreadContextPtr ThreadContext::defaultContextCreate ( ThreadContextRef aInitContext ) { ThreadContextPtr aContextPtr( new ThreadContext(aInitContext) ); if( aContextPtr == NULLPTR ) { throw Exception("Unable to allocate context", LOCATION ); } else { ; // do nothing } return aContextPtr; } // The deallocation of the context operated on. void ThreadContext::defaultContextDestroy( ThreadContextPtr aContext ) { if( aContext != NULLPTR ) { delete aContext; } else { ; // do nothing } } // The allocation for the thread stack BytePtr ThreadContext::defaultStackCreate( ThreadContextPtr aContext ) { BytePtr aStackPtr( new Byte[aContext->getStackSize()] ); if( aStackPtr == NULLPTR ) { throw Exception("Unable to allocate stack", LOCATION ); } else { ; // do nothing } return aStackPtr; } // The deallocation for the thread stack void ThreadContext::defaultStackDestroy( BytePtr aStack ) { if( aStack != NULLPTR ) { delete [] aStack; } else { ; // do nothing } } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.4 $ $Date: 2000/07/28 01:39:47 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/ThreadException.cpp0000664000000000000000000000505007067676513021560 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__THREADEXCEPTION_HPP) #include #endif namespace corelinux { // // Default public constructor // ThreadException::ThreadException ( CharCptr file, LineNum line, Severity severity, bool outOfMemory ) : Exception("ThreadException",file,line,severity,outOfMemory) { ; // do nothing } // // Implementation protected constructor // ThreadException::ThreadException ( CharCptr why, CharCptr file, LineNum line, Severity severity, bool outOfMemory ) : Exception(why,file,line,severity,outOfMemory) { ; // do nothing } // // Default protected constructor // ThreadException::ThreadException( void ) : Exception() { NEVER_GET_HERE; } // // Copy constructor // ThreadException::ThreadException( ThreadExceptionCref aRef ) : Exception( aRef ) { ; // do nothing } // // Destructor // ThreadException::~ThreadException( void ) { ; // do nothing } // // Assignment operator // ThreadExceptionRef ThreadException::operator= ( ThreadExceptionCref aRef ) { Exception::operator=( aRef ); return (*this); } // // Equality operator // bool ThreadException::operator==( ThreadExceptionCref aRef ) const { return (this == &aRef); } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/03/27 15:24:59 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/Memory.cpp0000664000000000000000000003017710771017615017736 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__MEMORY_HPP) #include #endif #if !defined(__MEMORYSTORAGE_HPP) #include #endif extern "C" { #include #include #include #include #include #include #include #include #include #include } namespace corelinux { MemoryManager Memory::theMemoryManager( new Memory ); MemoryMap Memory::theMemoryStorageMap; // // Checks to see that the file exists, or will create // based on create flags. // Returns 0 if exists already, 1 if created for this // operation, and -1 for error // static const Dword NAMEBUFFERSIZE(256); static CharCptr tmpName= "/tmp/clmtemp."; // Default constructor Memory::Memory( void ) throw( Assertion ) : Synchronized() { if( theMemoryManager.instance() == NULLPTR ) { theMemoryStorageMap.clear(); } else { NEVER_GET_HERE; } } // Copy constructor not allowed Memory::Memory( MemoryCref ) throw( Assertion ) : Synchronized() { NEVER_GET_HERE; } // Destructor - Does not work yet Memory::~Memory( void ) { // // For now, we only store what we created private so the // following is ok. When we get to true sharing this will // change. // if( theMemoryStorageMap.size() != 0 ) { MemoryMapIterator begin = theMemoryStorageMap.begin(); MemoryMapIterator end = theMemoryStorageMap.end(); // For each entry, remove from os while( begin != end ) { MemoryIdentifierCref aMId( *(*begin).first ); struct shmid_ds aMemDesc; shmctl( aMId.getScalar(), IPC_STAT, &aMemDesc ); if( shmdt( (*begin).first->getBasePointer() ) != (-1) ) { if( aMemDesc.shm_nattch == 1 ) { shmctl( aMId.getScalar(), IPC_RMID, NULLPTR ); Environment::removeCommonAccess( (*begin).second ); } else { ; // do nothing } } else { ; // do nothing } delete (*begin).first; if( (*begin).second != NULLPTR ) { delete (*begin).second; } ++begin; } theMemoryStorageMap.clear(); } else { ; // do nothing } } // Assignment MemoryRef Memory::operator=( MemoryCref ) throw( Assertion ) { NEVER_GET_HERE; return (*this); } // Equality bool Memory::operator==( MemoryCref ) const { return false; } // Factory methods create MemoryStoragePtr Memory::createStorage( Size aByteSize, Int aPermission ) throw( StorageException ) { Guard myGuard( theMemoryManager.instance()->access() ); MemoryStoragePtr aMPtr( NULLPTR ); MemoryIdentifier anIdentifier(0); VoidPtr aBasePtr( NULLPTR ); CharPtr theName = new Char[NAMEBUFFERSIZE]; memset(theName,0,NAMEBUFFERSIZE); strcpy(theName,tmpName); struct timeval tv; struct timezone tz; gettimeofday(&tv,&tz); srand(tv.tv_sec); sprintf( &theName[strlen(tmpName)],"%ld%ld%d",tv.tv_sec,tv.tv_usec,rand() ); // // In order to insure a valid token, we // need a valid file. We use the creationFlag // to see that we have that, if one doesn't // exist already // if( Environment::setupCommonAccess(theName,FAIL_IF_EXISTS) == -1 ) { delete [] theName; throw StorageException ( "Invalid temporary name exception", LOCATION ); } else { ; // do nothing } Int tokVal = ftok(theName,'z'); if( tokVal == -1 ) { delete [] theName; throw StorageException ( "Invalid token creation", LOCATION ); } else { ; // do nothing } // // We attempt to allocate the block of storage as requested // anIdentifier = shmget ( tokVal, aByteSize, IPC_CREAT | IPC_EXCL | aPermission ); if( anIdentifier == (-1) ) { delete [] theName; throw StorageException("Unable to create storage", LOCATION ); } else { // Now we attach it with read and write access aBasePtr = shmat( anIdentifier.getScalar(), 0 , 0 ); if( Long( aBasePtr ) == (-1) ) { delete [] theName; throw StorageException("Unable to attach storage", LOCATION ); } else { struct shmid_ds aMemDesc; shmctl( anIdentifier.getScalar(), IPC_STAT, &aMemDesc ); aMPtr = new MemoryStorage( anIdentifier,aMemDesc.shm_segsz, aBasePtr ); theMemoryStorageMap[aMPtr] = theName; } } return aMPtr; } // Create/open named object MemoryStoragePtr Memory::createStorage ( MemoryIdentifierCref aId, Size aByteSize, CreateDisposition disp, Int aRights, AddressingConstraint addressing ) { Guard myGuard( theMemoryManager.instance()->access() ); MemoryStoragePtr aMPtr( NULLPTR ); MemoryIdentifier anIdentifier(0); VoidPtr aBasePtr( NULLPTR ); Int createFlag(0); // // If we should fail in the prescence // of an existing group with the same // identifier we need to indicate that // and insure that there are positive // values for semaphore counts // if( disp == FAIL_IF_EXISTS ) { createFlag = ( IPC_CREAT | IPC_EXCL ); } else if( disp == CREATE_OR_REUSE ) { createFlag = IPC_CREAT; } else { ; // do nothing } anIdentifier = shmget ( aId.getScalar(), aByteSize, createFlag | aRights ); if( anIdentifier == (-1) ) { throw StorageException("Unable to create storage", LOCATION ); } else { // Now we attach it with read and write access aBasePtr = shmat( anIdentifier.getScalar(), 0 , 0 ); if( Long( aBasePtr ) == (-1) ) { throw StorageException("Unable to attach storage", LOCATION ); } else { struct shmid_ds aMemDesc; shmctl( anIdentifier.getScalar(), IPC_STAT, &aMemDesc ); aMPtr = new MemoryStorage( anIdentifier,aMemDesc.shm_segsz, aBasePtr ); theMemoryStorageMap[aMPtr] = NULLPTR; } } return aMPtr; } // Create/open named object MemoryStoragePtr Memory::createStorage ( CharCptr aName, Size aByteSize, CreateDisposition disp, Int aRights, AddressingConstraint addressing ) { Guard myGuard( theMemoryManager.instance()->access() ); MemoryStoragePtr aMPtr( NULLPTR ); MemoryIdentifier anIdentifier(0); VoidPtr aBasePtr( NULLPTR ); Int createFlag(0); CharPtr theName = new Char[NAMEBUFFERSIZE]; memset(theName,0,NAMEBUFFERSIZE); strcpy(theName,tmpName); strcat(theName,aName); // // If we should fail in the prescence // of an existing group with the same // identifier we need to indicate that // and insure that there are positive // values for semaphore counts // if( disp == FAIL_IF_EXISTS ) { createFlag = ( IPC_CREAT | IPC_EXCL ); } else if( disp == CREATE_OR_REUSE ) { createFlag = IPC_CREAT; } else { ; // do nothing } // // In order to insure a valid token, we // need a valid file. We use the creationFlag // to see that we have that, if one doesn't // exist already // if( Environment::setupCommonAccess(theName,disp) == -1 ) { delete [] theName; throw StorageException ( aName, LOCATION ); } else { ; // do nothing } Int tokVal = ftok(theName,'z'); if( tokVal == -1 ) { delete [] theName; throw StorageException ( aName, LOCATION ); } else { ; // do nothing } anIdentifier = shmget ( tokVal, aByteSize, createFlag | aRights ); if( anIdentifier == (-1) ) { delete [] theName; throw StorageException("Unable to create storage", LOCATION ); } else { // Now we attach it with read and write access aBasePtr = shmat( anIdentifier.getScalar(), 0 , 0 ); if( Long( aBasePtr ) == (-1) ) { delete [] theName; throw StorageException("Unable to attach storage", LOCATION ); } else { struct shmid_ds aMemDesc; shmctl( anIdentifier.getScalar(), IPC_STAT, &aMemDesc ); aMPtr = new MemoryStorage( anIdentifier,aMemDesc.shm_segsz, aBasePtr ); theMemoryStorageMap[aMPtr] = theName; } } return aMPtr; } // Factory method destroy void Memory::destroyStorage( MemoryStoragePtr aMPtr ) { //Guard myGuard( theMemoryManager.instance()->access() ); REQUIRE( aMPtr != NULLPTR ); VoidPtr basePointer( aMPtr->getBasePointer() ); REQUIRE( basePointer != NULLPTR ); // // Auto detach // struct shmid_ds aMemDesc; shmctl( MemoryIdentifierCref(*aMPtr).getScalar(), IPC_STAT, &aMemDesc ); if( shmdt( basePointer ) != (-1) ) { // Determine if we should remove now. if( aMemDesc.shm_nattch == 1 ) { shmctl( MemoryIdentifierCref(*aMPtr).getScalar(), IPC_RMID, NULLPTR ); MemoryMapIterator fItr( theMemoryStorageMap.find(aMPtr) ); if( fItr != theMemoryStorageMap.end() ) { Environment::removeCommonAccess( (*fItr).second ); delete (*fItr).second; theMemoryStorageMap.erase( fItr ); delete aMPtr; } else { ; // do nothing } } else { ; // do nothing } } else { throw StorageException("Unable to detach storage", LOCATION ); } } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.6 $ $Date: 2001/04/15 01:09:28 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/CommandFrame.cpp0000664000000000000000000002122307117164274021013 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__COMMANDFRAME_HPP) #include #endif namespace corelinux { // Default constructor CommandFrame::CommandFrame( bool autoReverse ) : Synchronized(), theAutoReverseFlag( autoReverse ), theWorkState( BUILDING ), theCommands() { ; // do nothing, all in the initialization } // Copy constructor CommandFrame::CommandFrame( CommandFrameCref aCommandFrame ) throw( CommandFrameException ) : Synchronized(), theAutoReverseFlag( aCommandFrame.theAutoReverseFlag ), theWorkState( BUILDING ), theCommands() { if( aCommandFrame.getState() == BUILDING || aCommandFrame.getState() == COMPLETED || aCommandFrame.getState() == REVERSED ) { aCommandFrame.getCommands( theCommands ); } else { throw CommandFrameException( LOCATION ); } } // Destructor CommandFrame::~CommandFrame( void ) { theAutoReverseFlag = false; theWorkState = NEVERCOMPLETED; theCommands.clear(); } // Operator assignment CommandFrameRef CommandFrame::operator=( CommandFrameCref aCommandFrame ) throw( CommandFrameException ) { if( this != &aCommandFrame ) { if( this->getState() == BUILDING && ( aCommandFrame.getState() == BUILDING || aCommandFrame.getState() == COMPLETED || aCommandFrame.getState() == REVERSED ) ) { GUARD; theCommands.clear(); aCommandFrame.getCommands( theCommands ); theAutoReverseFlag = aCommandFrame.theAutoReverseFlag; } else { throw CommandFrameException( LOCATION ); } } else { ; // do nothing } return ( *this ); } // Equality bool CommandFrame::operator==( CommandFrameCref aCommandFrame ) const { return ( this == &aCommandFrame ); } // Get the state of the frame WorkState CommandFrame::getState( void ) const { GUARD; return theWorkState; } bool CommandFrame::getReverseFlag( void ) const { return theAutoReverseFlag; } // Get the command list void CommandFrame::getCommands( CommandsRef aCommandList ) const { GUARD; if( aCommandList != theCommands ) { aCommandList = theCommands; } else { ; // do nothing } } // Add a command to the list CommandFrameRef CommandFrame::operator+=( AbstractCommandPtr aCommand ) throw( CommandFrameException ) { GUARD; if( aCommand != NULLPTR ) { theCommands.push_back( aCommand ); } else { throw CommandFrameException( LOCATION ); } return ( *this ); } // Appends the commands from the other list CommandFrameRef CommandFrame::operator+=( CommandFrameCref aCommandFrame ) throw( CommandFrameException ) { if( this != &aCommandFrame ) { GUARD; Commands temp; aCommandFrame.getCommands( temp ); for( Dword x = 0; x < temp.size(); ++x ) { theCommands.push_back( temp[x] ); } } else { ; // do nothing } return ( *this ); } // Add a command to the list void CommandFrame::addCommand( AbstractCommandPtr aCommand ) throw( CommandFrameException ) { GUARD; if( aCommand != NULLPTR ) { theCommands.push_back( aCommand ); } else { throw CommandFrameException( LOCATION ); } } // Set the autoreverse flag void CommandFrame::setAutoReverse( bool autoReverse ) throw( CommandFrameException ) { GUARD; if( theWorkState != BUILDING ) { throw CommandFrameException( LOCATION ); } else { theAutoReverseFlag = autoReverse; } } // execute void CommandFrame::execute( void ) throw( CommandFrameException ) { GUARD; if( theWorkState == BUILDING ) { theWorkState = EXECUTING; try { theWorkState = executeCommands(); } catch( CommandFrameException aExcp ) { theWorkState = NEVERCOMPLETED; throw ; } catch( ExceptionRef aExcp ) { theWorkState = NEVERCOMPLETED; aExcp.addUnwindInfo( "CommandFrame::execute Exception handler" ); throw ; } catch( ... ) { theWorkState = NEVERCOMPLETED; throw CommandFrameException("Unhandled exception received",LOCATION); } } else { throw CommandFrameException( LOCATION ); } } // execute reverse void CommandFrame::executeReverse( void ) throw( CommandFrameException ) { GUARD; if( theWorkState == COMPLETED ) { theWorkState = REVERSING; try { theWorkState = executeReverseCommands(); } catch( CommandFrameException aExcp ) { theWorkState = NEVERCOMPLETED; throw ; } catch( ExceptionRef aExcp ) { theWorkState = NEVERCOMPLETED; aExcp.addUnwindInfo( "CommandFrame::executeReverse Exception handler" ); throw ; } catch( ... ) { theWorkState = NEVERCOMPLETED; throw CommandFrameException("Unhandled exception received",LOCATION); } } else { throw CommandFrameException( LOCATION ); } } // Do the default work WorkState CommandFrame::executeCommands( void ) { bool runException( false ); Int lastValidPosition( 0 ); Int maxPosition( theCommands.size() ); WorkState aState( COMPLETED ); // // Attempt to run through the commands // for( lastValidPosition = 0; ( lastValidPosition < maxPosition) && (runException == false) ; ++lastValidPosition ) { try { AbstractCommandPtr aCommand( theCommands[lastValidPosition] ); aCommand->execute(); } // // If we get an exception for any reason set our indicator // catch( ExceptionRef aExcp ) { runException = true; } catch( ... ) { runException = true; } // // If we need to get out, first check for reverse and if set // execute the completed commands reverses until we get back // to a valid state // if( runException == true ) { if( this->getReverseFlag() == true ) { for(--lastValidPosition ; lastValidPosition >= 0; --lastValidPosition ) { theCommands[lastValidPosition]->executeReverse(); } aState = REVERSED; } else { throw CommandFrameException( LOCATION ); } } else { ; // do nothing, keep executing } } return aState; } // Do the default reverse WorkState CommandFrame::executeReverseCommands( void ) { Int maxPosition( theCommands.size() - 1 ); for( ; maxPosition >= 0; --maxPosition ) { theCommands[maxPosition]->executeReverse(); } return REVERSED; } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.3 $ $Date: 2000/06/06 12:04:12 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/Context.cpp0000664000000000000000000000504107110412612020067 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__CONTEXT_HPP) #include #endif #if !defined(__STATE_HPP) #include #endif namespace corelinux { // Default constructor Context::Context( void ) : theState( NULLPTR ) { ; // do nothing } // Copy constructor Context::Context( ContextCref aContext ) : theState( aContext.getState() ) { ; // do nothing } // Destructor Context::~Context( void ) { setState( NULLPTR ); } // Assignment operator ContextRef Context::operator=( ContextCref aContext ) { if( *this == aContext ) { ; // do nothing } else { setState( aContext.getState() ); } return (*this); } // Equality operator bool Context::operator==( ContextCref aContext ) const { return ( this == &aContext ); } // Request the context operation involving the state void Context::request( void ) throw ( NullPointerException ) { if( theState != NULLPTR ) { theState->handle(); } else { throw NullPointerException( LOCATION ); } } // Change the state of the context void Context::changeState( StatePtr aState ) { setState( aState ); } // Retrieve the state pointer StatePtr Context::getState( void ) const { return theState; } // Set the state pointer void Context::setState( StatePtr aState ) { theState = aState; } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/05/17 03:44:10 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/Command.cpp0000664000000000000000000000504207103721754020036 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__COMMAND_HPP) #include #endif namespace corelinux { // Default constructor Command::Command( void ) : AbstractCommand(), theReverseCommand( NULLPTR ) { ; // do nothing } // Copy constructor Command::Command( CommandCref aCommand ) : AbstractCommand( aCommand ), theReverseCommand( aCommand.getReverseCommand() ) { ; // do nothing } // Initializing constructor Command::Command( AbstractCommandPtr aReverseCommand ) : AbstractCommand(), theReverseCommand( aReverseCommand ) { ; // do nothing } // Destructor Command::~Command( void ) { ; // do nothing } // Assignment operator CommandRef Command::operator=( CommandCref ) { return (*this); } // Equality operator bool Command::operator==( CommandCref aCommand ) const { return ( this == &aCommand ); } // Get the reverse command AbstractCommandPtr Command::getReverseCommand( void ) const { return theReverseCommand; } // Set the reverse command void Command::setReverseCommand( AbstractCommandPtr aReverseCommand ) { GUARD; theReverseCommand = aReverseCommand; } // Execute the reverse command void Command::executeReverse( void ) { GUARD; if( theReverseCommand != NULLPTR ) { theReverseCommand->execute(); } else { ; // do nothing } } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/05/03 03:58:36 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/GatewaySemaphoreGroup.cpp0000664000000000000000000003140707116552500022741 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__GATEWAYSEMAPHOREGROUP_HPP) #include #endif #if !defined(__GATEWAYSEMAPHORE_HPP) #include #endif namespace corelinux { const Count DEFAULT_COUNT(2); static SemaphoreIdentifier findAny(-1); // // Basic group constructor with access rights specified // GatewaySemaphoreGroup::GatewaySemaphoreGroup( Short aSemCount, Int aRightSet ) throw(Assertion,SemaphoreException) : SemaphoreGroup( aSemCount, aRightSet ), theUsedMap( ) { ; // do nothing } // // Constructor where the identifier has been formed already // GatewaySemaphoreGroup::GatewaySemaphoreGroup ( Short aSemCount, SemaphoreGroupIdentifierCref aGID , Int aRightSet, CreateDisposition disp ) throw(Assertion,SemaphoreException) : SemaphoreGroup( aSemCount, aGID, aRightSet, disp ), theUsedMap() { ; // do nothing } // // Constructor to form a group // GatewaySemaphoreGroup::GatewaySemaphoreGroup ( Short aSemCount, CharCptr aName, Int aRightSet, CreateDisposition disp ) throw(Assertion,SemaphoreException) : SemaphoreGroup( aSemCount+1, aName, aRightSet, disp ), theUsedMap() { ; } // // Destructor // GatewaySemaphoreGroup::~GatewaySemaphoreGroup( void ) { SemaphoreSharesIterator begin( theUsedMap.begin() ); SemaphoreSharesIterator end( theUsedMap.end() ); // For each semaphore lingering for( ; begin != end; ++begin ) { // For each reference not returned for( Int x = 0; x < (*begin).second.theCount; ++x ) { SemaphoreCommon::relinquishSemaphore(this,(*begin).first); } // If there was one there, delete it if( (*begin).second.theCount ) { ::delete (*begin).second.theSem; } else { ; // do nothing } } theUsedMap.clear(); } // // Creates a default semaphore // AbstractSemaphorePtr GatewaySemaphoreGroup::createSemaphore( void ) throw( SemaphoreException ) { return (this->resolveSemaphore(findAny,-1,FAIL_IF_EXISTS,false,false,DEFAULT_COUNT)); } // // Creates a default GatewaySemaphore with count // AbstractSemaphorePtr GatewaySemaphoreGroup::createCountSemaphore( Count aCount ) throw( SemaphoreException ) { REQUIRE( aCount >= DEFAULT_COUNT ); return (this->resolveSemaphore(findAny,-1,FAIL_IF_EXISTS,false,false,aCount)); } // // Creates, or opens, a specific semaphore in the // group // AbstractSemaphorePtr GatewaySemaphoreGroup::createSemaphore ( SemaphoreIdentifierRef aIdentifier, CreateDisposition disp, bool Recursive, bool Balking ) throw( SemaphoreException ) { Short aSid( aIdentifier.getScalar() ); if( aSid < 0 || aSid > getSemaphoreCount() ) { throw SemaphoreException ( "Invalid Semaphore identifier", LOCATION, Exception::CONTINUABLE ); } else { ; // do nothing } return (this->resolveSemaphore(aIdentifier,aSid,disp,Recursive,Balking,DEFAULT_COUNT)); } // // Creates, or opens, a specific semaphore in the // group and initialize the count // AbstractSemaphorePtr GatewaySemaphoreGroup::createCountSemaphore ( SemaphoreIdentifierRef aIdentifier, Count aCount, CreateDisposition disp, bool Recursive, bool Balking ) throw( SemaphoreException ) { Short aSid( aIdentifier.getScalar() ); if( aSid < 0 || aSid > getSemaphoreCount() ) { throw SemaphoreException ( "Invalid Semaphore identifier", LOCATION, Exception::CONTINUABLE ); } else { ; // do nothing } ENSURE( aCount >= DEFAULT_COUNT ); return (this->resolveSemaphore(aIdentifier,aSid,disp,Recursive,Balking,aCount)); } // // Creates or opens a specific named semaphore in the // group (not implemented) // AbstractSemaphorePtr GatewaySemaphoreGroup::createSemaphore ( std::string aName, CreateDisposition disp, bool Recursive, bool Balking ) throw( SemaphoreException ) { AbstractSemaphorePtr aSem(NULLPTR); throw SemaphoreException ( "Semaphore does not exist", LOCATION ); return aSem; } // // Destroy the semaphore // void GatewaySemaphoreGroup::destroySemaphore( AbstractSemaphorePtr aPtr ) throw( SemaphoreException ) { REQUIRE( aPtr != NULLPTR ); GUARD; // // Insure that we are in the same arena // if( aPtr->getGroupIdentifier() == getIdentifier() ) { // // Get the index, because thats what identifiers are, // and check before whacking space. // Index idx( aPtr->getIdentifier().getScalar() ); SemaphoreSharesIterator aFItr( theUsedMap.find(idx) ); if( aFItr != theUsedMap.end() ) { SemaphoreCommon::relinquishSemaphore(this,idx); (*aFItr).second.theCount -= 1; theUsedMap[idx].theCount -= 1; if( (*aFItr).second.theCount == 0 ) { theUsedMap.erase(aFItr); ::delete aPtr; } else { ; // not yet } } else { ; // double delete exception MAYBE!!! } } else { throw SemaphoreException ( "Semaphore not part of group", LOCATION ); } } // // This is where the work belongs // AbstractSemaphorePtr GatewaySemaphoreGroup::resolveSemaphore ( SemaphoreIdentifierRef aIdentifier, Short aSemId, CreateDisposition aDisp, bool aRecurse, bool aBalk, Count aCount ) throw( SemaphoreException ) { Guard localGuard(this->access()); // // Setup for operating in CSA or local // Int aRec(aRecurse); Int aBlk(aBalk); Int aMaxValue(aCount); Int aCmnRet(0); GatewaySemaphorePtr aSemPtr( NULLPTR ); SemaphoreReference aLocalShare = {0,NULLPTR}; // // Let the CSA and our group decide behavior // aCmnRet = SemaphoreCommon::obtainSemaphore ( this, aSemId, aMaxValue, aRec, aBlk, ( aDisp == FAIL_IF_EXISTS ? 0 : ( aDisp == FAIL_IF_NOTEXISTS ? 2 :1 ) ) ); // If the CSA has resolved it if( aCmnRet >= 0 ) { // If we don't already have it, create it, otherwise // reuse the local instance SemaphoreSharesIterator aFItr( theUsedMap.find(aCmnRet) ); if( aFItr == theUsedMap.end() ) { aSemPtr = ::new GatewaySemaphore ( this, aIdentifier, aMaxValue, aRec, aBlk ); aLocalShare.theCount = 1; aLocalShare.theSem = AbstractSemaphorePtr(aSemPtr); theUsedMap[aCmnRet] = aLocalShare; } else { (*aFItr).second.theCount += 1; aSemPtr = GatewaySemaphorePtr(SemaphorePtr((*aFItr).second.theSem)); } } // Either we are in local mode, or there was an error in // constraints from the CSA else { SemaphoreException exists("Semaphore exists exception",LOCATION); SemaphoreException notexists("Semaphore does not exist",LOCATION); if( aCmnRet == -1 ) { // If a specific one is being looked for if( aSemId >= 0 ) { SemaphoreSharesIterator aFItr( theUsedMap.find(aSemId) ); // // If we find it // if( aFItr != theUsedMap.end() ) { // // And the caller needs a unique instance // if( aDisp == FAIL_IF_EXISTS ) { throw exists; } else { (*aFItr).second.theCount += 1; aSemPtr = GatewaySemaphorePtr(SemaphorePtr((*aFItr).second.theSem)); } } // // If we need to create it // else { // // And the user doesn't expect it to // exist // if( aDisp != FAIL_IF_NOTEXISTS ) { aSemPtr = ::new GatewaySemaphore ( this, aIdentifier, aMaxValue, aRec, aBlk ); aLocalShare.theCount = 1; aLocalShare.theSem = AbstractSemaphorePtr(aSemPtr); theUsedMap[aSemId] = aLocalShare; } else { throw notexists; } } } // Otherwise, give what we can get else { Index maxCnt(this->getSemaphoreCount()); for( Index x = 0; x < maxCnt; ++x ) { if( theUsedMap.find(x) == theUsedMap.end() ) { aSemPtr = ::new GatewaySemaphore ( this, aIdentifier, aMaxValue, aRec, aBlk ); aLocalShare.theCount = 1; aLocalShare.theSem = AbstractSemaphorePtr(aSemPtr); theUsedMap[aSemId] = aLocalShare; x = maxCnt; } else { ; // do nothing } } if( aSemPtr == NULLPTR ) { throw notexists; } else { ; // do nothing } } } // // Failure to resolve in the CSA // else { if( aDisp == FAIL_IF_EXISTS ) { throw exists; } else { throw notexists; } } } return AbstractSemaphorePtr(aSemPtr); } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.4 $ $Date: 2000/06/04 22:16:32 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/GatewaySemaphore.cpp0000664000000000000000000002733607116073261021734 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__GATEWAYSEMAPHORE_HPP) #include #endif #include namespace corelinux { // // Default constructor not allowed // GatewaySemaphore::GatewaySemaphore( void ) throw(Assertion) : Semaphore(), theMaxCount(0) { NEVER_GET_HERE; } // // Copy constructor not allowed // GatewaySemaphore::GatewaySemaphore( GatewaySemaphoreCref ) throw( Assertion ) : Semaphore(), theMaxCount(0) { NEVER_GET_HERE; } // // Default Constructor // GatewaySemaphore::GatewaySemaphore ( SemaphoreGroupPtr aGroup, SemaphoreIdentifierRef aIdentifier, Count aValue, bool aRecursionFlag, bool aBalkingFlag ) throw (NullPointerException) : Semaphore(aGroup,aIdentifier,aRecursionFlag,aBalkingFlag), theMaxCount(aValue) { REQUIRE( theMaxCount > 0 ); setValue(theMaxCount); theClients.clear(); } // // Destructor // GatewaySemaphore::~GatewaySemaphore( void ) { theClients.clear(); } // // Returns true if lock value == 0 // bool GatewaySemaphore::isLocked( void ) { return ( theClients.size() == theMaxCount ); } // // Determines if thread owns one of the // resources of this Gateway // bool GatewaySemaphore::isAnOwner( void ) { bool isOwner( false ); GUARD; if( theClients.size() != 0 && ( theClients.find( Thread::getThreadIdentifier() ) != theClients.end() ) ) { isOwner = true; } else { ; // do nothing } return isOwner; } // // Gets the recursion depth for the calling // thread. If recursion is disabled, this means the // count of entries into the resources, otherwise // it means recursion // Counter GatewaySemaphore::getOwnerRecursionQueueLength( void ) { Counter aCount(-1); if( this->isAnOwner() == true ) { GUARD; aCount = (*(theClients.find(Thread::getThreadIdentifier()))).second; } else { ; // do nothing } return aCount; } // // Call for lock with wait disposition // SemaphoreOperationStatus GatewaySemaphore::lockWithWait( void ) throw(SemaphoreException) { Guard myGuard(this->access()); SemaphoreOperationStatus aStatus( SUCCESS ); ThreadIdentifier aTid( Thread::getThreadIdentifier() ); bool recurs( Semaphore::isRecursionEnabled() ); // // If there is resource available // if( theClients.size() < theMaxCount && AbstractSemaphore::getValue() != 0 ) { // If first take the quick route if( recurs == false || theClients.size() == 0 ) { myGuard.release(); aStatus = this->lockAndAdd(aTid); } // If not first, but potential for recursion exists else { GatewayClientIterator aGItr( theClients.find(aTid) ); // if we exist, then just bump the counter if( aGItr != theClients.end() ) { (*aGItr).second++; // if we are the last owner if( aTid == getOwnerId() ) { ++(*this); } else { ; // do nothing } } // // we don't exist, so lock // else { myGuard.release(); aStatus = this->lockAndAdd(aTid); } } } // // Here we are out of resources // else { GatewayClientIterator aGItr( theClients.find(aTid) ); // If we are recursive, and we are in the set already if( recurs == true ) { if( aGItr != theClients.end() ) { (*aGItr).second++; // if we are the last owner if( aTid == getOwnerId() ) { ++(*this); } else { ; // do nothing } } // not in set, check balking or wait else { if( Semaphore::isBalkingEnabled() == true ) { aStatus = BALKED; } else { myGuard.release(); aStatus = this->lockAndAdd( aTid ); } } } // Full house, recursion disabled, check balking, // or wait else { if( Semaphore::isBalkingEnabled() == true ) { aStatus = BALKED; } else { myGuard.release(); aStatus = this->lockAndAdd( aTid ); } } } return aStatus; } // // Call for lock without waiting // SemaphoreOperationStatus GatewaySemaphore::lockWithNoWait( void ) throw(SemaphoreException) { Guard myGuard(this->access()); SemaphoreOperationStatus aStatus( SUCCESS ); ThreadIdentifier aTid( Thread::getThreadIdentifier() ); bool recurs( Semaphore::isRecursionEnabled() ); // // If there is resource available // if( theClients.size() < theMaxCount && AbstractSemaphore::getValue() != 0 ) { // If first take the quick route if( recurs == false || theClients.size() == 0 ) { myGuard.release(); aStatus = this->lockAndAdd(aTid); } // If not first, but potential for recursion exists else { GatewayClientIterator aGItr( theClients.find(aTid) ); // if we exist, then just bump the counter if( aGItr != theClients.end() ) { (*aGItr).second++; // if we are the last owner if( aTid == getOwnerId() ) { ++(*this); } else { ; // do nothing } } // // we don't exist, so lock // else { myGuard.release(); aStatus = this->lockAndAdd(aTid); } } } // // Here we are fresh out of resources // else { GatewayClientIterator aGItr( theClients.find(aTid) ); // If we are recursive, and we are in the set already if( recurs == true ) { if( aGItr != theClients.end() ) { (*aGItr).second++; // if we are the last owner if( aTid == getOwnerId() ) { ++(*this); } else { ; // do nothing } } // not in set, check balking or wait else { if( Semaphore::isBalkingEnabled() == true ) { aStatus = BALKED; } else { myGuard.release(); aStatus = this->lockAndAdd( aTid, IPC_NOWAIT ); } } } // Full house, recursion disabled, check balking, // or wait else { if( Semaphore::isBalkingEnabled() == true ) { aStatus = BALKED; } else { myGuard.release(); aStatus = this->lockAndAdd( aTid, IPC_NOWAIT ); } } } return aStatus; } // // Call release for lock // SemaphoreOperationStatus GatewaySemaphore::release( void ) throw( SemaphoreException ) { GUARD; SemaphoreOperationStatus aStatus( SUCCESS ); ThreadIdentifier aTid( Thread::getThreadIdentifier() ); GatewayClientIterator aGItr( theClients.find(aTid) ); if( aGItr != theClients.end() ) { Count aC = (*aGItr).second; // // If we are at the last, or we are not recursive if // we are not at the last, we need to release a // resource // if( aC == 1 || Semaphore::isRecursionEnabled() == false ) { if( ( aStatus = AbstractSemaphore::setUnlock( IPC_NOWAIT ) ) == SUCCESS ) { if( aTid == getOwnerId() ) { Semaphore::resetOwnerId(); } else { ; // do nothing } if( aC == 1 ) { theClients.erase(aGItr); } else { (*aGItr).second--; } } else { ; // do nothing, let error return } } // // We are here because we have more than one length // and recursion is true // else { (*aGItr).second--; } } else { aStatus = UNAVAILABLE; } return aStatus; } // // Basic lock function // SemaphoreOperationStatus GatewaySemaphore::lockAndAdd ( ThreadIdentifierRef aTid, Int aFlag ) { SemaphoreOperationStatus aStatus( SUCCESS ); // // Wait on the semaphore or not, depending on // flag // if( (aStatus = AbstractSemaphore::setLock( aFlag ) ) == SUCCESS ) { // If we are the last and not the same if( aTid != getOwnerId() ) { Semaphore::setRecursionQueueLength(0); } else { ; // do nothing } Semaphore::setOwnerId(); // // If we exist then increment the number of resources // GatewayClientIterator aGItr( theClients.find(aTid) ); if( aGItr != theClients.end() ) { (*aGItr).second++; } // // Otherwise put us in the running // else { theClients[aTid] = 1; } } else { ; // do nothing } return aStatus; } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.5 $ $Date: 2000/06/03 03:08:33 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/SemaphoreException.cpp0000664000000000000000000000560007057107241022257 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__SEMAPHOREEXCEPTION_HPP) #include #endif namespace corelinux { // // Default public constructor // SemaphoreException::SemaphoreException ( CharCptr file, LineNum line, Severity severity, bool outOfMemory, Int errNum ) : Exception("SemaphoreException",file,line,severity,outOfMemory), theErrorNumberFromKernel( errNum ) { ; // do nothing } // // Implementation protected constructor // SemaphoreException::SemaphoreException ( CharCptr why, CharCptr file, LineNum line, Severity severity, bool outOfMemory, Int errNum ) : Exception(why,file,line,severity,outOfMemory), theErrorNumberFromKernel( errNum ) { ; // do nothing } // // Default protected constructor // SemaphoreException::SemaphoreException( void ) : Exception() { NEVER_GET_HERE; } // // Copy constructor // SemaphoreException::SemaphoreException( SemaphoreExceptionCref aRef ) : Exception( aRef ) { ; // do nothing } // // Destructor // SemaphoreException::~SemaphoreException( void ) { ; // do nothing } // // Assignment operator // SemaphoreExceptionRef SemaphoreException::operator= ( SemaphoreExceptionCref aRef ) { Exception::operator=( aRef ); return (*this); } // // Equality operator // bool SemaphoreException::operator==( SemaphoreExceptionCref aRef ) const { return (this == &aRef); } // // Retrieve the kernel error // IntCref SemaphoreException::getErrNum( void ) const { return theErrorNumberFromKernel; } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/03/01 03:29:37 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/Assertion.cpp0000664000000000000000000000507707022071765020437 0ustar /* CoreLinux++ Copyright (C) 1999 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif namespace corelinux { // // Methods which are called to provide debug assistance // Long assertionFailed( AssertionCref aAssertion ) { throw aAssertion; return 0; } void assertLoopDebugFunction( void ) { return; } // // Default constructor which passes through // to exception and preserves the type assertion // Assertion::Assertion ( Assertion::Type aType, CharPtr aReason, CharPtr aFile, LineNum aLine ) : Exception(aReason,aFile,aLine,Exception::PROCESSTERMINATE), theType( aType ) { ; // do nothing } // // Copy constructor // Assertion::Assertion(AssertionCref rAssertion) : Exception(rAssertion), theType( rAssertion.getType() ) { ; // do nothing } // // Destructor // Assertion::~Assertion( void ) { ; // do nothing } // // Assignment operator // AssertionRef Assertion::operator=( AssertionCref aAssertion ) { if( this != &aAssertion ) { IGNORE_RETURN Exception::operator=( aAssertion ); theType = aAssertion.getType(); } else { ; // do nothing } return *this; } // // Retrieve the assertion type // Assertion::Type Assertion::getType( void ) const { return theType; } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 1999/12/04 01:52:53 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/Flyweight.cpp0000664000000000000000000000331407046207410020414 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__FLYWEIGHT_HPP) #include #endif namespace corelinux { // // Default constructor // Flyweight::Flyweight( void ) { ; // do nothing } // // Copy constructor // Flyweight::Flyweight( FlyweightCref ) { ; // do nothing } // // Destructor // Flyweight::~Flyweight( void ) { ; // do nothing } // // Assignment operator // FlyweightRef Flyweight::operator=( FlyweightCref ) { return ( *this ); } // // Equality operator // bool Flyweight::operator==( FlyweightCref aRef ) const { return ( this == &aRef ); } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/02/03 05:15:52 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/Synchronized.cpp0000664000000000000000000000611407117164274021143 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__SYNCHRONIZED_HPP) #include #endif #if !defined(__CORELINUXGUARDPOOL_HPP) #include #endif namespace corelinux { // // Default constructor // Synchronized::Synchronized( void ) { ; // do nothing } // // Copy constructor // Synchronized::Synchronized( SynchronizedCref ) { ; // do nothing } // // Virtual Destructor // Synchronized::~Synchronized( void ) { ; // do nothing } // // Operator assignment // SynchronizedRef Synchronized::operator=( SynchronizedCref ) { return ( *this ); } // // Equality operator // bool Synchronized::operator==( SynchronizedCref aSynch ) const { return ( this == &aSynch ); } // // The reason for living // Synchronized::Guard Synchronized::access( void ) const throw(SemaphoreException) { Guard aGuard((SynchronizedPtr)this); return aGuard; } // // Default Guard Constructor // Synchronized::Guard::Guard( void ) : theSynchronized( NULLPTR ) { } // // Default Guard call // Synchronized::Guard::Guard( SynchronizedPtr aSynchPtr ) : theSynchronized( aSynchPtr ) { CoreLinuxGuardPool::lock( theSynchronized ); } // // Copy constructor // Synchronized::Guard::Guard( GuardCref aGuard ) : theSynchronized( aGuard.theSynchronized ) { aGuard.theSynchronized = NULLPTR; } // // Assignment operator never called // Synchronized::GuardRef Synchronized::Guard::operator= ( GuardCref ) { return (*this); } // // Destructor // Synchronized::Guard::~Guard( void ) { this->release(); } void Synchronized::Guard::release( void ) { if( theSynchronized != NULLPTR ) { CoreLinuxGuardPool::release( theSynchronized ); theSynchronized = NULLPTR; } else { ; // do nothing } } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.4 $ $Date: 2000/06/06 12:04:12 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/AbstractSemaphore.cpp0000664000000000000000000001170407156360551022073 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__SCALARIDENTIFIERS_HPP) #include // Various identifiers #endif #if !defined(__ABSTRACTSEMAPHORE_HPP) #include #endif #if !defined(__SEMAPHOREGROUP_HPP) #include #endif #if !defined(__SEMAPHORECOMMON_HPP) #include #endif extern "C" { #include #include } #ifdef _SEM_SEMUN_UNDEFINED union semun { int val; struct semid_ds *buf; unsigned short int *array; struct seminfo *__buf; }; #endif namespace corelinux { // // Default constructor // AbstractSemaphore::AbstractSemaphore ( SemaphoreGroupPtr aGroup, SemaphoreIdentifierRef aSemId ) throw ( NullPointerException ) : Synchronized(), theGroup( aGroup ), theSemIdentifier( aSemId ) { if( theGroup == NULLPTR ) { throw NullPointerException(LOCATION); } else { SemaphoreGroupIdentifier aId( aGroup->getIdentifier() ); theGroupIdentifier = (Int) aId; } } // // Copy constructor not allowed // AbstractSemaphore::AbstractSemaphore( AbstractSemaphoreCref ) throw(Assertion) : Synchronized() { NEVER_GET_HERE; } // // Virtual Destructor // AbstractSemaphore::~AbstractSemaphore( void ) { ; // do nothing } // Get the group identifier SemaphoreGroupIdentifierCref AbstractSemaphore::getGroupIdentifier( void ) const { return theGroup->getIdentifier(); } SemaphoreIdentifierCref AbstractSemaphore::getIdentifier( void ) const { return theSemIdentifier; } // Get the initial value for the semaphore if we can Int AbstractSemaphore::getInitialValue( void ) { return SemaphoreCommon::getSemaphoreMaxValue( theGroup, getId() ); } // // Retrieve the current value for the semaphore, this // can always be returned without checking shared status // Int AbstractSemaphore::getValue( void ) { union semun aSemun; aSemun.val = 0; return semctl( getGroupId(), getId().getScalar(), GETVAL, aSemun); } // // Use by derivations to attempt control at zero. Here we // must pass through the common area to insure we are // updating csa // SemaphoreOperationStatus AbstractSemaphore::setLock( Int aFlag ) { int ks( SemaphoreCommon::setLock ( theGroup, getGroupId(), getId(), aFlag ) ); return (SemaphoreOperationStatus) ( ks < 0 ? ( Thread::getKernelError() == EAGAIN ? UNAVAILABLE : ks ) : ks ); } // // Use by derivations to release control. As with lock and setValue, we // pass through to common access // SemaphoreOperationStatus AbstractSemaphore::setUnlock( Int aFlag ) { return (SemaphoreOperationStatus) SemaphoreCommon::setUnLock ( theGroup, getGroupId(), getId(), aFlag ); } // // Use by derivations to release control. As with lock and setValue, we // pass through to common access // SemaphoreOperationStatus AbstractSemaphore::waitZero( Int aFlag ) { return (SemaphoreOperationStatus) SemaphoreCommon::waitZero ( theGroup, getGroupId(), getId(), aFlag ); } // // Sets the value of the semaphore // SemaphoreOperationStatus AbstractSemaphore::setValue( Int aValue ) { return (SemaphoreOperationStatus) SemaphoreCommon::setMaxValue ( theGroup, getId(), aValue ); } } /* Common rcs information do not modify $Author: dulimart $ $Revision: 1.7 $ $Date: 2000/09/09 07:06:17 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/Mediator.cpp0000664000000000000000000000430707105163367020231 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__MEDIATOR_HPP) #include #endif #if !defined(__COLLEAGUE_HPP) #include #endif namespace corelinux { // Default constructor Mediator::Mediator( void ) { ; // do nothing } // Copy constructor Mediator::Mediator( MediatorCref ) { ; // do nothing } // Destructor Mediator::~Mediator( void ) { ; // do nothing } // Assignment operator MediatorRef Mediator::operator=( MediatorCref ) { return (*this); } // Equality operator bool Mediator::operator ==( MediatorCref aMediator ) const { return ( this == &aMediator ); } // Action routine void Mediator::action( Event * aEvent ) throw ( NullPointerException ) { if( aEvent != NULLPTR ) { Iterator *aItr = this->createIterator( aEvent ); while( aItr->isValid() ) { aItr->getElement()->action( aEvent ); aItr->setNext(); } this->destroyIterator( aItr ); } else { throw NullPointerException( LOCATION ); } } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/05/07 03:45:59 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/InvalidIteratorException.cpp0000664000000000000000000000470507040743437023446 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__INVALIDITERATOREXCEPTION_HPP) #include #endif namespace corelinux { // // Default public constructor // InvalidIteratorException::InvalidIteratorException ( CharCptr file, LineNum line, Severity severity, bool outOfMemory ) : IteratorException("InvalidIteratorException",file,line,severity,outOfMemory) { ; // do nothing } // // Default protected constructor // InvalidIteratorException::InvalidIteratorException( void ) : IteratorException() { NEVER_GET_HERE; } // // Copy constructor // InvalidIteratorException::InvalidIteratorException ( InvalidIteratorExceptionCref aRef ) : IteratorException( aRef ) { ; // do nothing } // // Destructor // InvalidIteratorException::~InvalidIteratorException( void ) { ; // do nothing } // // Assignment operator // InvalidIteratorExceptionRef InvalidIteratorException::operator= ( InvalidIteratorExceptionCref aRef ) { IteratorException::operator=( aRef ); return (*this); } // // Equality operator // bool InvalidIteratorException::operator== ( InvalidIteratorExceptionCref aRef ) const { return (this == &aRef); } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/01/18 01:51:27 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/CompositeException.cpp0000664000000000000000000000514107041753001022270 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__COMPOSITEEXCEPTION_HPP) #include #endif namespace corelinux { // // Default public constructor // CompositeException::CompositeException ( CharCptr file, LineNum line, Severity severity, bool outOfMemory ) : Exception("CompositeException",file,line,severity,outOfMemory) { ; // do nothing } // // Implementation protected constructor // CompositeException::CompositeException ( CharCptr why, CharCptr file, LineNum line, Severity severity, bool outOfMemory ) : Exception(why,file,line,severity,outOfMemory) { ; // do nothing } // // Default protected constructor // CompositeException::CompositeException( void ) : Exception() { NEVER_GET_HERE; } // // Copy constructor // CompositeException::CompositeException( CompositeExceptionCref aRef ) : Exception( aRef ) { ; // do nothing } // // Destructor // CompositeException::~CompositeException( void ) { ; // do nothing } // // Assignment operator // CompositeExceptionRef CompositeException::operator= ( CompositeExceptionCref aRef ) { Exception::operator=( aRef ); return (*this); } // // Equality operator // bool CompositeException::operator==( CompositeExceptionCref aRef ) const { return (this == &aRef); } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/01/21 03:44:01 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/SemaphoreCommon.cpp0000664000000000000000000006701507204045750021561 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__SEMAPHORECOMMON_HPP) #include #endif #if !defined(__MEMORY_HPP) #include #endif #if !defined(__MEMORYSTORAGE_HPP) #include #endif #if !defined(__MUTEXSEMAPHOREGROUP_HPP) #include #endif extern "C" { #include #include #include #include } static const char *ourIdBase = "clsemcsa"; static const char *ourId = "/tmp/clsemcsa"; static const char *ourMemId = "clsemcsa.csa"; static const Int POOLSIZE(4096); static const Int TOTALAVAILABLESLOTS(255); static const Int TEMPBUFFSIZE(128); static const Short COMMONSEMCOUNT(1); static const Int ON(1); static const Int OFF(0); static const Int MUST_NOTEXIST(0); static const Int MUST_SHARE(1); static const Int MUST_EXIST(2); static const Int SEMPHORE_UNAVAILABLE(-2); namespace corelinux { // // Macro for resolving the control semaphore // #define GETCNTLSEM( aSem, aGrp, aOffset ) \ (aSem) = (CSASemHeaderPtr)(aGrp); \ (aSem) += (aOffset) // // Lock control // #define LOCKSEM( aGid, aId , aSem ) \ struct sembuf aSem ## sem_lock={ (aId)-1, -1, 0 }; \ semop( (aGid), &aSem ## sem_lock,1); \ (aSem)->semOwner = (Int) Thread::getThreadIdentifier() // // Unlock control // #define UNLOCKSEM(aGid, aId, aSem ) \ (aSem)->semOwner = 0; \ struct sembuf aSem ## sem_unlock={ (aId)-1, 1, IPC_NOWAIT}; \ semop( (aGid),&aSem ## sem_unlock,1) SemaphoreCommonPtr SemaphoreCommon::theInstance( NULLPTR ); SemaphoreGroupPtr SemaphoreCommon::theControlGroup( NULLPTR ); bool SemaphoreCommon::theInitializeFlag(false); // // Constructor // SemaphoreCommon::SemaphoreCommon( void ) : Synchronized(), theCSA(NULLPTR), theBase(NULLPTR), theOriginator(false) { theInitializeFlag = true; // // If the csa doesn't exist yet for our address space, // we create it and do some discovery or setting // theCSA = Memory::createStorage ( ourMemId, POOLSIZE, CREATE_OR_REUSE, OWNER_ALL | GROUP_ALL | PUBLIC_ALL ); // Map the relevant locations theBase = CSAHeaderPtr( *theCSA ); // // Setup for control // CSAGrpHeaderPtr aGrpPtr( (CSAGrpHeaderPtr)theBase ); char myTokenizer[TEMPBUFFSIZE]; ThreadIdentifier aId( Thread::getThreadIdentifier() ); CSASemHeaderPtr aSemPtr( NULLPTR ); strcpy(myTokenizer,ourIdBase); ++aGrpPtr; // // If we are the founder // if( theBase->creatorId == 0 ) { theBase->creatorId = (Int)aId; theBase->currentUsed = 0; theBase->currentGrps = 0; theOriginator = true; sprintf(&myTokenizer[strlen(myTokenizer)],".%d",theBase->creatorId); theControlGroup = new MutexSemaphoreGroup ( COMMONSEMCOUNT, myTokenizer, OWNER_ALL|GROUP_ALL|PUBLIC_ALL, FAIL_IF_EXISTS ); // Setup the group identifier SemaphoreGroupIdentifier aGident(theControlGroup->getIdentifier()); Int aGid( (Int) aGident ); // First entry information theBase->currentGrps = 1; aGrpPtr->groupSemCount = theBase->currentUsed = theControlGroup->getSemaphoreCount(); aGrpPtr->groupInfo = aGid; aGrpPtr->groupShares = 1; // Setup the control semaphore GETCNTLSEM(aSemPtr,aGrpPtr,aGrpPtr->groupSemCount); aSemPtr->maxSemValue = -1; aSemPtr->isRecursive = OFF; aSemPtr->isBalking = OFF; aSemPtr->semShares = 1; semctl( aGid, aGrpPtr->groupSemCount-1, SETVAL, 1 ); } // // Otherwise we are a visitor // else { sprintf(&myTokenizer[strlen(myTokenizer)],".%d",theBase->creatorId); theControlGroup = new MutexSemaphoreGroup ( 0, myTokenizer, 0, FAIL_IF_NOTEXISTS ); GETCNTLSEM(aSemPtr,aGrpPtr,aGrpPtr->groupSemCount); // Increment the shares on the control group and control semaphore aGrpPtr->groupShares += 1; aSemPtr->semShares += 1; } // // Now we get our page control semaphore instance // theControlGroup->theGroupCSA = aGrpPtr; theInitializeFlag = false; } // // Destructor // SemaphoreCommon::~SemaphoreCommon( void ) { if( theCSA != NULLPTR ) { Memory::destroyStorage( theCSA ); theCSA = NULLPTR; } else { ; // do nothing } } // Retrieve the identifier Int SemaphoreCommon::getOriginatorId( void ) const { return theBase->creatorId; } Int SemaphoreCommon::canonicalUndefined( void ) { CSAGrpHeaderPtr aGrpPtr( (CSAGrpHeaderPtr)theBase ); ++aGrpPtr; aGrpPtr->groupShares -= 1; return aGrpPtr->groupShares; } // Registering groups void SemaphoreCommon::registerGroup( SemaphoreGroupPtr aGroup ) { REQUIRE( aGroup != NULLPTR ); // // Lock up control // CSAGrpHeaderPtr aCntrlGrp(theControlGroup->theGroupCSA); CSASemHeaderPtr aCntrlSem( NULLPTR ); GETCNTLSEM(aCntrlSem,aCntrlGrp,aCntrlGrp->groupSemCount); LOCKSEM(aCntrlGrp->groupInfo,aCntrlGrp->groupSemCount,aCntrlSem); // // Setup the work // struct semid_ds semds; SemaphoreGroupIdentifier aSid(aGroup->getIdentifier()); Int anId( (Int)aSid ); semctl( anId, 0, IPC_STAT, &semds ); Int aSemCnt( semds.sem_nsems ); CSAGrpHeaderPtr aGrpPtr( (CSAGrpHeaderPtr)theBase ); ++aGrpPtr; // // Best case, we are the first // if( theBase->currentUsed == 0 ) { theBase->currentGrps = 1; aGrpPtr->groupSemCount = theBase->currentUsed = aSemCnt; aGrpPtr->groupShares = 1; aGrpPtr->groupInfo = anId; } else { CSAGrpHeaderPtr aHeadGrpPtr( aGrpPtr ); CSASemHeaderPtr aGroupSem( NULLPTR ); // // Search for // aGrpPtr = this->findGroup(anId,theBase->currentGrps,aHeadGrpPtr); // // Find last if search came up empty // if( aGrpPtr == NULLPTR ) { aGrpPtr = this->findAvailableGroup ( theBase->currentGrps, aSemCnt, aHeadGrpPtr ); // // We may need to adjust the CSA entries to make room for this // group // if( aGrpPtr == NULLPTR ) { // First try subsetting aGrpPtr = this->subsetGroup(aSemCnt,aHeadGrpPtr); if( aGrpPtr == NULLPTR ) { // Okay, try combining aGrpPtr = this->combineGroup(aSemCnt,aHeadGrpPtr); } else { } // We are out of resources or have a serious bug if( aGrpPtr == NULLPTR ) { UNLOCKSEM ( aCntrlGrp->groupInfo, aCntrlGrp->groupSemCount, aCntrlSem ); throw NullPointerException(LOCATION); } } else { ; // do nothing } GETCNTLSEM(aGroupSem,aGrpPtr,aSemCnt); // // GroupInfo is either 0 or -1 // if( aGrpPtr->groupInfo == 0 ) { // // If we are the first entry, we initialize // and set the control semaphore accordingly // theBase->currentGrps += 1; theBase->currentUsed += aSemCnt; aGrpPtr->groupSemCount = aSemCnt; } else { ; // do nothing } aGroupSem->maxSemValue = -1; aGroupSem->isRecursive = OFF; aGroupSem->isBalking = OFF; semctl( anId, aSemCnt-1, SETVAL, 1 ); aGrpPtr->groupInfo = anId; } else { GETCNTLSEM(aGroupSem,aGrpPtr,aSemCnt); } // // Update information // aGroupSem->semShares += 1; aGrpPtr->groupShares += 1; } aGroup->theGroupCSA = aGrpPtr; UNLOCKSEM(aCntrlGrp->groupInfo,aCntrlGrp->groupSemCount,aCntrlSem); } // // Take a group out of the share zone // Int SemaphoreCommon::deregisterGroup( SemaphoreGroupPtr aGroup ) { // // Lock up control // CSAGrpHeaderPtr aCntrlGrp(theControlGroup->theGroupCSA); CSASemHeaderPtr aCntrlSem( NULLPTR ); GETCNTLSEM(aCntrlSem,aCntrlGrp,aCntrlGrp->groupSemCount); LOCKSEM(aCntrlGrp->groupInfo,aCntrlGrp->groupSemCount,aCntrlSem); Int results(0); CSAGrpHeaderPtr aGrpPtr( aGroup->theGroupCSA ); if( aGrpPtr != NULLPTR ) { CSASemHeaderPtr aGroupSem( NULLPTR ); GETCNTLSEM(aGroupSem,aGrpPtr,aGrpPtr->groupSemCount); LOCKSEM(aGrpPtr->groupInfo,aGrpPtr->groupSemCount,aGroupSem); // // If this is the last one using the group, // we can mark if for reclaim // if( aGrpPtr->groupShares == 1 ) { CSAGrpHeaderPtr aNextGrpPtr( aGrpPtr ); aNextGrpPtr += aGrpPtr->groupSemCount + 1; UNLOCKSEM(aGrpPtr->groupInfo,aGrpPtr->groupSemCount,aGroupSem); // If we are the tail, get rid of us if( aNextGrpPtr->groupInfo == 0 ) { theBase->currentUsed -= aGrpPtr->groupSemCount; theBase->currentGrps -= 1; aGrpPtr->groupInfo = 0; } else { aGrpPtr->groupInfo = -1; aGrpPtr->groupShares = 0; aGrpPtr->groupType = -1; aGroupSem->semShares = 0; } } // Otherwise we just remove ourselves else { aGrpPtr->groupShares -= 1; aGroupSem->semShares -= 1; results = aGrpPtr->groupShares; UNLOCKSEM(aGrpPtr->groupInfo,aGrpPtr->groupSemCount,aGroupSem); } } else { results = -1; } UNLOCKSEM(aCntrlGrp->groupInfo,aCntrlGrp->groupSemCount,aCntrlSem); return results; } // // Attempt to take initial ownership of a // specific semaphore or one that is available // Int SemaphoreCommon::claimSemaphore ( SemaphoreGroupPtr aGroup, Int aSemIndex, IntRef aMaxValue, IntRef aRecurse, IntRef aBalking, Int aFailConstraint ) { // // Lock up the group // CSAGrpHeaderPtr aGrpPtr( aGroup->theGroupCSA ); CSASemHeaderPtr aGroupSem( NULLPTR ); GETCNTLSEM(aGroupSem,aGrpPtr,aGrpPtr->groupSemCount); LOCKSEM(aGrpPtr->groupInfo,aGrpPtr->groupSemCount,aGroupSem); Int results(0); CSASemHeaderPtr aCandidateSem( NULLPTR ); Int realCnt(aGrpPtr->groupSemCount-1); Int anId( (Int)aGroup->theIdentifier ); // // If a specific location is requested // if( aSemIndex != -1 ) { if( aSemIndex < realCnt ) { GETCNTLSEM(aCandidateSem,aGrpPtr,aSemIndex+1); // If the candidate is available if( aCandidateSem->semShares == 0 ) { // If it should have been in existence if( aFailConstraint == MUST_EXIST ) { results = SEMPHORE_UNAVAILABLE; } // Otherwise we can use it else { aCandidateSem->semShares = 1; aCandidateSem->maxSemValue = aMaxValue; aCandidateSem->isRecursive = aRecurse; aCandidateSem->isBalking = aBalking; results = aSemIndex; semctl( anId, aSemIndex, SETVAL, aMaxValue ); } } else { if( aFailConstraint == MUST_NOTEXIST ) { results = SEMPHORE_UNAVAILABLE; } else { aCandidateSem->semShares += 1; aRecurse = aCandidateSem->isRecursive; aBalking = aCandidateSem->isBalking; aMaxValue = aCandidateSem->maxSemValue; results = aSemIndex; } } } else { results = SEMPHORE_UNAVAILABLE; } } // // Otherwise we are free to choose, existence test // is ignored, the candidate must be free // else { results = SEMPHORE_UNAVAILABLE; for( Int x=0; x < realCnt; ++x ) { GETCNTLSEM(aCandidateSem,aGrpPtr,x+1); if( aCandidateSem->semShares == 0 ) { results = x; aCandidateSem->semShares = 1; aCandidateSem->maxSemValue = aMaxValue; aCandidateSem->isRecursive = aRecurse; aCandidateSem->isBalking = aBalking; semctl( anId, x, SETVAL, aMaxValue ); x = realCnt; } } } UNLOCKSEM(aGrpPtr->groupInfo,aGrpPtr->groupSemCount,aGroupSem); return results; } // // Attempt to return ownership or share of a // specific semaphore. // Int SemaphoreCommon::reclaimSemaphore ( SemaphoreGroupPtr aGroup, Int aSemIndex ) { // // Lock up the group // CSAGrpHeaderPtr aGrpPtr( aGroup->theGroupCSA ); CSASemHeaderPtr aGroupSem( NULLPTR ); GETCNTLSEM(aGroupSem,aGrpPtr,aGrpPtr->groupSemCount); LOCKSEM(aGrpPtr->groupInfo,aGrpPtr->groupSemCount,aGroupSem); Int results(0); Int realCnt(aGrpPtr->groupSemCount-1); if( aSemIndex >= 0 && aSemIndex < realCnt ) { CSASemHeaderPtr aCandidateSem( NULLPTR ); GETCNTLSEM(aCandidateSem,aGrpPtr,aSemIndex+1); if( aCandidateSem->semShares > 0 ) { aCandidateSem->semShares -= 1; results = aCandidateSem->semShares; if( results == 0 ) { aCandidateSem->maxSemValue = 0; aCandidateSem->isRecursive = OFF; aCandidateSem->isBalking = OFF; } else { ; // leave the settings alone } } else { results = -1; } } else { results = -1; } UNLOCKSEM(aGrpPtr->groupInfo,aGrpPtr->groupSemCount,aGroupSem); return results; } // Find the group in the collection CSAGrpHeaderPtr SemaphoreCommon::findGroup ( IntCref aGid, IntCref aCount, CSAGrpHeaderPtr aHead ) { CSAGrpHeaderPtr aGrpPtr( NULLPTR ); for( Int x = 0; x < aCount; ++x ) { if( aHead->groupInfo == aGid ) { aGrpPtr = aHead; break; } else { aHead += (aHead->groupSemCount+1); } } return aGrpPtr; } // Find either a reusable same sized position, or // the tail CSAGrpHeaderPtr SemaphoreCommon::findAvailableGroup ( IntCref aCount, IntCref aSemCount, CSAGrpHeaderPtr aHead ) { CSAGrpHeaderPtr aGrpPtr( NULLPTR ); for( Int x = 0; x < aCount; ++x ) { if( aHead->groupInfo == -1 && aHead->groupSemCount == aSemCount ) { aGrpPtr = aHead; break; } else { aHead += (aHead->groupSemCount+1); } } if( aGrpPtr == NULLPTR && aHead->groupInfo == 0 ) { Int testVal ( aSemCount + theBase->currentUsed + theBase->currentGrps + 1 ); if( testVal <= TOTALAVAILABLESLOTS ) { aGrpPtr = aHead; } else { ; // do nothing } } else { ; // do nothing } return aGrpPtr; } // // Method for subsetting larger groups for smaller requests // CSAGrpHeaderPtr SemaphoreCommon::subsetGroup ( Int aCountNeeded, CSAGrpHeaderPtr aCntrlGroup ) { CSAGrpHeaderPtr aGrp( NULLPTR ); Int aMax( theBase->currentGrps ); // Look for a reusable slot for( Int x = 0; x < aMax && aGrp == NULLPTR; ++x ) { if( aCntrlGroup->groupInfo == -1 ) { if( aCntrlGroup->groupSemCount > aCountNeeded ) { // Use current and jump to new marker aGrp = aCntrlGroup; aCntrlGroup += aCountNeeded+1; // Set new group marker aCntrlGroup->groupInfo = -1; aCntrlGroup->groupSemCount = (aGrp->groupSemCount - (aCountNeeded+1)); aGrp->groupSemCount = aCountNeeded; aCntrlGroup = aGrp ; // We've decreased the semaphore count and // increased the group count theBase->currentUsed -= 1; theBase->currentGrps += 1; } else { ; // do nothing } } else { ; // do nothing } aCntrlGroup += aCntrlGroup->groupSemCount+1; } return aGrp; } // // Method for combining adjacent groups for larger requests // CSAGrpHeaderPtr SemaphoreCommon::combineGroup ( Int aCountNeeded, CSAGrpHeaderPtr aCntrlGroup ) { CSAGrpHeaderPtr aGrp( aCntrlGroup ); CSAGrpHeaderPtr aGrpBegin( NULLPTR ); Int aMax( theBase->currentGrps ); for( Int x = 0; x < aMax; ) { if( aCntrlGroup->groupInfo == -1 ) { // If we have not begun if( aGrpBegin == NULLPTR ) { aGrpBegin = aCntrlGroup; ++x; } // Otherwise combine the group else { aGrpBegin->groupSemCount += (aCntrlGroup->groupSemCount + 1); // Emulate a dead semaphore aCntrlGroup->groupInfo = aCntrlGroup->groupShares = aCntrlGroup->groupSemCount = 0; --aMax; theBase->currentGrps -= 1; theBase->currentUsed += 1; aCntrlGroup = aGrpBegin; } } else { aGrpBegin = NULLPTR; ++x; } aCntrlGroup += aCntrlGroup->groupSemCount+1; } return this->subsetGroup(aCountNeeded,aGrp); } // // Test for originating (ownership) // bool SemaphoreCommon::isOriginator( void ) const { return theOriginator; } // // A shared semaphore group has been defined, register it // void SemaphoreCommon::groupDefined( SemaphoreGroupPtr aGroup ) { if( theInitializeFlag == false ) { if( theInstance == NULLPTR ) { createAttachment(); } else { ; // do nothing } theInstance->registerGroup(aGroup); } else { ; // busy starting up } return ; } // // Semaphore group is being deleted // Int SemaphoreCommon::groupUnDefined( SemaphoreGroupPtr aGroup ) { REQUIRE( aGroup != NULLPTR ); Int results(0); if( theControlGroup == aGroup ) { results = theInstance->canonicalUndefined(); } else { results = theInstance->deregisterGroup(aGroup); } return results; } // // Check for local, and perform work // Int SemaphoreCommon::setLock ( SemaphoreGroupPtr aGroup, Int aGid, Int aSid, Int aFlg ) { REQUIRE( aGroup != NULLPTR ); Int results(0); struct sembuf aSemBuf={ aSid, -1, aFlg}; if( aGroup->isPrivate() == true ) { results = semop( aGid, &aSemBuf, 1 ); } else { CSAGrpHeaderPtr aGrpPtr( aGroup->theGroupCSA ); CSASemHeaderPtr aGroupSem( NULLPTR ); GETCNTLSEM(aGroupSem,aGrpPtr,aSid+1); results = semop( aGid, &aSemBuf, 1 ); aGroupSem->semOwner = (!results ? (Int) Thread::getThreadIdentifier() : aGroupSem->semOwner); } return results; } // // Check for local, and perform work // Int SemaphoreCommon::setUnLock ( SemaphoreGroupPtr aGroup, Int aGid, Int aSid, Int aFlg ) { REQUIRE( aGroup != NULLPTR ); Int results(0); struct sembuf aSemBuf={ aSid, 1, aFlg}; if( aGroup->isPrivate() == true ) { results = semop( aGid, &aSemBuf, 1 ); } else { CSAGrpHeaderPtr aGrpPtr( aGroup->theGroupCSA ); CSASemHeaderPtr aGroupSem( NULLPTR ); GETCNTLSEM(aGroupSem,aGrpPtr,aSid+1); results = semop( aGid, &aSemBuf, 1 ); aGroupSem->semOwner = (!results ? (Int) 0 : aGroupSem->semOwner); } return results; } // // Check for local, and perform work // Int SemaphoreCommon::waitZero ( SemaphoreGroupPtr aGroup, Int aGid, Int aSid, Int aFlg ) { REQUIRE( aGroup != NULLPTR ); Int results(0); struct sembuf aSemBuf={ aSid, 0, aFlg}; if( aGroup->isPrivate() == true ) { results = semop( aGid, &aSemBuf, 1 ); } else { CSAGrpHeaderPtr aGrpPtr( aGroup->theGroupCSA ); CSASemHeaderPtr aGroupSem( NULLPTR ); GETCNTLSEM(aGroupSem,aGrpPtr,aSid+1); results = semop( aGid, &aSemBuf, 1 ); aGroupSem->semOwner = (!results ? (Int) 0 : aGroupSem->semOwner); } return results; } // // Attempt to take initial ownership of a // specific semaphore or one that is available // Int SemaphoreCommon::obtainSemaphore ( SemaphoreGroupPtr aGroup, Int aSemIndex, IntRef aMaxValue, IntRef aRecurse, IntRef aBalking, Int aFailConstraint ) { REQUIRE( aGroup != NULLPTR ); Int results(0); if( aGroup->isPrivate() == true ) { results = -1; } else { results = theInstance->claimSemaphore ( aGroup, aSemIndex, aMaxValue, aRecurse, aBalking, aFailConstraint ); } return results; } // // Drop a share on a sempahore // Int SemaphoreCommon::relinquishSemaphore ( SemaphoreGroupPtr aGroup, Int aSemIndex ) { Int results(0); if( aGroup->isPrivate() == true ) { ; // do nothing } else { results = theInstance->reclaimSemaphore(aGroup,aSemIndex); } return results; } // // Set max value may be redundent // Int SemaphoreCommon::setMaxValue ( SemaphoreGroupPtr aGroup, Int aId, Int aValue ) { REQUIRE( aGroup != NULLPTR ); Int results(0); if( aGroup->isPrivate() == true ) { semctl( (Int)aGroup->theIdentifier, aId, SETVAL, aValue ); } else { ; // do nothing } return results; } // // Get max value from the original value setting // Int SemaphoreCommon::getSemaphoreMaxValue ( SemaphoreGroupPtr aGroup, Int aSemId ) { REQUIRE( aGroup != NULLPTR ); Int results(0); if( aGroup->isPrivate() == true ) { results = -1; } else { CSAGrpHeaderPtr aGrpPtr( aGroup->theGroupCSA ); CSASemHeaderPtr aGroupSem( NULLPTR ); GETCNTLSEM(aGroupSem,aGrpPtr,aSemId+1); results = aGroupSem->maxSemValue; } return results; } // // Called for instantiation // void SemaphoreCommon::createAttachment( void ) { if( theInstance == NULLPTR ) { int fhndl = open( ourId, O_CREAT | O_EXCL, OWNER_ALL | GROUP_ALL | PUBLIC_ALL ); if( fhndl != -1 ) { close(fhndl); } theInstance = ::new SemaphoreCommon; } else { ; // do nothing } } // // Run-time shutdown of shared segment // void SemaphoreCommon::exitAttachment(void) { if( theInstance != NULLPTR ) { if( theControlGroup != NULLPTR ) { ::delete theControlGroup; theControlGroup = NULLPTR; } else { ; // do nothing } ::delete theInstance; theInstance = NULLPTR; } else { ; // do nothing } } } /* Common rcs information do not modify $Author: dulimart $ $Revision: 1.10 $ $Date: 2000/11/13 20:15:36 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/Facade.cpp0000664000000000000000000000367007042631124017621 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__FACADE_HPP) #include #endif namespace corelinux { // // Default constructor // Facade::Facade( void ) : CoreLinuxObject() { ; // do nothing } // // Copy constructor // Facade::Facade( FacadeCref aRef ) : CoreLinuxObject(aRef) { ; // do nothing } // // Destructor // Facade::~Facade( void ) { ; // do nothing } // // Assignment operator // FacadeRef Facade::operator=( FacadeCref aRef ) { CoreLinuxObject::operator=(aRef); return (*this); } // // Equality operator // bool Facade::operator==( FacadeCref aRef ) const { return (CoreLinuxObject::operator==(aRef)); } // // Non-equality operator // bool Facade::operator!=( FacadeCref aRef ) const { return !(this->operator==(aRef)); } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/01/23 16:54:44 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/Environment.cpp0000664000000000000000000001157707255553747021013 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__ENVIRONMENT_HPP) #include #endif extern "C" { #include #include #include #include #include #include #include } namespace corelinux { // Retreive the real user id for the current process UserIdentifier Environment::getUserId( void ) { return UserIdentifier(getuid()); } // Retreive the effective user id for the current process UserIdentifier Environment::getEffectiveUserId( void ) { return UserIdentifier(geteuid()); } // Retreive the real group id for the current process GroupIdentifier Environment::getGroupId( void ) { return GroupIdentifier(getgid()); } // Retreive the effective group id for the current process GroupIdentifier Environment::getEffectiveGroupId( void ) { return GroupIdentifier(getegid()); } // Retrieve the process group id for the current process ProcessIdentifier Environment::getProcessGroupId( void ) { return ProcessIdentifier(getpgrp()); } // Retrieve the process group id for a specific process ProcessIdentifier Environment::getProcessGroupId( ProcessIdentifierRef aPid ) { return ProcessIdentifier(__getpgid((Int)aPid)); } // Get variable from environment CharPtr Environment::getEnvironmentValue( CharCptr aName ) { return getenv(aName); } // Put name=value into the current environment Int Environment::setEnvironmentNameValue( CharPtr aNameValue ) { return putenv( aNameValue ); } // // Routine for creating common file // Int Environment::setupCommonAccess ( CharCptr aName, const CreateDisposition &aMode ) { REQUIRE( aName != NULLPTR ); struct stat statRet; Int results(0); int errRet(0); int stret = stat(aName,&statRet); // // File may not exist // if( stret == -1 ) { errRet = Int(*__errno_location()); // // If file not found and fail if not // exists, problem, else we try to // create, and result accordingly // if( errRet == ENOENT ) { if( aMode == FAIL_IF_NOTEXISTS ) { results = -1; } else { results = 1; Int fhndl = open ( aName, O_CREAT | O_EXCL, OWNER_ALL | GROUP_ALL | PUBLIC_ALL ); if( fhndl != -1 ) { close(fhndl); } else { results = fhndl; } } } // Any other error is a failure to create else { results = -1; } } // If the file was found else { if( aMode == FAIL_IF_EXISTS ) { results = -1; } else { ; // do nothing } } return results; } // // Routine for removing semaphore file // Int Environment::removeCommonAccess( CharCptr aName ) { REQUIRE( aName != NULLPTR ); struct stat statRet; Int stret( stat(aName,&statRet) ); if( stret != -1 ) { stret = unlink(aName); } else { ; // do nothing, bad check } return stret; } void Environment::setThreadPriority ( ProcessIdentifier pid, Int prio ) { setpriority (PRIO_PROCESS, pid, prio); } Int Environment::getThreadPriority ( ProcessIdentifier pid ) { return getpriority (PRIO_PROCESS, pid); } } /* Common rcs information do not modify $Author: dulimart $ $Revision: 1.4 $ $Date: 2001/03/20 04:09:11 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/TransientStorage.cpp0000664000000000000000000000355107075612517021763 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__TRANSIENTSTORAGE_HPP) #include #endif namespace corelinux { // Constructor TransientStorage::TransientStorage( void ) : Storage() { ; // do nothing } // Copy constructor TransientStorage::TransientStorage( TransientStorageCref aRef ) : Storage( aRef ) { ; // vacuous, do nothing } // Destructor TransientStorage::~TransientStorage( void ) { ; // vacuous, do nothing } // Operator assignment TransientStorageRef TransientStorage::operator=( TransientStorageCref aRef ) { return TransientStorageRef(Storage::operator=(aRef)); } // Equality operator bool TransientStorage::operator==( TransientStorageCref aRef ) const { return Storage::operator==( aRef ); } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/04/14 12:55:43 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/CoreLinuxGuardPool.cpp0000664000000000000000000002543507140162143022205 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__CORELINUXGUARDPOOL_HPP) #include #endif #if !defined(__SYNCHRONIZED_HPP) #include #endif #if !defined(__CORELINUXGUARDGROUP_HPP) #include #endif #if !defined(__GUARDSEMAPHORE_HPP) #include #endif #if !defined(__SEMAPHORECOMMON_HPP) #include #endif namespace corelinux { GuardPool CoreLinuxGuardPool::theGuard( new CoreLinuxGuardPool ); Short CoreLinuxGuardPool::theInitialSize(0); Short CoreLinuxGuardPool::theExtentSize(0); // // Constructor // CoreLinuxGuardPool::CoreLinuxGuardPool( Short numInit, Short numExtent ) throw( Assertion ) { // // Initialize control and the pool objects with // no references yet. // if( theGuard.instance() == NULLPTR ) { ENSURE( numExtent >= 0 ); ENSURE( numInit >= 1 ); // // Clear out // theGroups.clear(); theSemaphores.clear(); theCallers.clear(); // // Create the base pool and add one for our control // createPoolGroup( numInit+1, numInit ); // // Get ourselves some protection from the extra we added to the // base group // SemaphoreIdentifier aSemId(numInit); theControlSem = theGroups[0]->createSemaphore( aSemId ); theInitialSize = numInit; theExtentSize = numExtent; } else { NEVER_GET_HERE; } } // // Destructor // CoreLinuxGuardPool::~CoreLinuxGuardPool( void ) { // // First destroy our extra // theGroups[0]->destroySemaphore(theControlSem); theControlSem = NULLPTR; theCallers.clear(); SemaphoreCommon::exitAttachment(); // // Remove all other sempahores // for( SemaphoreMapIterator aItr=theSemaphores.begin(); aItr != theSemaphores.end(); ++aItr ) { theGroups[(*aItr).second.theGroupIndex]->destroySemaphore ( (*aItr).first ); } theSemaphores.clear(); // // Remove all groups // for( GroupVectorIterator aGItr = theGroups.begin(); aGItr != theGroups.end(); ++ aGItr ) { delete (*aGItr); } theGroups.clear(); } // // Static is locked for guards // bool CoreLinuxGuardPool::isLocked( SynchronizedPtr aPtr ) throw(SemaphoreException) { bool il( false ); if( theGuard.instance() != NULLPTR ) { il = theGuard.instance()->isSynchronizedLocked( aPtr ); } else { throw SemaphoreException( "Pool not initialized", LOCATION ); } return il; } // // Get the initial size // Short CoreLinuxGuardPool::getInitialPoolSize( void ) { return theInitialSize; } // // Get the current extent size // Short CoreLinuxGuardPool::getExtentSize( void ) { return theExtentSize; } // // Return the current guard pool size // Short CoreLinuxGuardPool::getTotalCurrentSize( void ) { return getInitialPoolSize() + getExtentSize() ; } // // Static lock for guards // void CoreLinuxGuardPool::lock( SynchronizedPtr aPtr ) throw(SemaphoreException) { if( theGuard.instance() != NULLPTR ) { theGuard.instance()->lockSynchronized( aPtr ); } else { throw SemaphoreException( "Pool not initialized", LOCATION ); } } // // Static release for guards // void CoreLinuxGuardPool::release( SynchronizedPtr aPtr ) throw(SemaphoreException) { if( theGuard.instance() != NULLPTR ) { theGuard.instance()->releaseSynchronized( aPtr ); } else { throw SemaphoreException( "Pool not initialized", LOCATION ); } } // // Pool instance test for lock state // bool CoreLinuxGuardPool::isSynchronizedLocked( SynchronizedPtr aPtr ) throw(SemaphoreException) { theControlSem->lockWithWait(); MonitorMapIterator aCItr( theCallers.find(aPtr) ); theControlSem->release(); return !( aCItr == theCallers.end() ); } // // Pool instance lock management // void CoreLinuxGuardPool::lockSynchronized( SynchronizedPtr aPtr ) throw(SemaphoreException) { theControlSem->lockWithWait(); MonitorMapIterator aCItr( theCallers.find(aPtr) ); // // First see if we are in the list, and if we are // we reuse the same semaphore (increment its count) // and lock it. // if( aCItr != theCallers.end() ) { SemaphoreMapIterator aSItr( theSemaphores.find((*aCItr).second) ); (*aSItr).second.theQueueLength += 1; theControlSem->release(); (*aSItr).first->lockWithWait(); } // // Otherwise we don't have one mapped so we occupy one // else { AbstractSemaphorePtr aSem( NULLPTR ); SemaphoreMapIterator begin( theSemaphores.begin() ); while( begin != theSemaphores.end() ) { if( (*begin).second.theQueueLength == 0 ) { aSem = (*begin).first; (*begin).second.theQueueLength = 1; theCallers[aPtr] = aSem; begin = theSemaphores.end(); } else { ++begin; } } // // If we have one then lock it // if( aSem != NULLPTR ) { theControlSem->release(); aSem->lockWithWait(); } // // Degenerate case is we need to go into extents // or crash and burn the attempt // else { // // If we can go into extents then do so, // otherwise raise exception // if( CoreLinuxGuardPool::getExtentSize() != 0 ) { createPoolGroup( CoreLinuxGuardPool::getExtentSize() ); theControlSem->release(); this->lockSynchronized( aPtr ); } else { theControlSem->release(); throw SemaphoreException( "Pool exhausted", LOCATION ); } } } } // // Pool instance release management // void CoreLinuxGuardPool::releaseSynchronized( SynchronizedPtr aPtr ) throw(SemaphoreException) { theControlSem->lockWithWait(); MonitorMapIterator aCItr( theCallers.find(aPtr) ); if( aCItr != theCallers.end() ) { PoolDescriptor aDes; // // Retrieve the reference from the semaphores, reduce the // count of references // SemaphoreMapIterator aSItr( theSemaphores.find((*aCItr).second) ); aDes = (*aSItr).second; aDes.theQueueLength = (*aSItr).second.theQueueLength -= 1; (*aCItr).second->release(); // // Remove the caller if no more references to semaphore // if( aDes.theQueueLength == 0 ) { theCallers.erase(aCItr); // // And check to see if semaphore is in last extent. // if( aDes.theGroupIndex != 0 && aDes.theGroupIndex == theGroups.size() - 1 ) { destroyPoolGroup( aDes.theGroupIndex ); } else { ; // do nothing } } else { ; // do nothing } theControlSem->release(); } else { theControlSem->release(); throw SemaphoreException("Caller not found",LOCATION); } } // // Create pool and initialize references // void CoreLinuxGuardPool::createPoolGroup( Short numSems, Short initSize ) { Index poolIndex( theGroups.size() ); initSize = ( !initSize ? numSems : initSize ); CoreLinuxGuardGroupPtr aGp ( new CoreLinuxGuardGroup(numSems) ); theGroups.push_back( aGp ); for( Short x=0; x < initSize; ++x ) { SemaphoreIdentifier aSemId(x); PoolDescriptor aDes = {0,poolIndex}; theSemaphores[aGp->createSemaphore( aSemId )] = aDes; } } // // Destroy a group and all its semaphores. This method assumes // that this is the last group in the vector. // void CoreLinuxGuardPool::destroyPoolGroup( Index aGroup ) { // // Track those that are in the group // std::vector dVector; Count hits(0); dVector.clear(); for( SemaphoreMapIterator aSItr = theSemaphores.begin() ; aSItr != theSemaphores.end(); ++aSItr ) { if( (*aSItr).second.theGroupIndex == aGroup ) { ++hits; if( (*aSItr).second.theQueueLength == 0 ) { dVector.push_back((*aSItr).first); } else { aSItr == theSemaphores.end(); --aSItr; } } else { ; // do nothing } } // // If we have a clear group // if( hits == dVector.size() ) { for( Count x = 0; x < hits; ++x ) { theSemaphores.erase( dVector[x] ); theGroups[aGroup]->destroySemaphore(dVector[x]); } delete theGroups[aGroup]; theGroups.pop_back(); } else { ; // do nothing } dVector.clear(); } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.8 $ $Date: 2000/07/28 01:39:47 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/Makefile.am0000664000000000000000000000462007156362165020016 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 16-Mar-00 at 21:48:55 # LAST-MOD: 27-Jul-00 at 17:20:05 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .h SRCS = AbstractCommand.cpp \ AbstractFactoryException.cpp \ AbstractSemaphore.cpp \ AbstractString.cpp \ Adapter.cpp \ Allocator.cpp \ AllocatorAlreadyExistsException.cpp \ AllocatorNotFoundException.cpp \ Assertion.cpp \ BoundsException.cpp \ Colleague.cpp \ Command.cpp \ CommandFrame.cpp \ CommandFrameException.cpp \ Component.cpp \ CompositeException.cpp \ Context.cpp \ CoreLinuxGuardGroup.cpp \ CoreLinuxGuardPool.cpp \ CoreLinuxObject.cpp \ Environment.cpp \ Exception.cpp \ EventSemaphore.cpp \ EventSemaphoreGroup.cpp \ Facade.cpp \ Flyweight.cpp \ GatewaySemaphore.cpp \ GatewaySemaphoreGroup.cpp \ GuardSemaphore.cpp \ Handler.cpp \ Identifier.cpp \ InvalidCompositeException.cpp \ InvalidIteratorException.cpp \ InvalidThreadException.cpp \ IteratorBoundsException.cpp \ IteratorException.cpp \ Mediator.cpp \ Memento.cpp \ Memory.cpp \ MemoryStorage.cpp \ MutexSemaphore.cpp \ MutexSemaphoreGroup.cpp \ NullPointerException.cpp \ Observer.cpp \ Request.cpp \ Semaphore.cpp \ SemaphoreCommon.cpp \ SemaphoreException.cpp \ SemaphoreGroup.cpp \ State.cpp \ Storage.cpp \ StorageException.cpp \ Strategy.cpp \ StringUtf8.cpp \ Subject.cpp \ Synchronized.cpp \ Thread.cpp \ ThreadContext.cpp \ ThreadException.cpp \ TransientStorage.cpp \ Visitor.cpp \ corelinux.cpp # this is needed to erase the LIBS variable # the LIBS variables set libcl.la as a library but it is not yet # created LIBS = lib_LTLIBRARIES = libcl++.la libcl___la_SOURCES = $(SRCS) libcl___la_LDFLAGS = -version-info ${LIBCORELINUX_SO_VERSION} # do not use release release # each version will be binary incompatible # use libtool versioning system instead # but I keep this for reference # -release ${CORELINUX_MAJOR_VERSION}.${CORELINUX_MINOR_VERSION}.${CORELINUX_MICRO_VERSION} # libcorelinux-0.4.32/src/classlibs/corelinux/Makefile.in0000664000000000000000000006040207743170745020032 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 16-Mar-00 at 21:48:55 # LAST-MOD: 27-Jul-00 at 17:20:05 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ # this is needed to erase the LIBS variable # the LIBS variables set libcl.la as a library but it is not yet # created LIBS = LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .h SRCS = AbstractCommand.cpp \ AbstractFactoryException.cpp \ AbstractSemaphore.cpp \ AbstractString.cpp \ Adapter.cpp \ Allocator.cpp \ AllocatorAlreadyExistsException.cpp \ AllocatorNotFoundException.cpp \ Assertion.cpp \ BoundsException.cpp \ Colleague.cpp \ Command.cpp \ CommandFrame.cpp \ CommandFrameException.cpp \ Component.cpp \ CompositeException.cpp \ Context.cpp \ CoreLinuxGuardGroup.cpp \ CoreLinuxGuardPool.cpp \ CoreLinuxObject.cpp \ Environment.cpp \ Exception.cpp \ EventSemaphore.cpp \ EventSemaphoreGroup.cpp \ Facade.cpp \ Flyweight.cpp \ GatewaySemaphore.cpp \ GatewaySemaphoreGroup.cpp \ GuardSemaphore.cpp \ Handler.cpp \ Identifier.cpp \ InvalidCompositeException.cpp \ InvalidIteratorException.cpp \ InvalidThreadException.cpp \ IteratorBoundsException.cpp \ IteratorException.cpp \ Mediator.cpp \ Memento.cpp \ Memory.cpp \ MemoryStorage.cpp \ MutexSemaphore.cpp \ MutexSemaphoreGroup.cpp \ NullPointerException.cpp \ Observer.cpp \ Request.cpp \ Semaphore.cpp \ SemaphoreCommon.cpp \ SemaphoreException.cpp \ SemaphoreGroup.cpp \ State.cpp \ Storage.cpp \ StorageException.cpp \ Strategy.cpp \ StringUtf8.cpp \ Subject.cpp \ Synchronized.cpp \ Thread.cpp \ ThreadContext.cpp \ ThreadException.cpp \ TransientStorage.cpp \ Visitor.cpp \ corelinux.cpp lib_LTLIBRARIES = libcl++.la libcl___la_SOURCES = $(SRCS) libcl___la_LDFLAGS = -version-info ${LIBCORELINUX_SO_VERSION} subdir = src/classlibs/corelinux ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(lib_LTLIBRARIES) libcl___la_LIBADD = am__objects_1 = AbstractCommand.lo AbstractFactoryException.lo \ AbstractSemaphore.lo AbstractString.lo Adapter.lo Allocator.lo \ AllocatorAlreadyExistsException.lo \ AllocatorNotFoundException.lo Assertion.lo BoundsException.lo \ Colleague.lo Command.lo CommandFrame.lo \ CommandFrameException.lo Component.lo CompositeException.lo \ Context.lo CoreLinuxGuardGroup.lo CoreLinuxGuardPool.lo \ CoreLinuxObject.lo Environment.lo Exception.lo \ EventSemaphore.lo EventSemaphoreGroup.lo Facade.lo Flyweight.lo \ GatewaySemaphore.lo GatewaySemaphoreGroup.lo GuardSemaphore.lo \ Handler.lo Identifier.lo InvalidCompositeException.lo \ InvalidIteratorException.lo InvalidThreadException.lo \ IteratorBoundsException.lo IteratorException.lo Mediator.lo \ Memento.lo Memory.lo MemoryStorage.lo MutexSemaphore.lo \ MutexSemaphoreGroup.lo NullPointerException.lo Observer.lo \ Request.lo Semaphore.lo SemaphoreCommon.lo \ SemaphoreException.lo SemaphoreGroup.lo State.lo Storage.lo \ StorageException.lo Strategy.lo StringUtf8.lo Subject.lo \ Synchronized.lo Thread.lo ThreadContext.lo ThreadException.lo \ TransientStorage.lo Visitor.lo corelinux.lo am_libcl___la_OBJECTS = $(am__objects_1) libcl___la_OBJECTS = $(am_libcl___la_OBJECTS) DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/admin/depcomp am__depfiles_maybe = depfiles @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/AbstractCommand.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/AbstractFactoryException.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/AbstractSemaphore.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/AbstractString.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/Adapter.Plo ./$(DEPDIR)/Allocator.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/AllocatorAlreadyExistsException.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/AllocatorNotFoundException.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/Assertion.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/BoundsException.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/Colleague.Plo ./$(DEPDIR)/Command.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/CommandFrame.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/CommandFrameException.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/Component.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/CompositeException.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/Context.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/CoreLinuxGuardGroup.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/CoreLinuxGuardPool.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/CoreLinuxObject.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/Environment.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/EventSemaphore.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/EventSemaphoreGroup.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/Exception.Plo ./$(DEPDIR)/Facade.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/Flyweight.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/GatewaySemaphore.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/GatewaySemaphoreGroup.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/GuardSemaphore.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/Handler.Plo ./$(DEPDIR)/Identifier.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/InvalidCompositeException.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/InvalidIteratorException.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/InvalidThreadException.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/IteratorBoundsException.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/IteratorException.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/Mediator.Plo ./$(DEPDIR)/Memento.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/Memory.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/MemoryStorage.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/MutexSemaphore.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/MutexSemaphoreGroup.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/NullPointerException.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/Observer.Plo ./$(DEPDIR)/Request.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/Semaphore.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/SemaphoreCommon.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/SemaphoreException.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/SemaphoreGroup.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/State.Plo ./$(DEPDIR)/Storage.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/StorageException.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/Strategy.Plo ./$(DEPDIR)/StringUtf8.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/Subject.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/Synchronized.Plo ./$(DEPDIR)/Thread.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/ThreadContext.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/ThreadException.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/TransientStorage.Plo \ @AMDEP_TRUE@ ./$(DEPDIR)/Visitor.Plo ./$(DEPDIR)/corelinux.Plo CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ DIST_SOURCES = $(libcl___la_SOURCES) DIST_COMMON = $(srcdir)/Makefile.in Makefile.am SOURCES = $(libcl___la_SOURCES) all: all-am .SUFFIXES: .SUFFIXES: .cpp .hpp .h .lo .o .obj $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/classlibs/corelinux/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) libLTLIBRARIES_INSTALL = $(INSTALL) install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(libdir) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(libdir)/$$f"; \ $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(libdir)/$$f; \ else :; fi; \ done uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ p="`echo $$p | sed -e 's|^.*/||'`"; \ echo " $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p"; \ $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" = "$$p" && dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libcl++.la: $(libcl___la_OBJECTS) $(libcl___la_DEPENDENCIES) $(CXXLINK) -rpath $(libdir) $(libcl___la_LDFLAGS) $(libcl___la_OBJECTS) $(libcl___la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) core *.core distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AbstractCommand.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AbstractFactoryException.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AbstractSemaphore.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AbstractString.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Adapter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Allocator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AllocatorAlreadyExistsException.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AllocatorNotFoundException.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Assertion.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BoundsException.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Colleague.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Command.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CommandFrame.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CommandFrameException.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Component.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CompositeException.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Context.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CoreLinuxGuardGroup.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CoreLinuxGuardPool.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CoreLinuxObject.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Environment.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/EventSemaphore.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/EventSemaphoreGroup.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Exception.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Facade.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Flyweight.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GatewaySemaphore.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GatewaySemaphoreGroup.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GuardSemaphore.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Handler.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Identifier.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/InvalidCompositeException.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/InvalidIteratorException.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/InvalidThreadException.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IteratorBoundsException.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IteratorException.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Mediator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Memento.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Memory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MemoryStorage.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MutexSemaphore.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MutexSemaphoreGroup.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/NullPointerException.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Observer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Request.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Semaphore.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SemaphoreCommon.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SemaphoreException.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SemaphoreGroup.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/State.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Storage.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/StorageException.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Strategy.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/StringUtf8.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Subject.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Synchronized.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Thread.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ThreadContext.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ThreadException.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TransientStorage.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Visitor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/corelinux.Plo@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: $(mkinstalldirs) $(DESTDIR)$(libdir) install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-exec-am: install-libLTLIBRARIES install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am uninstall-libLTLIBRARIES .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am info info-am install \ install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am \ install-libLTLIBRARIES install-man install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-info-am \ uninstall-libLTLIBRARIES # do not use release release # each version will be binary incompatible # use libtool versioning system instead # but I keep this for reference # -release ${CORELINUX_MAJOR_VERSION}.${CORELINUX_MINOR_VERSION}.${CORELINUX_MICRO_VERSION} # # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/classlibs/corelinux/CoreLinuxGuardGroup.cpp0000664000000000000000000001260107115717730022371 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__CORELINUXGUARDGROUP_HPP) #include #endif #if !defined(__GUARDSEMAPHORE_HPP) #include #endif namespace corelinux { // // Basic group constructor // CoreLinuxGuardGroup::CoreLinuxGuardGroup( Short aSemCount ) throw(Assertion,SemaphoreException) : SemaphoreGroup( aSemCount ), theUsedMap( ::new AbstractSemaphorePtr[aSemCount] ) { REQUIRE( theUsedMap != NULLPTR ); memset( theUsedMap,0,aSemCount * sizeof(VoidPtr) ); } // // Destructor // CoreLinuxGuardGroup::~CoreLinuxGuardGroup( void ) { if( theUsedMap != NULLPTR ) { delete [] theUsedMap; theUsedMap = NULLPTR; } else { ; // do nothing } } // // Creates a default semaphore // AbstractSemaphorePtr CoreLinuxGuardGroup::createSemaphore( void ) throw( SemaphoreException ) { AbstractSemaphorePtr aSem(NULLPTR); Short maxSems( getSemaphoreCount() ); for( Short x = 0; x < maxSems && aSem == NULLPTR ; ++x ) { if( theUsedMap[x] == NULLPTR ) { SemaphoreIdentifier aSemId(x); theUsedMap[x] = aSem = new GuardSemaphore ( this, aSemId ); } else { ; // try next } } if( aSem == NULLPTR ) { throw SemaphoreException ( "Can't create semaphore", LOCATION, Exception::CONTINUABLE ); } return aSem; } // // Creates, or opens, a specific semaphore in the // group // AbstractSemaphorePtr CoreLinuxGuardGroup::createSemaphore ( SemaphoreIdentifierRef aIdentifier, CreateDisposition disp, bool Recursive, bool Balking ) throw( SemaphoreException ) { AbstractSemaphorePtr aSem( NULLPTR ); SemaphoreIdentifier maxSems( getSemaphoreCount() ); ENSURE( aIdentifier <= maxSems ); ENSURE( aIdentifier >= SemaphoreIdentifier(0) ); if( theUsedMap[aIdentifier.getScalar()] != NULLPTR ) { if( disp != FAIL_IF_EXISTS ) { aSem = theUsedMap[aIdentifier.getScalar()]; } else { throw SemaphoreException ( "Semaphore exists exception", LOCATION, Exception::CONTINUABLE ); } } else { if( disp != FAIL_IF_NOTEXISTS ) { theUsedMap[aIdentifier.getScalar()] = aSem = new GuardSemaphore ( this, aIdentifier ); } else { throw SemaphoreException ( "Semaphore does not exist", LOCATION ); } } return aSem; } // // Creates or opens a specific named semaphore in the // group (not implemented) // AbstractSemaphorePtr CoreLinuxGuardGroup::createSemaphore ( std::string aName, CreateDisposition disp, bool Recursive, bool Balking ) throw( SemaphoreException ) { AbstractSemaphorePtr aSem(NULLPTR); throw SemaphoreException ( "Semaphore does not exist", LOCATION ); return aSem; } // // Destroy the semapore // void CoreLinuxGuardGroup::destroySemaphore( AbstractSemaphorePtr aPtr ) throw( SemaphoreException ) { REQUIRE( aPtr != NULLPTR ); if( aPtr->getGroupIdentifier() == getIdentifier() ) { if( theUsedMap[aPtr->getIdentifier().getScalar()] != NULLPTR ) { theUsedMap[aPtr->getIdentifier().getScalar()] = NULLPTR; delete aPtr; } else { ; // double delete exception MAYBE!!! } } else { throw SemaphoreException ( "Semaphore not part of group", LOCATION ); } } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.3 $ $Date: 2000/06/02 11:51:52 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/Allocator.cpp0000664000000000000000000000524607107245525020407 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__ALLOCATOR_HPP) #include #endif namespace corelinux { // // Default constructor // Allocator::Allocator( void ) : Strategy(), theAllocates( 0 ), theDeallocates( 0 ) { ; // do nothing } // // Copy constructor // Allocator::Allocator( AllocatorCref aRef ) : Strategy( aRef ), theAllocates( 0 ), theDeallocates( 0 ) { ; // do nothing } // // Destructor // Allocator::~Allocator( void ) { ; // do nothing } // // Assignment operator // AllocatorRef Allocator::operator=( AllocatorCref aRef ) { if( this->operator==( aRef ) != true ) { theAllocates = 0; theDeallocates = 0; } else { ; // do nothing } return (*this); } // // Equality operator // bool Allocator::operator==( AllocatorCref aRef ) const { return ( this == &aRef ); } // // Get allocate count // CountCref Allocator::getAllocateCount( void ) const { return theAllocates; } // // Get deallocate count // CountCref Allocator::getDeallocateCount( void ) const { return theDeallocates; } // // Counter adjustment methods // void Allocator::incrementAllocates( void ) { ++theAllocates; } void Allocator::incrementDeallocates( void ) { ++theDeallocates; } void Allocator::decrementAllocates( void ) { --theAllocates; } void Allocator::decrementDeallocates( void ) { --theDeallocates; } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/05/13 12:32:21 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/AbstractCommand.cpp0000664000000000000000000000344407103721754021526 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__ABSTRACTCOMMAND_HPP) #include #endif namespace corelinux { // Default constructor AbstractCommand::AbstractCommand( void ) : Synchronized() { ; // do nothing } // Copy constructor AbstractCommand::AbstractCommand( AbstractCommandCref ) : Synchronized() { ; // do nothing } // Destructor AbstractCommand::~AbstractCommand( void ) { ; // do nothing } // Assignment operator AbstractCommandRef AbstractCommand::operator=( AbstractCommandCref ) { return (*this); } // Equality operator bool AbstractCommand::operator==( AbstractCommandCref aCommand ) const { return ( this == &aCommand ); } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/05/03 03:58:36 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/Visitor.cpp0000664000000000000000000000370307106675063020125 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__VISITOR_HPP) #include #endif namespace corelinux { // // Default constructor // Visitor::Visitor( void ) { ; // do nothing } // // Copy constructor // Visitor::Visitor( VisitorCref ) { ; // do nothing } // // Destructor // Visitor::~Visitor( void ) { ; // do nothing } // // Assignment operator // VisitorRef Visitor::operator=( VisitorCref ) { return (*this); } // // Equality operator // bool Visitor::operator==( VisitorCref aRef ) const { bool isMe(false); if( this == &aRef ) { isMe = true; } else { ; // do nothing } return isMe; } // // Non-equality operator // bool Visitor::operator!=( VisitorCref aRef ) const { return !(this->operator==(aRef)); } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/05/12 03:27:47 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/EventSemaphore.cpp0000664000000000000000000001470407204610676021414 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__EVENTSEMAPHORE_HPP) #include #endif extern "C" { #include } namespace corelinux { // // Default constructor not allowed // EventSemaphore::EventSemaphore( void ) throw(Assertion) : Semaphore() { NEVER_GET_HERE; } // // Copy constructor not allowed // EventSemaphore::EventSemaphore( EventSemaphoreCref ) throw(Assertion) : Semaphore() { NEVER_GET_HERE; } // // Default Constructor // EventSemaphore::EventSemaphore ( SemaphoreGroupPtr aGroup, SemaphoreIdentifierRef aIdentifier, Counter aMaxListener, bool aRecursionFlag, bool aBalkingFlag ) throw ( NullPointerException ) : Semaphore(aGroup,aIdentifier,aRecursionFlag,aBalkingFlag), theNumListeners (0), theMaxListeners (aMaxListener) { setValue( 1 ); // automatically lock upon creation Semaphore::setOwnerId(); } // // Destructor // EventSemaphore::~EventSemaphore( void ) { ; // do nothing } // // Returns true if lock value != 0 // bool EventSemaphore::isLocked( void ) { return getValue(); } // // Indicates owner's commitment to trigger an event // SemaphoreOperationStatus EventSemaphore::post( void ) throw(SemaphoreException) { SemaphoreOperationStatus aStatus(SUCCESS); if ( Thread::getThreadIdentifier() == getOwnerId() ) { if ( theNumListeners == 0 ) { setValue( 1 ); // lock it again } else { aStatus = UNAVAILABLE; } } else { throw SemaphoreException ( "Not authorized to post an event", LOCATION, Exception::CONTINUABLE ); } return aStatus; } // // Call for lock with wait disposition // SemaphoreOperationStatus EventSemaphore::lockWithWait( void ) throw(SemaphoreException) { SemaphoreOperationStatus aStatus(SUCCESS); Guard myGuard( Synchronized::access() ); if ( isLocked() == true ) { if ( ( theMaxListeners >= 0 && theNumListeners < theMaxListeners ) || theMaxListeners < 0 ) { // resource available theNumListeners++; myGuard.release(); aStatus = waitZero( 0 ); if ( aStatus == SUCCESS ) { theNumListeners--; } else { ; // do nothing } } else { // // theNumListeners >= theMaxListeners >= 0 // myGuard.release(); if ( isBalkingEnabled() == true ) { aStatus = BALKED; } else { aStatus = UNAVAILABLE; } } } else { // // the semaphore is not locked // myGuard.release(); aStatus = UNAVAILABLE; } return aStatus; } // // Call for lock without waiting // SemaphoreOperationStatus EventSemaphore::lockWithNoWait( void ) throw( SemaphoreException ) { SemaphoreOperationStatus aStatus(SUCCESS); Guard myGuard( Synchronized::access() ); if ( isLocked() == true ) { if ( ( theMaxListeners >= 0 && theNumListeners < theMaxListeners ) || theMaxListeners < 0 ) { // resource available theNumListeners++; myGuard.release(); aStatus = waitZero( IPC_NOWAIT ); if ( aStatus == SUCCESS ) { theNumListeners--; } else { ; // do nothing } } else { // // theNumListeners >= theMaxListeners >= 0 // myGuard.release(); if ( isBalkingEnabled() == true ) { aStatus = BALKED; } else { aStatus = UNAVAILABLE; } } } else { // // the semaphore is not locked // aStatus = UNAVAILABLE; } return aStatus; } // // Call release for lock // SemaphoreOperationStatus EventSemaphore::release( void ) throw( SemaphoreException ) { GUARD; SemaphoreOperationStatus aStatus( SUCCESS ); // // Take the fast way if possible // aStatus = setLock( IPC_NOWAIT ); return aStatus; } // // Set number of listeners limit // void EventSemaphore::setLimit( Counter aLimit ) throw( SemaphoreException ) { if ( Thread::getThreadIdentifier() == getOwnerId() ) { theMaxListeners = aLimit; } else { throw SemaphoreException ( "Not authorized to set limit", LOCATION, Exception::CONTINUABLE ); } } // // Get number of listeners limit // Counter EventSemaphore::getLimit( void ) const { return theMaxListeners; } } /* Common rcs information do not modify $Author: dulimart $ $Revision: 1.4 $ $Date: 2000/11/15 22:44:14 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/Colleague.cpp0000664000000000000000000000520007105163367020356 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__COLLEAGUE_HPP) #include #endif #if !defined(__MEDIATOR_HPP) #include #endif namespace corelinux { // Default blowout Colleague::Colleague( void ) throw ( Assertion ) : theMediator( NULLPTR ) { NEVER_GET_HERE; } // Valid initializing constructor Colleague::Colleague( MediatorPtr aMediator ) throw ( NullPointerException ) : theMediator( aMediator ) { if( theMediator == NULLPTR ) { throw NullPointerException( LOCATION ); } else { ; // do nothing } } // Copy constructor Colleague::Colleague( ColleagueCref aColleague ) : theMediator( aColleague.theMediator ) { ; // do nothing } // Destructor Colleague::~Colleague( void ) { theMediator = NULLPTR; } // Assignment operator ColleagueRef Colleague::operator=( ColleagueCref aColleague ) { if( *this == aColleague ) { ; // do nothing } else { theMediator = aColleague.theMediator; } return ( *this ); } // Equality operator bool Colleague::operator ==( ColleagueCref aColleague ) const { return ( this == &aColleague ); } // Calls mediator with event void Colleague::invokeMediator( Event *anEvent ) throw ( NullPointerException ) { if( anEvent == NULLPTR ) { throw NullPointerException(LOCATION); } else { ; // do nothing } theMediator->action(anEvent); } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/05/07 03:45:59 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/Handler.cpp0000664000000000000000000001313507117164274020042 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__HANDLER_HPP) #include #endif namespace corelinux { // Default constructor Handler::Handler( void ) : Synchronized(), theSuccessor( NULLPTR ), thePredecessor( NULLPTR ) { ; // do nothing else for the moment } // Copy constructor Handler::Handler( HandlerCref aHandler ) : Synchronized( aHandler ), theSuccessor( NULLPTR ), thePredecessor( NULLPTR ) { ; // do nothing else for the moment } // Destructor will handle removing itself // from the chain if needed Handler::~Handler( void ) { this->extractSelf(); } // Assignment operator HandlerRef Handler::operator=( HandlerCref ) { return ( *this ); } // Equality operator bool Handler::operator==( HandlerCref aHandler ) const { return ( this == &aHandler ); } // Retrieve successor operator overload HandlerPtr Handler::operator++( void ) { GUARD; return theSuccessor; } // Retrieve the predecessor HandlerPtr Handler::operator--( void ) { GUARD; return thePredecessor; } // Inserts self after handler void Handler::succeedHandler( HandlerPtr aHandler ) throw ( Assertion ) { REQUIRE( aHandler != NULLPTR ); REQUIRE( aHandler != this ); REQUIRE( theSuccessor == NULLPTR ); REQUIRE( thePredecessor == NULLPTR ); GUARD; // Double-linked list behavior // // Get the existing successor for the target // if none exists, do nothing, otherwise // make the existing one our successor. // HandlerPtr existingLink( ++(*aHandler) ); if( existingLink == NULLPTR ) { ; // do nothing, taken care of later } else if( existingLink != this ) { existingLink->setPredecessor(this); theSuccessor = existingLink; } else { NEVER_GET_HERE; } // // Let target know we succeed it and // let ourselves know our predeccessor. // aHandler->setSuccessor(this); thePredecessor = aHandler; } // Insert self before handler void Handler::precedeHandler( HandlerPtr aHandler ) throw ( Assertion ) { REQUIRE( aHandler != NULLPTR ); REQUIRE( aHandler != this ); REQUIRE( theSuccessor == NULLPTR ); REQUIRE( thePredecessor == NULLPTR ); GUARD; // Double-linked list behavior // // Get the existing predecessor for the target // if none exists, do nothing, otherwise // make the existing one our predeccessor // HandlerPtr existingLink( --(*aHandler) ); if( existingLink == NULLPTR ) { ; // do nothing, taken care of later } else if( existingLink != this ) { existingLink->setSuccessor(this); thePredecessor = existingLink; } else { NEVER_GET_HERE; } // // Make us the predeccessor of the target // and let us know our successor // aHandler->setPredecessor(this); theSuccessor = aHandler; } // Removes ourselves from the chain void Handler::extractSelf( void ) { GUARD; if( theSuccessor != NULLPTR ) { theSuccessor->setPredecessor( thePredecessor ); } else { ; // do nothing } if( thePredecessor != NULLPTR ) { thePredecessor->setSuccessor( theSuccessor ); } else { ; // do nothing } theSuccessor = thePredecessor = NULLPTR; } // Either handle the request, pass it on, or ??? void Handler::handleRequest( RequestPtr aRequest ) { if( this->handlesType( aRequest ) == true ) { this->handle( aRequest ); } else { if( ++(*this) != NULLPTR ) { (++(*this))->handleRequest( aRequest ); } else { ; // unhandled request exception? } } } // Protected access to member void Handler::setSuccessor( HandlerPtr aHandler ) { GUARD; theSuccessor = aHandler; } // Sets the objects thePredecessor member void Handler::setPredecessor( HandlerPtr aHandler ) { GUARD; thePredecessor = aHandler; } // Sets the object siblings as atomic operation void Handler::setSiblings( HandlerPtr aSuccessor, HandlerPtr aPredecessor ) { GUARD; theSuccessor = aSuccessor; thePredecessor = aPredecessor; } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/06/06 12:04:12 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/State.cpp0000664000000000000000000000412407110412612017524 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__STATE_HPP) #include #endif #if !defined(__CONTEXT_HPP) #include #endif namespace corelinux { // // Default constructor // State::State( void ) { ; // do nothing } // // Copy constructor // State::State( StateCref ) throw ( Assertion ) { NEVER_GET_HERE; } // // Destructor // State::~State( void ) { ; // do nothing } // // Assignment operator // StateRef State::operator=( StateCref ) throw ( Assertion ) { NEVER_GET_HERE; return (*this); } // // Equality operator // bool State::operator==( StateCref aState ) const { return ( this == &aState ); } // Sets the state in the context void State::setCurrentState( ContextPtr aContext , StatePtr aState ) throw ( NullPointerException ) { if( aContext != NULLPTR ) { aContext->changeState(aState); } else { throw NullPointerException( LOCATION ); } } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/05/17 03:44:10 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/Memento.cpp0000664000000000000000000000347007105163367020071 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__MEMENTO_HPP) #include #endif namespace corelinux { // // Default constructor // Memento::Memento( void ) { ; // do nothing } // // Copy constructor // Memento::Memento( MementoCref ) { ; // do nothing } // // Destructor // Memento::~Memento( void ) { ; // do nothing } // // Assignment operator // MementoRef Memento::operator=( MementoCref ) { return (*this); } // // Equality operator // bool Memento::operator==( MementoCref aRef ) const { return ( this == &aRef ); } // // Non-equality operator // bool Memento::operator!=( MementoCref aRef ) const { return !( *this == aRef ); } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/05/07 03:45:59 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/MutexSemaphore.cpp0000664000000000000000000001537207115717730021437 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__MUTEXSEMAPHORE_HPP) #include #endif #include namespace corelinux { // // Default constructor not allowed // MutexSemaphore::MutexSemaphore( void ) throw(Assertion) : Semaphore() { NEVER_GET_HERE; } // // Copy constructor not allowed // MutexSemaphore::MutexSemaphore( MutexSemaphoreCref ) throw(Assertion) : Semaphore() { NEVER_GET_HERE; } // // Default Constructor // MutexSemaphore::MutexSemaphore ( SemaphoreGroupPtr aGroup, SemaphoreIdentifierRef aIdentifier, bool aAutoLockFlag, bool aRecursionFlag, bool aBalkingFlag ) throw ( NullPointerException ) : Semaphore(aGroup,aIdentifier,aRecursionFlag,aBalkingFlag) { setValue(1); if( aAutoLockFlag == true ) { this->lockWithWait(); Semaphore::setOwnerId(); } else { ; // do nothing } } // // Destructor // MutexSemaphore::~MutexSemaphore( void ) { ; // do nothing } // // Returns true if lock value == 0 // bool MutexSemaphore::isLocked( void ) { return !( getValue() ); } // // Call for lock with wait disposition // SemaphoreOperationStatus MutexSemaphore::lockWithWait( void ) throw(SemaphoreException) { SemaphoreOperationStatus aStatus(SUCCESS); Guard myGuard( Synchronized::access() ); // // If not yet locked, go quickly // if( getOwnerId().getScalar() == 0 ) { myGuard.release(); if( ( aStatus = setLock(0) ) == SUCCESS ) { Semaphore::setOwnerId(); } else { ; // do nothing, error will be returned } } // // Otherwise if locked // else { // if balking if( isBalkingEnabled() == true ) { aStatus = BALKED; } else { ; // do nothing } // // even with balking, if we allow recursion // and we are the same thread // then recurse // if( isRecursionEnabled() == true && Thread::getThreadIdentifier() == getOwnerId() ) { ++(*this); aStatus = SUCCESS; } // If I am not balked else if( aStatus != BALKED ) { myGuard.release(); if( ( aStatus = setLock(0) ) == SUCCESS ) { Semaphore::setOwnerId(); } else { ; // do nothing, error } } else { ; // do nothing, balked } } return aStatus; } // // Call for lock without waiting // SemaphoreOperationStatus MutexSemaphore::lockWithNoWait( void ) throw( SemaphoreException ) { GUARD; SemaphoreOperationStatus aStatus(UNAVAILABLE); // // If not locked, push through // if( getOwnerId().getScalar() == 0 ) { if( ( aStatus = setLock(IPC_NOWAIT) ) == SUCCESS ) { Semaphore::setOwnerId(); } else { ; // do nothing or exception? } } // // If we are locked // else { // if balking enabled if( isBalkingEnabled() == true ) { aStatus = BALKED; } else { ; // do nothing, unavailable covered } // // even with balking, if recursion is // allowed AND we are the owner // if( isRecursionEnabled() == true && Thread::getThreadIdentifier() == getOwnerId() ) { ++(*this); aStatus = SUCCESS; } else { ; // do nothing for recurs == false // or if it is and we are not the owner // because UNAVAILABLE and BALKED cover // the bases } } return aStatus; } // // Call release for lock // SemaphoreOperationStatus MutexSemaphore::release( void ) throw(SemaphoreException) { GUARD; SemaphoreOperationStatus aStatus( SUCCESS ); ThreadIdentifier aThread( Thread::getThreadIdentifier() ); Word aLen( getRecursionQueueLength() ); // // Take the fast way if possible // if( aLen == 0 ) { if( ( aStatus = setUnlock( IPC_NOWAIT ) ) == SUCCESS ) { Semaphore::resetOwnerId(); } else { ; // do nothing, error } } else { // // Otherwise, if we have recursed we decrement // and check for true unlock // if( getOwnerId() == Thread::getThreadIdentifier() ) { --(*this); --aLen; if( aLen == 0 ) { if( ( aStatus = setUnlock( IPC_NOWAIT ) ) == SUCCESS ) { Semaphore::resetOwnerId(); } else { ; // do nothing, error } } else { ; // do nothing, more to go } } // // Otherwise, we can't release the // lock on behalf of another thread // when we have a recursion // else { aStatus = UNAVAILABLE; } } return aStatus; } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.4 $ $Date: 2000/06/02 11:51:52 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/BoundsException.cpp0000664000000000000000000000511307076071224021567 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__BOUNDSEXCEPTION_HPP) #include #endif namespace corelinux { // // Default public constructor // BoundsException::BoundsException ( CharCptr file, LineNum line, Severity severity, bool outOfMemory ) : StorageException("BoundsException",file,line,severity,outOfMemory) { ; // do nothing } // // Implementation protected constructor // BoundsException::BoundsException ( CharCptr why, CharCptr file, LineNum line, Severity severity, bool outOfMemory ) : StorageException(why,file,line,severity,outOfMemory) { ; // do nothing } // // Default protected constructor // BoundsException::BoundsException( void ) : StorageException() { NEVER_GET_HERE; } // // Copy constructor // BoundsException::BoundsException( BoundsExceptionCref aRef ) : StorageException( aRef ) { ; // do nothing } // // Destructor // BoundsException::~BoundsException( void ) { ; // do nothing } // // Assignment operator // BoundsExceptionRef BoundsException::operator= ( BoundsExceptionCref aRef ) { StorageException::operator=( aRef ); return (*this); } // // Equality operator // bool BoundsException::operator==( BoundsExceptionCref aRef ) const { return (this == &aRef); } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/04/15 13:45:56 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/AllocatorNotFoundException.cpp0000664000000000000000000000524207044611503023730 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__ALLOCATORNOTFOUNDEXCEPTION_HPP) #include #endif #if !defined(__ABSTRACTFACTORYEXCEPTION_HPP) #include #endif namespace corelinux { // // Default public constructor // AllocatorNotFoundException::AllocatorNotFoundException ( CharCptr file, LineNum line, Severity severity, bool outOfMemory ) : AbstractFactoryException ( "AllocatorNotFoundException", file,line,severity,outOfMemory ) { ; // do nothing } // // Default protected constructor // AllocatorNotFoundException::AllocatorNotFoundException( void ) : AbstractFactoryException() { NEVER_GET_HERE; } // // Copy constructor // AllocatorNotFoundException::AllocatorNotFoundException ( AllocatorNotFoundExceptionCref aRef ) : AbstractFactoryException( aRef ) { ; // do nothing } // // Destructor // AllocatorNotFoundException::~AllocatorNotFoundException( void ) { ; // do nothing } // // Assignment operator // AllocatorNotFoundExceptionRef AllocatorNotFoundException::operator= ( AllocatorNotFoundExceptionCref aRef ) { AbstractFactoryException::operator=( aRef ); return (*this); } // // Equality operator // bool AllocatorNotFoundException::operator== ( AllocatorNotFoundExceptionCref aRef ) const { return (this == &aRef); } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/01/29 16:20:19 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/IteratorBoundsException.cpp0000664000000000000000000000466407040743437023316 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__ITERATORBOUNDSEXCEPTION_HPP) #include #endif namespace corelinux { // // Default public constructor // IteratorBoundsException::IteratorBoundsException ( CharCptr file, LineNum line, Severity severity, bool outOfMemory ) : IteratorException("IteratorBoundsException",file,line,severity,outOfMemory) { ; // do nothing } // // Default protected constructor // IteratorBoundsException::IteratorBoundsException( void ) : IteratorException() { NEVER_GET_HERE; } // // Copy constructor // IteratorBoundsException::IteratorBoundsException ( IteratorBoundsExceptionCref aRef ) : IteratorException( aRef ) { ; // do nothing } // // Destructor // IteratorBoundsException::~IteratorBoundsException( void ) { ; // do nothing } // // Assignment operator // IteratorBoundsExceptionRef IteratorBoundsException::operator= ( IteratorBoundsExceptionCref aRef ) { IteratorException::operator=( aRef ); return (*this); } // // Equality operator // bool IteratorBoundsException::operator== ( IteratorBoundsExceptionCref aRef ) const { return (this == &aRef); } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/01/18 01:51:27 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/InvalidCompositeException.cpp0000664000000000000000000000505607041753001023604 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__INVALIDCOMPOSITEEXCEPTION_HPP) #include #endif #if !defined(__COMPOSITEEXCEPTION_HPP) #include #endif namespace corelinux { // // Default public constructor // InvalidCompositeException::InvalidCompositeException ( CharCptr file, LineNum line, Severity severity, bool outOfMemory ) : CompositeException("InvalidCompositeException",file,line,severity,outOfMemory) { ; // do nothing } // // Default protected constructor // InvalidCompositeException::InvalidCompositeException( void ) : CompositeException() { NEVER_GET_HERE; } // // Copy constructor // InvalidCompositeException::InvalidCompositeException ( InvalidCompositeExceptionCref aRef ) : CompositeException( aRef ) { ; // do nothing } // // Destructor // InvalidCompositeException::~InvalidCompositeException( void ) { ; // do nothing } // // Assignment operator // InvalidCompositeExceptionRef InvalidCompositeException::operator= ( InvalidCompositeExceptionCref aRef ) { CompositeException::operator=( aRef ); return (*this); } // // Equality operator // bool InvalidCompositeException::operator== ( InvalidCompositeExceptionCref aRef ) const { return (this == &aRef); } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/01/21 03:44:01 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/StorageException.cpp0000664000000000000000000000507307075612517021753 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__STORAGEEXCEPTION_HPP) #include #endif namespace corelinux { // // Default public constructor // StorageException::StorageException ( CharCptr file, LineNum line, Severity severity, bool outOfMemory ) : Exception("StorageException",file,line,severity,outOfMemory) { ; // do nothing } // // Implementation protected constructor // StorageException::StorageException ( CharCptr why, CharCptr file, LineNum line, Severity severity, bool outOfMemory ) : Exception(why,file,line,severity,outOfMemory) { ; // do nothing } // // Default protected constructor // StorageException::StorageException( void ) : Exception() { NEVER_GET_HERE; } // // Copy constructor // StorageException::StorageException( StorageExceptionCref aRef ) : Exception( aRef ) { ; // do nothing } // // Destructor // StorageException::~StorageException( void ) { ; // do nothing } // // Assignment operator // StorageExceptionRef StorageException::operator= ( StorageExceptionCref aRef ) { Exception::operator=( aRef ); return (*this); } // // Equality operator // bool StorageException::operator==( StorageExceptionCref aRef ) const { return (this == &aRef); } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/04/14 12:55:43 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/Observer.cpp0000664000000000000000000000435507105301531020242 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__OBSERVER_HPP) #include #endif namespace corelinux { // // Default constructor // Observer::Observer( void ) { ; // do nothing } // // Copy constructor // Observer::Observer( ObserverCref ) { ; // do nothing } // // Destructor // Observer::~Observer( void ) { ; // do nothing } // // Assignment operator // ObserverRef Observer::operator=( ObserverCref ) { return (*this); } // // Equality operator // bool Observer::operator==( ObserverCref aRef ) const { bool isMe(false); if( this == &aRef ) { isMe = true; } else { ; // do nothing } return isMe; } // // Non-equality operator // bool Observer::operator!=( ObserverCref aRef ) const { return !(this->operator==(aRef)); } // Event default, does nothing void Observer::event( Event * anEvent ) throw ( NullPointerException ) { if( anEvent == NULLPTR ) { throw NullPointerException(LOCATION); } else { ; // do nothing } } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/05/07 14:53:13 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/Storage.cpp0000664000000000000000000000317107075612517020071 0ustar /* CoreLinux++ Copyright (C) 1999,2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__STORAGE_HPP) #include #endif namespace corelinux { // Constructor Storage::Storage( void ) { ; // do nothing } // Copy constructor Storage::Storage( StorageCref ) { ; // vacuous, do nothing } // Destructor Storage::~Storage( void ) { ; // vacuous, do nothing } // Operator assignment StorageRef Storage::operator=( StorageCref ) { return (*this); } // Equality operator bool Storage::operator==( StorageCref aRef ) const { return ( this == &aRef ); } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/04/14 12:55:43 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/corelinux/AbstractString.cpp0000664000000000000000000000337307036653430021417 0ustar /* CoreLinux++ Copyright (C) 1999 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if !defined(__COMMON_HPP) #include #endif // // Base CoreLinux string interface // namespace corelinux { // // Default constructor // AbstractString::AbstractString( void ) { ; // do nothing } // // Copy constructor // AbstractString::AbstractString( AbstractStringCref ) { ; // do nothing } // // Destructor // AbstractString::~AbstractString( void ) { ; // do nothing } // // Assignment operator overload // AbstractStringRef AbstractString::operator=( AbstractStringCref ) { return *this; } // // Comparison operator overload // bool AbstractString::operator==( AbstractStringCref aRef ) const { return (this == &aRef); } } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.2 $ $Date: 2000/01/11 16:15:20 $ $Locker: $ */ libcorelinux-0.4.32/src/classlibs/Makefile.am0000664000000000000000000000062307100671013015765 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 16-Mar-00 at 21:48:38 # LAST-MOD: 16-Mar-00 at 21:48:50 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = corelinuxlibcorelinux-0.4.32/src/classlibs/Makefile.in0000664000000000000000000003201407743170744016017 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 16-Mar-00 at 21:48:38 # LAST-MOD: 16-Mar-00 at 21:48:50 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = corelinux subdir = src/classlibs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = DIST_SOURCES = RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \ ps-recursive install-info-recursive uninstall-info-recursive \ all-recursive install-data-recursive install-exec-recursive \ installdirs-recursive install-recursive uninstall-recursive \ check-recursive installcheck-recursive DIST_COMMON = $(srcdir)/Makefile.in Makefile.am DIST_SUBDIRS = $(SUBDIRS) all: all-recursive .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/classlibs/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if (etags --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ else \ include_option=--include; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -f $$subdir/TAGS && \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ || exit 1; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" \ distdir=../$(distdir)/$$subdir \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-recursive dvi-am: info: info-recursive info-am: install-data-am: install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \ clean-generic clean-libtool clean-recursive ctags \ ctags-recursive distclean distclean-generic distclean-libtool \ distclean-recursive distclean-tags distdir dvi dvi-am \ dvi-recursive info info-am info-recursive install install-am \ install-data install-data-am install-data-recursive \ install-exec install-exec-am install-exec-recursive \ install-info install-info-am install-info-recursive install-man \ install-recursive install-strip installcheck installcheck-am \ installdirs installdirs-am installdirs-recursive \ maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-generic \ mostlyclean-libtool mostlyclean-recursive pdf pdf-am \ pdf-recursive ps ps-am ps-recursive tags tags-recursive \ uninstall uninstall-am uninstall-info-am \ uninstall-info-recursive uninstall-recursive # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/Makefile.am0000664000000000000000000000064607120516135014020 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 16-Mar-00 at 21:48:19 # LAST-MOD: 10-Apr-00 at 08:31:14 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = classlibs testdrivers utils libcorelinux-0.4.32/src/Makefile.in0000664000000000000000000003200407743170744014037 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 16-Mar-00 at 21:48:19 # LAST-MOD: 10-Apr-00 at 08:31:14 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = classlibs testdrivers utils subdir = src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = DIST_SOURCES = RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \ ps-recursive install-info-recursive uninstall-info-recursive \ all-recursive install-data-recursive install-exec-recursive \ installdirs-recursive install-recursive uninstall-recursive \ check-recursive installcheck-recursive DIST_COMMON = $(srcdir)/Makefile.in Makefile.am DIST_SUBDIRS = $(SUBDIRS) all: all-recursive .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if (etags --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ else \ include_option=--include; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -f $$subdir/TAGS && \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = .. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ || exit 1; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" \ distdir=../$(distdir)/$$subdir \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-recursive dvi-am: info: info-recursive info-am: install-data-am: install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \ clean-generic clean-libtool clean-recursive ctags \ ctags-recursive distclean distclean-generic distclean-libtool \ distclean-recursive distclean-tags distdir dvi dvi-am \ dvi-recursive info info-am info-recursive install install-am \ install-data install-data-am install-data-recursive \ install-exec install-exec-am install-exec-recursive \ install-info install-info-am install-info-recursive install-man \ install-recursive install-strip installcheck installcheck-am \ installdirs installdirs-am installdirs-recursive \ maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-generic \ mostlyclean-libtool mostlyclean-recursive pdf pdf-am \ pdf-recursive ps ps-am ps-recursive tags tags-recursive \ uninstall uninstall-am uninstall-info-am \ uninstall-info-recursive uninstall-recursive # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/utils/0000775000000000000000000000000007743170762013133 5ustar libcorelinux-0.4.32/src/utils/Makefile.am0000664000000000000000000000062107120516052015147 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Frank V. Castellucci # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 04-Jun-2000 # LAST-MOD: $Id: Makefile.am,v 1.1 2000/06/10 19:51:06 frankc Exp $ # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = csamon libcorelinux-0.4.32/src/utils/Makefile.in0000664000000000000000000003177707743170762015217 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Frank V. Castellucci # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 04-Jun-2000 # LAST-MOD: $Id: Makefile.am,v 1.1 2000/06/10 19:51:06 frankc Exp $ # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc SUBDIRS = csamon subdir = src/utils ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = DIST_SOURCES = RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \ ps-recursive install-info-recursive uninstall-info-recursive \ all-recursive install-data-recursive install-exec-recursive \ installdirs-recursive install-recursive uninstall-recursive \ check-recursive installcheck-recursive DIST_COMMON = $(srcdir)/Makefile.in Makefile.am DIST_SUBDIRS = $(SUBDIRS) all: all-recursive .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/utils/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $$MAKEFLAGS; amf=$$2; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if (etags --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ else \ include_option=--include; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -f $$subdir/TAGS && \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ || exit 1; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" \ distdir=../$(distdir)/$$subdir \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-recursive dvi-am: info: info-recursive info-am: install-data-am: install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \ clean-generic clean-libtool clean-recursive ctags \ ctags-recursive distclean distclean-generic distclean-libtool \ distclean-recursive distclean-tags distdir dvi dvi-am \ dvi-recursive info info-am info-recursive install install-am \ install-data install-data-am install-data-recursive \ install-exec install-exec-am install-exec-recursive \ install-info install-info-am install-info-recursive install-man \ install-recursive install-strip installcheck installcheck-am \ installdirs installdirs-am installdirs-recursive \ maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-generic \ mostlyclean-libtool mostlyclean-recursive pdf pdf-am \ pdf-recursive ps ps-am ps-recursive tags tags-recursive \ uninstall uninstall-am uninstall-info-am \ uninstall-info-recursive uninstall-recursive # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/utils/csamon/0000775000000000000000000000000010771017616014404 5ustar libcorelinux-0.4.32/src/utils/csamon/Makefile.am0000664000000000000000000000117107137770046016445 0ustar # -*- Mode: makefile -*- # SUMMARY : # USAGE : make # AUTHOR : Frank V. Castellucci # ORG : Christophe Prud'homme # E-MAIL : # ORIG-DATE : 04-Jun-2000 # LAST-MOD : $Id: Makefile.am,v 1.2 2000/07/27 08:17:42 prudhomm Exp $ # DESCRIPTION : # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc #SUBDIRS = include bin_PROGRAMS = csamon csamon_SOURCES = csamon.cpp csamon_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la # Common rcs information do not modify # $Author: prudhomm $ # $Revision: 1.2 $ # $Date: 2000/07/27 08:17:42 $ # $Locker: $ libcorelinux-0.4.32/src/utils/csamon/Makefile.in0000664000000000000000000003413207743170762016463 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY : # USAGE : make # AUTHOR : Frank V. Castellucci # ORG : Christophe Prud'homme # E-MAIL : # ORIG-DATE : 04-Jun-2000 # LAST-MOD : $Id: Makefile.am,v 1.2 2000/07/27 08:17:42 prudhomm Exp $ # DESCRIPTION : # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc #SUBDIRS = include bin_PROGRAMS = csamon csamon_SOURCES = csamon.cpp csamon_LDADD = ${top_builddir}/src/classlibs/corelinux/libcl++.la subdir = src/utils/csamon ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = bin_PROGRAMS = csamon$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) am_csamon_OBJECTS = csamon.$(OBJEXT) csamon_OBJECTS = $(am_csamon_OBJECTS) csamon_DEPENDENCIES = ${top_builddir}/src/classlibs/corelinux/libcl++.la csamon_LDFLAGS = DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/admin/depcomp am__depfiles_maybe = depfiles @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/csamon.Po CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ DIST_SOURCES = $(csamon_SOURCES) DIST_COMMON = $(srcdir)/Makefile.in Makefile.am SOURCES = $(csamon_SOURCES) all: all-am .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc .lo .obj $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/utils/csamon/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(bindir) @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f $(DESTDIR)$(bindir)/$$f"; \ rm -f $(DESTDIR)$(bindir)/$$f; \ done clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done csamon$(EXEEXT): $(csamon_OBJECTS) $(csamon_DEPENDENCIES) @rm -f csamon$(EXEEXT) $(CXXLINK) $(csamon_LDFLAGS) $(csamon_OBJECTS) $(csamon_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) core *.core distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/csamon.Po@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< .cpp.obj: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` .cpp.lo: @am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ @am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ @am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ @am__fastdepCXX_TRUE@ fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ETAGS = etags ETAGSFLAGS = CTAGS = ctags CTAGSFLAGS = tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$tags$$unique" \ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: $(mkinstalldirs) $(DESTDIR)$(bindir) install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-exec-am: install-binPROGRAMS install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libtool ctags distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-exec install-exec-am \ install-info install-info-am install-man install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-info-am # Common rcs information do not modify # $Author: prudhomm $ # $Revision: 1.2 $ # $Date: 2000/07/27 08:17:42 $ # $Locker: $ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/src/utils/csamon/csamon.cpp0000664000000000000000000001343510771017616016376 0ustar /* CoreLinux++ Copyright (C) 2000 CoreLinux Consortium The CoreLinux++ Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The CoreLinux++ Library Library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** This utility is for use in analysis of the SemaphoreCommon CSA */ #if !defined(__COMMON_HPP) #include #endif #if !defined(__MEMORY_HPP) #include #endif #if !defined(__SEMAPHORECOMMON_HPP) #include #endif #include #include using namespace corelinux; using namespace std; // // In module function prototypes // int main( int argc, char *argv[] ); void showDetails( MemoryStoragePtr ); void showHeader( CSAHeaderPtr ); void showGroups( CSAGrpHeaderPtr ); void showSemaphores( CSASemHeaderPtr ); // // General Functions // void handleAssertion( AssertionCref ); void handleException( ExceptionCref ); // // Thread entry point declarations // // // Global data // // // Main entry point // int main( int argc, char *argv[] ) { cout << endl; // // Practice graceful exception management // MemoryStoragePtr pStor( NULLPTR ); try { try { pStor = Memory::createStorage("clsemcsa.csa",0,FAIL_IF_NOTEXISTS,PUBLIC_READ,READ_ONLY); } catch( StorageExceptionRef aStorExcp ) { cerr << "No use of CSA evident" << endl; throw; } // // Setup signal handlers // // // Parse command lines // // // Perform desired functions // showDetails( pStor ); // // Get out // Memory::destroyStorage( pStor ); pStor = NULLPTR; } catch( StorageExceptionRef aSemExcp ) { cerr << "Storage Exception Received" << endl; handleException(aSemExcp); } catch( AssertionRef aAssert ) { handleAssertion(aAssert); } catch( ExceptionRef aException ) { handleException(aException); } catch( std::exception & e ) { cerr << e.what() << endl; } catch( ... ) { cerr << "Unknown exception." << endl; } if( pStor != NULLPTR ) { Memory::destroyStorage( pStor ); } else { ; // do nothing } return 0; } // // Shows the details by walking the tree // void showDetails( MemoryStoragePtr aStoragePtr ) { CSAHeaderPtr aBase = CSAHeaderPtr( *aStoragePtr ); showHeader( aBase ); CSAGrpHeaderPtr aGrp = CSAGrpHeaderPtr( aBase ); ++aGrp; cout << endl; cout << "CSA Group Information " << endl; for( Int x = 0; x < aBase->currentGrps; ++x ) { showGroups( aGrp ); aGrp += aGrp->groupSemCount+1; cout << endl; } } void showHeader( CSAHeaderPtr aHeader ) { cout << endl; cout << "CSA Header Descriptor" << endl; cout << "The owning process identifier : " << aHeader->creatorId << endl; cout << "Total number of sem groups : " << aHeader->currentGrps << endl; cout << "Total number of semaphores : " << aHeader->currentUsed << endl; } void showGroups( CSAGrpHeaderPtr aGrpPtr ) { cout << "Group information identifier : " << aGrpPtr->groupInfo << endl; cout << "Number of shares for group : " << aGrpPtr->groupShares << endl; cout << "Number of sems in group : " << aGrpPtr->groupSemCount << endl; CSASemHeaderPtr aSem = CSASemHeaderPtr( aGrpPtr ); for( Int x = 0; x < aGrpPtr->groupSemCount; ++x ) { ++aSem; cout << "\tSemaphore " << x << " details:" << endl; showSemaphores(aSem); } } void showSemaphores( CSASemHeaderPtr aSemPtr ) { cout << "\t\tLast known semaphore owner : " << aSemPtr->semOwner << endl; cout << "\t\tValue for semaphore : " ; if( aSemPtr->maxSemValue == Int(-1) ) { cout << "Group Controller" << endl; } else { cout << aSemPtr->maxSemValue << endl; } cout << "\t\tRecursive flag : " << (aSemPtr->isRecursive ? "true" : "false" ) << endl; cout << "\t\tBalking flag : " << (aSemPtr->isBalking ? "true" : "false" ) << endl; cout << "\t\tShares on this semaphore : " << aSemPtr->semShares << endl; } // // Error handlers // void handleAssertion( AssertionCref aAssert ) { cerr << aAssert.getFile() << ":" << aAssert.getLine() << ":" << "Assertion: "; if( aAssert.getType() == Assertion::NEVERGETHERE ) { cerr << "NEVER_GET_HERE"; } else { if( aAssert.getType() == Assertion::REQUIRE ) { cerr << "REQUIRE"; } else if( aAssert.getType() == Assertion::ENSURE ) { cerr << "ENSURE"; } else if( aAssert.getType() == Assertion::CHECK ) { cerr << "CHECK"; } else { cerr << "ASSERT"; } cerr << "( " << aAssert.getWhy() << " )"; } cerr << endl; } void handleException( ExceptionCref aExcp ) { cerr << aExcp.getFile() << ":" << aExcp.getLine() << ":" << "Exception: " << aExcp.getWhy() << endl; } /* Common rcs information do not modify $Author: frankc $ $Revision: 1.1 $ $Date: 2000/06/10 19:51:06 $ $Locker: $ */ libcorelinux-0.4.32/admin/0000775000000000000000000000000007743170743012273 5ustar libcorelinux-0.4.32/admin/config.guess0000775000000000000000000012247107743170207014615 0ustar #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003 Free Software Foundation, Inc. timestamp='2003-10-07' # This file 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 of the License, or # (at your option) any later version. # # This program 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 this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit 0 ;; --version | -v ) echo "$version" ; exit 0 ;; --help | --h* | -h ) echo "$usage"; exit 0 ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit 0 ;; amiga:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; arc:OpenBSD:*:*) echo mipsel-unknown-openbsd${UNAME_RELEASE} exit 0 ;; hp300:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mac68k:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; macppc:OpenBSD:*:*) echo powerpc-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mvme68k:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mvme88k:OpenBSD:*:*) echo m88k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mvmeppc:OpenBSD:*:*) echo powerpc-unknown-openbsd${UNAME_RELEASE} exit 0 ;; pmax:OpenBSD:*:*) echo mipsel-unknown-openbsd${UNAME_RELEASE} exit 0 ;; sgi:OpenBSD:*:*) echo mipseb-unknown-openbsd${UNAME_RELEASE} exit 0 ;; sun3:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; wgrisc:OpenBSD:*:*) echo mipsel-unknown-openbsd${UNAME_RELEASE} exit 0 ;; *:OpenBSD:*:*) echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} exit 0 ;; alpha:OSF1:*:*) if test $UNAME_RELEASE = "V4.0"; then UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` fi # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit 0 ;; Alpha*:OpenVMS:*:*) echo alpha-hp-vms exit 0 ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit 0 ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit 0 ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit 0;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit 0 ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit 0 ;; *:OS/390:*:*) echo i370-ibm-openedition exit 0 ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit 0;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit 0;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit 0 ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit 0 ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit 0 ;; DRS?6000:UNIX_SV:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7 && exit 0 ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; i86pc:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit 0 ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit 0 ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit 0 ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit 0 ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit 0 ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit 0 ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit 0 ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit 0 ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit 0 ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit 0 ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit 0 ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit 0 ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit 0 ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit 0 ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit 0 ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c \ && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ && exit 0 echo mips-mips-riscos${UNAME_RELEASE} exit 0 ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit 0 ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit 0 ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit 0 ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit 0 ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit 0 ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit 0 ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit 0 ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit 0 ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit 0 ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit 0 ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit 0 ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit 0 ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit 0 ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit 0 ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit 0 ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 echo rs6000-ibm-aix3.2.5 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit 0 ;; *:AIX:*:[45]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit 0 ;; *:AIX:*:*) echo rs6000-ibm-aix exit 0 ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit 0 ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit 0 ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit 0 ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit 0 ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit 0 ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit 0 ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then # avoid double evaluation of $set_cc_for_build test -n "$CC_FOR_BUILD" || eval $set_cc_for_build if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit 0 ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit 0 ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 echo unknown-hitachi-hiuxwe2 exit 0 ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit 0 ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit 0 ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit 0 ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit 0 ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit 0 ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit 0 ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit 0 ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit 0 ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit 0 ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit 0 ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit 0 ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit 0 ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; *:UNICOS/mp:*:*) echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit 0 ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit 0 ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit 0 ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit 0 ;; *:FreeBSD:*:*) # Determine whether the default compiler uses glibc. eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #if __GLIBC__ >= 2 LIBC=gnu #else LIBC= #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` # GNU/KFreeBSD systems have a "k" prefix to indicate we are using # FreeBSD's kernel, but not the complete OS. case ${LIBC} in gnu) kernel_only='k' ;; esac echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} exit 0 ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit 0 ;; i*:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit 0 ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit 0 ;; x86:Interix*:[34]*) echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' exit 0 ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit 0 ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit 0 ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit 0 ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit 0 ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit 0 ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit 0 ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit 0 ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit 0 ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit 0 ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit 0 ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit 0 ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit 0 ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit 0 ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit 0 ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit 0 ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit 0 ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit 0 ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit 0 ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #ifdef __INTEL_COMPILER LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit 0 ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit 0 ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit 0 ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit 0 ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit 0 ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit 0 ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit 0 ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit 0 ;; i*86:*:5:[78]*) case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit 0 ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit 0 ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit 0 ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit 0 ;; paragon:*:*:*) echo i860-intel-osf1 exit 0 ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit 0 ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit 0 ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit 0 ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit 0 ;; M68*:*:R3V[567]*:*) test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && echo i486-ncr-sysv4.3${OS_REL} && exit 0 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && echo i486-ncr-sysv4 && exit 0 ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit 0 ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit 0 ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit 0 ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit 0 ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit 0 ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit 0 ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit 0 ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit 0 ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit 0 ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit 0 ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit 0 ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit 0 ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit 0 ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit 0 ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit 0 ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit 0 ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit 0 ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit 0 ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit 0 ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit 0 ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit 0 ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit 0 ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit 0 ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit 0 ;; *:Darwin:*:*) case `uname -p` in *86) UNAME_PROCESSOR=i686 ;; powerpc) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit 0 ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit 0 ;; *:QNX:*:4*) echo i386-pc-qnx exit 0 ;; NSR-[DGKLNPTVWY]:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit 0 ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit 0 ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit 0 ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit 0 ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit 0 ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit 0 ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit 0 ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit 0 ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit 0 ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit 0 ;; *:ITS:*:*) echo pdp10-unknown-its exit 0 ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit 0 ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0 # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit 0 ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit 0 ;; c34*) echo c34-convex-bsd exit 0 ;; c38*) echo c38-convex-bsd exit 0 ;; c4*) echo c4-convex-bsd exit 0 ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: libcorelinux-0.4.32/admin/depcomp0000775000000000000000000002752507361334141013651 0ustar #! /bin/sh # depcomp - compile a program generating dependencies as side-effects # Copyright 1999, 2000 Free Software Foundation, Inc. # This program 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. # This program 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 this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # `libtool' can also be set to `yes' or `no'. depfile=${depfile-`echo "$object" | sed 's,\([^/]*\)$,.deps/\1,;s/\.\([^.]*\)$/.P\1/'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. This file always lives in the current directory. # Also, the AIX compiler puts `$object:' at the start of each line; # $object doesn't have directory information. stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" outname="$stripped.o" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; tru64) # The Tru64 AIX compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. tmpdepfile1="$object.d" tmpdepfile2=`echo "$object" | sed -e 's/.o$/.d/'` if test "$libtool" = yes; then "$@" -Wc,-MD else "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi if test -f "$tmpdepfile1"; then tmpdepfile="$tmpdepfile1" else tmpdepfile="$tmpdepfile2" fi if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a space and a tab in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the proprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. test -z "$dashmflag" && dashmflag=-M ( IFS=" " case " $* " in *" --mode=compile "*) # this is libtool, let us make it quiet for arg do # cycle over the arguments case "$arg" in "--mode=compile") # insert --quiet before "--mode=compile" set fnord "$@" --quiet shift # fnord ;; esac set fnord "$@" "$arg" shift # fnord shift # "$arg" done ;; esac "$@" $dashmflag | sed 's:^[^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" ) & proc=$! "$@" stat=$? wait "$proc" if test "$stat" != 0; then exit $stat; fi rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) # X makedepend ( shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift;; -*) ;; *) set fnord "$@" "$arg"; shift;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} 2>/dev/null -o"$obj_suffix" -f"$tmpdepfile" "$@" ) & proc=$! "$@" stat=$? wait "$proc" if test "$stat" != 0; then exit $stat; fi rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tail +3 "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the proprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. ( IFS=" " case " $* " in *" --mode=compile "*) for arg do # cycle over the arguments case $arg in "--mode=compile") # insert --quiet before "--mode=compile" set fnord "$@" --quiet shift # fnord ;; esac set fnord "$@" "$arg" shift # fnord shift # "$arg" done ;; esac "$@" -E | sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" ) & proc=$! "$@" stat=$? wait "$proc" if test "$stat" != 0; then exit $stat; fi rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the proprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. ( IFS=" " case " $* " in *" --mode=compile "*) for arg do # cycle over the arguments case $arg in "--mode=compile") # insert --quiet before "--mode=compile" set fnord "$@" --quiet shift # fnord ;; esac set fnord "$@" "$arg" shift # fnord shift # "$arg" done ;; esac "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" ) & proc=$! "$@" stat=$? wait "$proc" if test "$stat" != 0; then exit $stat; fi rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 libcorelinux-0.4.32/admin/config.sub0000775000000000000000000007344207743170207014263 0ustar #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003 Free Software Foundation, Inc. timestamp='2003-10-07' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file 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 of the License, or # (at your option) any later version. # # This program 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 this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit 0 ;; --version | -v ) echo "$version" ; exit 0 ;; --help | --h* | -h ) echo "$usage"; exit 0 ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit 0;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32r | m68000 | m68k | m88k | mcore \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | msp430 \ | ns16k | ns32k \ | openrisc | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xscale | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* \ | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32r-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | msp430-* \ | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ | xtensa-* \ | ymp-* \ | z8k-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; crds | unos) basic_machine=m68k-crds ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; mmix*) basic_machine=mmix-knuth os=-mmixware ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nv1) basic_machine=nv1-cray os=-unicosmp ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; or32 | or32-*) basic_machine=or32-unknown os=-coff ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sh64) basic_machine=sh64-unknown ;; sparc | sparcv9 | sparcv9b) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -netbsd* | -openbsd* | -kfreebsd* | -freebsd* | -riscix* \ | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-ibm) os=-aix ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -ptx*) vendor=sequent ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: libcorelinux-0.4.32/admin/missing0000775000000000000000000002123107361334135013662 0ustar #! /bin/sh # Common stub for a few missing GNU programs while installing. # Copyright 1996, 1997, 1999, 2000 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program 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. # This program 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 this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi case "$1" in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case "$1" in -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch]" ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing 0.3 - GNU automake" ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; aclocal) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` fi if [ -f "$file" ]; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then # We have makeinfo, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` fi touch $file ;; tar) shift if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 fi # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar ${1+"$@"} && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar ${1+"$@"} && exit 0 fi firstarg="$1" if shift; then case "$firstarg" in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" ${1+"$@"} && exit 0 ;; esac case "$firstarg" in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" ${1+"$@"} && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and you do not seem to have it handy on your system. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequirements for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 libcorelinux-0.4.32/admin/ltmain.sh0000664000000000000000000054142507743170171014121 0ustar # ltmain.sh - Provide generalized library-building support services. # NOTE: Changing this file will not affect anything until you rerun configure. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003 # Free Software Foundation, Inc. # Originally by Gordon Matzigkeit , 1996 # # This program 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 of the License, or # (at your option) any later version. # # This program 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 this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Check that we have a working $echo. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then # Yippee, $echo works! : else # Restart under the correct shell, and then maybe $echo will work. exec $SHELL "$0" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat <&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit 1 fi # Global variables. mode=$default_mode nonopt= prev= prevopt= run= show="$echo" show_help= execute_dlfiles= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" ##################################### # Shell function definitions: # This seems to be the best place for them # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. win32_libid () { win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ grep -E 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | \ sed -n -e '1,100{/ I /{x;/import/!{s/^/import/;h;p;};x;};}'` if test "X$win32_nmres" = "Ximport" ; then win32_libid_type="x86 archive import" else win32_libid_type="x86 archive static" fi fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $echo $win32_libid_type } # End of Shell function definitions ##################################### # Parse our command line options once, thoroughly. while test "$#" -gt 0 do arg="$1" shift case $arg in -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg= ;; esac # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in execute_dlfiles) execute_dlfiles="$execute_dlfiles $arg" ;; tag) tagname="$arg" # Check whether tagname contains only valid characters case $tagname in *[!-_A-Za-z0-9,/]*) $echo "$progname: invalid tag name: $tagname" 1>&2 exit 1 ;; esac case $tagname in CC) # Don't test for the "default" C tag, as we know, it's there, but # not specially marked. ;; *) if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$0" > /dev/null; then taglist="$taglist $tagname" # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $0`" else $echo "$progname: ignoring unknown tag $tagname" 1>&2 fi ;; esac ;; *) eval "$prev=\$arg" ;; esac prev= prevopt= continue fi # Have we seen a non-optional argument yet? case $arg in --help) show_help=yes ;; --version) $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" $echo $echo "Copyright (C) 2003 Free Software Foundation, Inc." $echo "This is free software; see the source for copying conditions. There is NO" $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." exit 0 ;; --config) ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0 # Now print the configurations for the tags. for tagname in $taglist; do ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$0" done exit 0 ;; --debug) $echo "$progname: enabling shell trace mode" set -x ;; --dry-run | -n) run=: ;; --features) $echo "host: $host" if test "$build_libtool_libs" = yes; then $echo "enable shared libraries" else $echo "disable shared libraries" fi if test "$build_old_libs" = yes; then $echo "enable static libraries" else $echo "disable static libraries" fi exit 0 ;; --finish) mode="finish" ;; --mode) prevopt="--mode" prev=mode ;; --mode=*) mode="$optarg" ;; --preserve-dup-deps) duplicate_deps="yes" ;; --quiet | --silent) show=: ;; --tag) prevopt="--tag" prev=tag ;; --tag=*) set tag "$optarg" ${1+"$@"} shift prev=tag ;; -dlopen) prevopt="-dlopen" prev=execute_dlfiles ;; -*) $echo "$modename: unrecognized option \`$arg'" 1>&2 $echo "$help" 1>&2 exit 1 ;; *) nonopt="$arg" break ;; esac done if test -n "$prevopt"; then $echo "$modename: option \`$prevopt' requires an argument" 1>&2 $echo "$help" 1>&2 exit 1 fi # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= if test -z "$show_help"; then # Infer the operation mode. if test -z "$mode"; then $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 $echo "*** Future versions of Libtool will require -mode=MODE be specified." 1>&2 case $nonopt in *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) mode=link for arg do case $arg in -c) mode=compile break ;; esac done ;; *db | *dbx | *strace | *truss) mode=execute ;; *install*|cp|mv) mode=install ;; *rm) mode=uninstall ;; *) # If we have no mode, but dlfiles were specified, then do execute mode. test -n "$execute_dlfiles" && mode=execute # Just use the default operation mode. if test -z "$mode"; then if test -n "$nonopt"; then $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 else $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 fi fi ;; esac fi # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then $echo "$modename: unrecognized option \`-dlopen'" 1>&2 $echo "$help" 1>&2 exit 1 fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$modename --help --mode=$mode' for more information." # These modes are in order of execution frequency so that they run quickly. case $mode in # libtool compile mode compile) modename="$modename: compile" # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" suppress_output= arg_mode=normal libobj= for arg do case "$arg_mode" in arg ) # do not "continue". Instead, add this to base_compile lastarg="$arg" arg_mode=normal ;; target ) libobj="$arg" arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) if test -n "$libobj" ; then $echo "$modename: you cannot specify \`-o' more than once" 1>&2 exit 1 fi arg_mode=target continue ;; -static) build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac lastarg="$lastarg $arg" done IFS="$save_ifs" lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` # Add the arguments to base_compile. base_compile="$base_compile $lastarg" continue ;; * ) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg="$srcfile" srcfile="$arg" ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` case $lastarg in # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") lastarg="\"$lastarg\"" ;; esac base_compile="$base_compile $lastarg" done # for arg case $arg_mode in arg) $echo "$modename: you must specify an argument for -Xcompile" exit 1 ;; target) $echo "$modename: you must specify a target with \`-o'" 1>&2 exit 1 ;; *) # Get the name of the library object. [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo xform='[cCFSifmso]' case $libobj in *.ada) xform=ada ;; *.adb) xform=adb ;; *.ads) xform=ads ;; *.asm) xform=asm ;; *.c++) xform=c++ ;; *.cc) xform=cc ;; *.ii) xform=ii ;; *.class) xform=class ;; *.cpp) xform=cpp ;; *.cxx) xform=cxx ;; *.f90) xform=f90 ;; *.for) xform=for ;; *.java) xform=java ;; esac libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` case $libobj in *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; *) $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 exit 1 ;; esac # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. if test -n "$available_tags" && test -z "$tagname"; then case $base_compile in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`" case "$base_compile " in "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then $echo "$modename: unable to infer tagged configuration" $echo "$modename: specify a tag with \`--tag'" 1>&2 exit 1 # else # $echo "$modename: using $tagname tagged configuration" fi ;; esac fi objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$obj"; then xdir= else xdir=$xdir/ fi lobj=${xdir}$objdir/$objname if test -z "$base_compile"; then $echo "$modename: you must specify a compilation command" 1>&2 $echo "$help" 1>&2 exit 1 fi # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi $run $rm $removelist trap "$run $rm $removelist; exit 1" 1 2 15 # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" removelist="$removelist $output_obj $lockfile" trap "$run $rm $removelist; exit 1" 1 2 15 else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $run ln "$0" "$lockfile" 2>/dev/null; do $show "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $echo "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit 1 fi $echo $srcfile > "$lockfile" fi if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi $run $rm "$libobj" "${libobj}T" # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. test -z "$run" && cat > ${libobj}T </dev/null`" != "X$srcfile"; then $echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit 1 fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then $show "$mv $output_obj $lobj" if $run $mv $output_obj $lobj; then : else error=$? $run $rm $removelist exit $error fi fi # Append the name of the PIC object to the libtool object file. test -z "$run" && cat >> ${libobj}T <> ${libobj}T </dev/null`" != "X$srcfile"; then $echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $run $rm $removelist exit 1 fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then $show "$mv $output_obj $obj" if $run $mv $output_obj $obj; then : else error=$? $run $rm $removelist exit $error fi fi # Append the name of the non-PIC object the libtool object file. # Only append if the libtool object file exists. test -z "$run" && cat >> ${libobj}T <> ${libobj}T <&2 fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi else if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi fi build_libtool_libs=no build_old_libs=yes prefer_static_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" base_compile="$base_compile $arg" shift case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test ;; *) qarg=$arg ;; esac libtool_args="$libtool_args $qarg" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) compile_command="$compile_command @OUTPUT@" finalize_command="$finalize_command @OUTPUT@" ;; esac case $prev in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. compile_command="$compile_command @SYMFILE@" finalize_command="$finalize_command @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" if test ! -f "$arg"; then $echo "$modename: symbol file \`$arg' does not exist" exit 1 fi prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat $save_arg` do # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then pic_object= non_pic_object= # Read the .lo file # If there is no directory component, then add one. case $arg in */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$pic_object" || \ test -z "$non_pic_object" || test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 exit 1 fi # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. libobjs="$libobjs $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object non_pic_objects="$non_pic_objects $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi fi else # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 exit 1 else # Dry-run case. # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` libobjs="$libobjs $pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi fi done else $echo "$modename: link input file \`$save_arg' does not exist" exit 1 fi arg=$save_arg prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit 1 ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= compile_command="$compile_command $wl$qarg" finalize_command="$finalize_command $wl$qarg" continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then compile_command="$compile_command $link_static_flag" finalize_command="$finalize_command $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 continue ;; -avoid-version) avoid_version=yes continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: more than one -exported-symbols argument is not allowed" exit 1 fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" ;; esac continue ;; -L*) dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 exit 1 fi dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) case :$dllsearchpath: in *":$dir:"*) ;; *) dllsearchpath="$dllsearchpath:$dir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-pw32* | *-*-beos*) # These systems don't actually have a C or math library (as such) continue ;; *-*-mingw* | *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework deplibs="$deplibs -framework System" continue esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; -module) module=yes continue ;; # gcc -m* arguments should be passed to the linker via $compiler_flags # in order to pass architecture information to the linker # (e.g. 32 vs 64-bit). This may also be accomplished via -Wl,-mfoo # but this is not reliable with gcc because gcc may use -mfoo to # select a different linker, different libraries, etc, while # -Wl,-mfoo simply passes -mfoo to the linker. -m*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" if test "$with_gcc" = "yes" ; then compiler_flags="$compiler_flags $arg" fi continue ;; -shrext) prev=shrext continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) # The PATH hackery in wrapper scripts is required on Windows # in order for the loader to find any dlls it needs. $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit 1 ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -static) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -Wc,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Wl,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $wl$flag" linker_flags="$linker_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # Some other compiler flag. -* | +*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; *.$objext) # A standard object. objs="$objs $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then pic_object= non_pic_object= # Read the .lo file # If there is no directory component, then add one. case $arg in */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$pic_object" || \ test -z "$non_pic_object" || test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 exit 1 fi # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. libobjs="$libobjs $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object non_pic_objects="$non_pic_objects $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi fi else # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 exit 1 else # Dry-run case. # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` libobjs="$libobjs $pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi done # argument parsing loop if test -n "$prev"; then $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 $echo "$help" 1>&2 exit 1 fi # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base link # command doesn't match the default compiler. if test -n "$available_tags" && test -z "$tagname"; then case $base_compile in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`" case $base_compile in "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*) # The compiler in $compile_command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then $echo "$modename: unable to infer tagged configuration" $echo "$modename: specify a tag with \`--tag'" 1>&2 exit 1 # else # $echo "$modename: using $tagname tagged configuration" fi ;; esac fi if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi oldlibs= # calculate the name of the file, without its directory outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` if test "X$output_objdir" = "X$output"; then output_objdir="$objdir" else output_objdir="$output_objdir/$objdir" fi # Create the object directory. if test ! -d "$output_objdir"; then $show "$mkdir $output_objdir" $run $mkdir $output_objdir status=$? if test "$status" -ne 0 && test ! -d "$output_objdir"; then exit $status fi fi # Determine the type of output case $output in "") $echo "$modename: you must specify an output file" 1>&2 $echo "$help" 1>&2 exit 1 ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac case $host in *cygwin* | *mingw* | *pw32*) # don't eliminate duplcations in $postdeps and $predeps duplicate_compiler_generated_deps=yes ;; *) duplicate_compiler_generated_deps=$duplicate_deps ;; esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if test "X$duplicate_deps" = "Xyes" ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$pre_post_deps $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 exit 1 ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 continue fi if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do for search_ext in .la $shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then library_names= old_library= case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi ;; *) $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) if test "$deplibs_check_method" != pass_all; then $echo $echo "*** Warning: Trying to link with static lib archive $deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because the file extensions .$libext of this argument makes me believe" $echo "*** that it is just a static archive that I should not used here." else $echo $echo "*** Warning: Linking the shared library $output against the" $echo "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else $echo "$modename: cannot find the library \`$lib'" 1>&2 exit 1 fi # Check to see that this really is a libtool archive. if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit 1 fi ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." dlname= dlopen= dlpreopen= libdir= library_names= old_library= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no # Read the .la file case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit 1 fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then $echo "$modename: \`$lib' is not a convenience library" 1>&2 exit 1 fi continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit 1 fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 exit 1 fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 abs_ladir="$ladir" fi ;; esac laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then $echo "$modename: warning: library \`$lib' was moved." 1>&2 dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi # $installed = yes name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 exit 1 fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { test "$prefer_static_libs" = no || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var"; then # Make sure the rpath contains only unique directories. case "$temp_rpath " in *" $dir "*) ;; *" $absdir "*) ;; *) temp_rpath="$temp_rpath $dir" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically if test -n "$library_names" && { test "$prefer_static_libs" = no || test -z "$old_library"; }; then if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi # This is a shared library # Warn about portability, can't link against -module's on some systems (darwin) if test "$shouldnotlink" = yes && test "$pass" = link ; then $echo if test "$linkmode" = prog; then $echo "*** Warning: Linking the executable $output against the loadable module" else $echo "*** Warning: Linking the shared library $output against the loadable module" fi $echo "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names realname="$2" shift; shift libname=`eval \\$echo \"$libname_spec\"` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw*) major=`expr $current - $age` versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" soname=`$echo $soroot | ${SED} -e 's/^.*\///'` newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else $show "extracting exported symbol list from \`$soname'" save_ifs="$IFS"; IFS='~' eval cmds=\"$extract_expsyms_cmds\" for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else $show "generating import library for \`$soname'" save_ifs="$IFS"; IFS='~' eval cmds=\"$old_archive_from_expsyms_cmds\" for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5* ) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a module then we can not link against it, someone # is ignoring the new warnings I added if /usr/bin/file -L $add 2> /dev/null | grep "bundle" >/dev/null ; then $echo "** Warning, lib $linklib is a module, not a shared library" if test -z "$old_library" ; then $echo $echo "** And there doesn't seem to be a static archive available" $echo "** The link will probably fail, sorry" else add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case "$libdir" in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then $echo "$modename: configuration error: unsupported hardcode properties" exit 1 fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && \ test "$hardcode_minus_L" != yes && \ test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case "$libdir" in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. $echo $echo "*** Warning: This system can not link to static lib archive $lib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then $echo "*** But as you try to build a module library, libtool will still create " $echo "*** a static module, that should work as long as the dlopening application" $echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then $echo $echo "*** However, this would only work if libtool was able to extract symbol" $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" $echo "*** not find such a program. So, this module is probably useless." $echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else convenience="$convenience $dir/$old_library" old_convenience="$old_convenience $dir/$old_library" deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do case $deplib in -L*) path="$deplib" ;; *.la) dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$deplib" && dir="." # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 absdir="$dir" fi ;; esac if grep "^installed=no" $deplib > /dev/null; then path="$absdir/$objdir" else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit 1 fi if test "$absdir" != "$libdir"; then $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 fi path="$absdir" fi depdepl= case $host in *-*-darwin*) # we do not want to link against static libs, but need to link against shared eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$path/$depdepl" ; then depdepl="$path/$depdepl" fi # do not add paths which are already there case " $newlib_search_path " in *" $path "*) ;; *) newlib_search_path="$newlib_search_path $path";; esac path="" fi ;; *) path="-L$path" ;; esac ;; -l*) case $host in *-*-darwin*) # Again, we only want to link against shared libraries eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` for tmp in $newlib_search_path ; do if test -f "$tmp/lib$tmp_libs.dylib" ; then eval depdepl="$tmp/lib$tmp_libs.dylib" break fi done path="" ;; *) continue ;; esac ;; *) continue ;; esac case " $deplibs " in *" $depdepl "*) ;; *) deplibs="$deplibs $depdepl" ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$deplibs $path" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 fi if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 fi # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` eval shared_ext=\"$shrext\" eval libname=\"$libname_spec\" ;; *) if test "$module" = no; then $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 $echo "$help" 1>&2 exit 1 fi if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` eval shared_ext=\"$shrext\" eval libname=\"$libname_spec\" else libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 exit 1 else $echo $echo "*** Warning: Linking the shared library $output against the non-libtool" $echo "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi if test "$dlself" != no; then $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 fi set dummy $rpath if test "$#" -gt 2; then $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 fi install_libdir="$2" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 fi else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 IFS="$save_ifs" if test -n "$8"; then $echo "$modename: too many parameters to \`-version-info'" 1>&2 $echo "$help" 1>&2 exit 1 fi # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$2" number_minor="$3" number_revision="$4" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows) current=`expr $number_major + $number_minor` age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) current=`expr $number_major + $number_minor - 1` age="$number_minor" revision="$number_minor" ;; esac ;; no) current="$2" revision="$3" age="$4" ;; esac # Check that each of the things are valid numbers. case $current in 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; *) $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit 1 ;; esac case $revision in 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; *) $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit 1 ;; esac case $age in 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; *) $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit 1 ;; esac if test "$age" -gt "$current"; then $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit 1 fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header major=.`expr $current - $age` versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... minor_current=`expr $current + 1` verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current"; ;; irix | nonstopux) major=`expr $current - $age + 1` case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do iface=`expr $revision - $loop` loop=`expr $loop - 1` verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) major=.`expr $current - $age` versuffix="$major.$age.$revision" ;; osf) major=.`expr $current - $age` versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do iface=`expr $current - $loop` loop=`expr $loop - 1` verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. major=`expr $current - $age` versuffix="-$major" ;; *) $echo "$modename: unknown library version type \`$version_type'" 1>&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit 1 ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi if test "$mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$echo "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) removelist="$removelist $p" ;; *) ;; esac done if test -n "$removelist"; then $show "${rm}r $removelist" $run ${rm}r $removelist fi fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. for path in $notinst_path; do lib_search_path=`$echo "$lib_search_path " | ${SED} -e 's% $path % %g'` deplibs=`$echo "$deplibs " | ${SED} -e 's% -L$path % %g'` dependency_libs=`$echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'` done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) dlfiles="$dlfiles $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs -framework System" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $rm conftest.c cat > conftest.c </dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null \ | grep " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ | ${SED} 10q \ | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $echo $echo "*** Warning: linker path does not have real file for library $a_deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $echo "*** with $libname but no candidates were found. (...for file magic test)" else $echo "*** with $libname and none of the candidates passed a file format test" $echo "*** using a file magic. Last file checked: $potlib" fi fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` for a_deplib in $deplibs; do name="`expr $a_deplib : '-l\(.*\)'`" # If $name is empty we are operating on a -L argument. if test -n "$name" && test "$name" != "0"; then if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval \\$echo \"$libname_spec\"` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval $echo \"$potent_lib\" 2>/dev/null \ | ${SED} 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $echo $echo "*** Warning: linker path does not have real file for library $a_deplib." $echo "*** I have the capability to make that library automatically link in when" $echo "*** you link to this library. But I can only do this if you have a" $echo "*** shared version of the library, which you do not appear to have" $echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $echo "*** with $libname but no candidates were found. (...for regex pattern test)" else $echo "*** with $libname and none of the candidates passed a file format test" $echo "*** using a regex pattern. Last file checked: $potlib" fi fi else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ -e 's/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` done fi if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ | grep . >/dev/null; then $echo if test "X$deplibs_check_method" = "Xnone"; then $echo "*** Warning: inter-library dependencies are not supported in this platform." else $echo "*** Warning: inter-library dependencies are not known to be supported." fi $echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then $echo $echo "*** Warning: libtool could not satisfy all declared inter-library" $echo "*** dependencies of module $libname. Therefore, libtool will create" $echo "*** a static module, that should work as long as the dlopening" $echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then $echo $echo "*** However, this would only work if libtool was able to extract symbol" $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" $echo "*** not find such a program. So, this module is probably useless." $echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else $echo "*** The inter-library dependencies that have been dropped here will be" $echo "*** automatically added whenever a program is linked with this library" $echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then $echo $echo "*** Since this library must not contain undefined symbols," $echo "*** because either the platform does not support them or" $echo "*** it was explicitly requested with -no-undefined," $echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" if test -n "$hardcode_libdir_flag_spec_ld"; then eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext\" eval library_names=\"$library_names_spec\" set dummy $library_names realname="$2" shift; shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" for link do linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols eval cmds=\"$export_symbols_cmds\" save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" if len=`expr "X$cmd" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then $show "$cmd" $run eval "$cmd" || exit $? skipped_export=false else # The command line is too long to execute in one step. $show "using reloadable object file for export list..." skipped_export=: fi done IFS="$save_ifs" if test -n "$export_symbols_regex"; then $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' $show "$mv \"${export_symbols}T\" \"$export_symbols\"" $run eval '$mv "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" else gentop="$output_objdir/${outputname}x" $show "${rm}r $gentop" $run ${rm}r "$gentop" $show "$mkdir $gentop" $run $mkdir "$gentop" status=$? if test "$status" -ne 0 && test ! -d "$gentop"; then exit $status fi generated="$generated $gentop" for xlib in $convenience; do # Extract the objects. case $xlib in [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; *) xabs=`pwd`"/$xlib" ;; esac xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` xdir="$gentop/$xlib" $show "${rm}r $xdir" $run ${rm}r "$xdir" $show "$mkdir $xdir" $run $mkdir "$xdir" status=$? if test "$status" -ne 0 && test ! -d "$xdir"; then exit $status fi # We will extract separately just the conflicting names and we will no # longer touch any unique names. It is faster to leave these extract # automatically by $AR in one run. $show "(cd $xdir && $AR x $xabs)" $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then : else $echo "$modename: warning: object name conflicts; renaming object files" 1>&2 $echo "$modename: warning: to ensure that they will not overwrite" 1>&2 $AR t "$xabs" | sort | uniq -cd | while read -r count name do i=1 while test "$i" -le "$count" do # Put our $i before any first dot (extension) # Never overwrite any file name_to="$name" while test "X$name_to" = "X$name" || test -f "$xdir/$name_to" do name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"` done $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')" $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $? i=`expr $i + 1` done done fi libobjs="$libobjs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval cmds=\"$module_expsym_cmds\" else eval cmds=\"$module_cmds\" fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval cmds=\"$archive_expsym_cmds\" else eval cmds=\"$archive_cmds\" fi fi if test "X$skipped_export" != "X:" && len=`expr "X$cmds" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise. $echo "creating reloadable object files..." # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= delfiles= last_robj= k=1 output=$output_objdir/$save_output-${k}.$objext # Loop over the list of objects to be linked. for obj in $save_libobjs do eval test_cmds=\"$reload_cmds $objlist $last_robj\" if test "X$objlist" = X || { len=`expr "X$test_cmds" : ".*"` && test "$len" -le "$max_cmd_len"; }; then objlist="$objlist $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. eval concat_cmds=\"$reload_cmds $objlist $last_robj\" else # All subsequent reloadable object files will link in # the last one created. eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" fi last_robj=$output_objdir/$save_output-${k}.$objext k=`expr $k + 1` output=$output_objdir/$save_output-${k}.$objext objlist=$obj len=1 fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" if ${skipped_export-false}; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols libobjs=$output # Append the command to create the export file. eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" fi # Set up a command to remove the reloadale object files # after they are used. i=0 while test "$i" -lt "$k" do i=`expr $i + 1` delfiles="$delfiles $output_objdir/$save_output-${i}.$objext" done $echo "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval cmds=\"$archive_expsym_cmds\" else eval cmds=\"$archive_cmds\" fi # Append the command to remove the reloadable object files # to the just-reset $cmds. eval cmds=\"\$cmds~$rm $delfiles\" fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? exit 0 fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 fi case $output in *.lo) if test -n "$objs$old_deplibs"; then $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 exit 1 fi libobj="$output" obj=`$echo "X$output" | $Xsed -e "$lo2o"` ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $run $rm $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" else gentop="$output_objdir/${obj}x" $show "${rm}r $gentop" $run ${rm}r "$gentop" $show "$mkdir $gentop" $run $mkdir "$gentop" status=$? if test "$status" -ne 0 && test ! -d "$gentop"; then exit $status fi generated="$generated $gentop" for xlib in $convenience; do # Extract the objects. case $xlib in [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; *) xabs=`pwd`"/$xlib" ;; esac xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` xdir="$gentop/$xlib" $show "${rm}r $xdir" $run ${rm}r "$xdir" $show "$mkdir $xdir" $run $mkdir "$xdir" status=$? if test "$status" -ne 0 && test ! -d "$xdir"; then exit $status fi # We will extract separately just the conflicting names and we will no # longer touch any unique names. It is faster to leave these extract # automatically by $AR in one run. $show "(cd $xdir && $AR x $xabs)" $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then : else $echo "$modename: warning: object name conflicts; renaming object files" 1>&2 $echo "$modename: warning: to ensure that they will not overwrite" 1>&2 $AR t "$xabs" | sort | uniq -cd | while read -r count name do i=1 while test "$i" -le "$count" do # Put our $i before any first dot (extension) # Never overwrite any file name_to="$name" while test "X$name_to" = "X$name" || test -f "$xdir/$name_to" do name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"` done $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')" $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $? i=`expr $i + 1` done done fi reload_conv_objs="$reload_objs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" eval cmds=\"$reload_cmds\" save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit 0 fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $run eval "echo timestamp > $libobj" || exit $? exit 0 fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" eval cmds=\"$reload_cmds\" save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit 0 ;; prog) case $host in *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; esac if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 fi if test "$preload" = yes; then if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && test "$dlopen_self_static" = unknown; then $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." fi fi case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac case $host in *darwin*) # Don't allow lazy linking, it breaks C++ global constructors if test "$tagname" = CXX ; then compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" fi ;; esac compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) case :$dllsearchpath: in *":$libdir:"*) ;; *) dllsearchpath="$dllsearchpath:$libdir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then dlsyms="${outputname}S.c" else $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 fi fi if test -n "$dlsyms"; then case $dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${outputname}.nm" $show "$rm $nlist ${nlist}S ${nlist}T" $run $rm "$nlist" "${nlist}S" "${nlist}T" # Parse the name list into a source file. $show "creating $output_objdir/$dlsyms" test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ #ifdef __cplusplus extern \"C\" { #endif /* Prevent the only kind of declaration conflicts we can make. */ #define lt_preloaded_symbols some_other_symbol /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then $show "generating symbol list for \`$output'" test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for arg in $progfiles; do $show "extracting global C symbols from \`$arg'" $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi if test -n "$export_symbols_regex"; then $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$output.exp" $run $rm $export_symbols $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' else $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"' $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T' $run eval 'mv "$nlist"T "$nlist"' fi fi for arg in $dlprefiles; do $show "extracting global C symbols from \`$arg'" name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` $run eval '$echo ": $name " >> "$nlist"' $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -z "$run"; then # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $mv "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if grep -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else grep -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' else $echo '/* NONE */' >> "$output_objdir/$dlsyms" fi $echo >> "$output_objdir/$dlsyms" "\ #undef lt_preloaded_symbols #if defined (__STDC__) && __STDC__ # define lt_ptr void * #else # define lt_ptr char * # define const #endif /* The mapping between symbol names and symbols. */ const struct { const char *name; lt_ptr address; } lt_preloaded_symbols[] = {\ " eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" $echo >> "$output_objdir/$dlsyms" "\ {0, (lt_ptr) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " fi pic_flag_for_symtable= case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; esac;; *-*-hpux*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag";; esac esac # Now compile the dynamic symbol file. $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? # Clean up the generated files. $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" # Transform the symbol file into the correct name. compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` ;; *) $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 exit 1 ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi if test "$need_relink" = no || test "$build_libtool_libs" != yes; then # Replace the output file specification. compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. $show "$link_command" $run eval "$link_command" status=$? # Delete the generated files. if test -n "$dlsyms"; then $show "$rm $output_objdir/${outputname}S.${objext}" $run $rm "$output_objdir/${outputname}S.${objext}" fi exit $status fi if test -n "$shlibpath_var"; then # We should set the shlibpath_var rpath= for dir in $temp_rpath; do case $dir in [\\/]* | [A-Za-z]:[\\/]*) # Absolute path. rpath="$rpath$dir:" ;; *) # Relative path: add a thisdir entry. rpath="$rpath\$thisdir/$dir:" ;; esac done temp_rpath="$rpath" fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $run $rm $output # Link the executable and exit $show "$link_command" $run eval "$link_command" || exit $? exit 0 fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 $echo "$modename: \`$output' will be relinked during installation" 1>&2 else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname $show "$link_command" $run eval "$link_command" || exit $? # Now create the wrapper script. $show "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` fi # Quote $echo for shipping. if test "X$echo" = "X$SHELL $0 --fallback-echo"; then case $0 in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";; *) qecho="$SHELL `pwd`/$0 --fallback-echo";; esac qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if our run command is non-null. if test -z "$run"; then # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) cwrappersource=`$echo ${objdir}/lt-${output}.c` cwrapper=`$echo ${output}.exe` $rm $cwrappersource $cwrapper trap "$rm $cwrappersource $cwrapper; exit 1" 1 2 15 cat > $cwrappersource <> $cwrappersource<<"EOF" #include #include #include #include #include #include #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef DIR_SEPARATOR #define DIR_SEPARATOR '/' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) #define HAVE_DOS_BASED_FILE_SYSTEM #ifndef DIR_SEPARATOR_2 #define DIR_SEPARATOR_2 '\\' #endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) const char *program_name = NULL; void * xmalloc (size_t num); char * xstrdup (const char *string); char * basename (const char *name); char * fnqualify(const char *path); char * strendzap(char *str, const char *pat); void lt_fatal (const char *message, ...); int main (int argc, char *argv[]) { char **newargz; int i; program_name = (char *) xstrdup ((char *) basename (argv[0])); newargz = XMALLOC(char *, argc+2); EOF cat >> $cwrappersource <> $cwrappersource <<"EOF" newargz[1] = fnqualify(argv[0]); /* we know the script has the same name, without the .exe */ /* so make sure newargz[1] doesn't end in .exe */ strendzap(newargz[1],".exe"); for (i = 1; i < argc; i++) newargz[i+1] = xstrdup(argv[i]); newargz[argc+1] = NULL; EOF cat >> $cwrappersource <> $cwrappersource <<"EOF" } void * xmalloc (size_t num) { void * p = (void *) malloc (num); if (!p) lt_fatal ("Memory exhausted"); return p; } char * xstrdup (const char *string) { return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL ; } char * basename (const char *name) { const char *base; #if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over the disk name in MSDOS pathnames. */ if (isalpha (name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; return (char *) base; } char * fnqualify(const char *path) { size_t size; char *p; char tmp[LT_PATHMAX + 1]; assert(path != NULL); /* Is it qualified already? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha (path[0]) && path[1] == ':') return xstrdup (path); #endif if (IS_DIR_SEPARATOR (path[0])) return xstrdup (path); /* prepend the current directory */ /* doesn't handle '~' */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); size = strlen(tmp) + 1 + strlen(path) + 1; /* +2 for '/' and '\0' */ p = XMALLOC(char, size); sprintf(p, "%s%c%s", tmp, DIR_SEPARATOR, path); return p; } char * strendzap(char *str, const char *pat) { size_t len, patlen; assert(str != NULL); assert(pat != NULL); len = strlen(str); patlen = strlen(pat); if (patlen <= len) { str += len - patlen; if (strcmp(str, pat) == 0) *str = '\0'; } return str; } static void lt_error_core (int exit_status, const char * mode, const char * message, va_list ap) { fprintf (stderr, "%s: %s: ", program_name, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } EOF # we should really use a build-platform specific compiler # here, but OTOH, the wrappers (shell script and this C one) # are only useful if you want to execute the "real" binary. # Since the "real" binary is built for $host, then this # wrapper might as well be built for $host, too. $run $LTCC -s -o $cwrapper $cwrappersource ;; esac $rm $output trap "$rm $output; exit 1" 1 2 15 $echo > $output "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variable: notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$echo are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then echo=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then # Yippee, \$echo works! : else # Restart under the correct shell, and then maybe \$echo will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $echo >> $output "\ # Find the directory that this script lives in. thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $echo >> $output "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || \\ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $mkdir \"\$progdir\" else $rm \"\$progdir/\$file\" fi" $echo >> $output "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $echo \"\$relink_command_output\" >&2 $rm \"\$progdir/\$file\" exit 1 fi fi $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $rm \"\$progdir/\$program\"; $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } $rm \"\$progdir/\$file\" fi" else $echo >> $output "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $echo >> $output "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $echo >> $output "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $echo >> $output "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $echo >> $output "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2*) $echo >> $output "\ exec \$progdir\\\\\$program \${1+\"\$@\"} " ;; *) $echo >> $output "\ exec \$progdir/\$program \${1+\"\$@\"} " ;; esac $echo >> $output "\ \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" exit 1 fi else # The program doesn't exist. \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2 \$echo \"This script is just a wrapper for \$program.\" 1>&2 $echo \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " chmod +x $output fi exit 0 ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" $show "${rm}r $gentop" $run ${rm}r "$gentop" $show "$mkdir $gentop" $run $mkdir "$gentop" status=$? if test "$status" -ne 0 && test ! -d "$gentop"; then exit $status fi generated="$generated $gentop" # Add in members from convenience archives. for xlib in $addlibs; do # Extract the objects. case $xlib in [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; *) xabs=`pwd`"/$xlib" ;; esac xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` xdir="$gentop/$xlib" $show "${rm}r $xdir" $run ${rm}r "$xdir" $show "$mkdir $xdir" $run $mkdir "$xdir" status=$? if test "$status" -ne 0 && test ! -d "$xdir"; then exit $status fi # We will extract separately just the conflicting names and we will no # longer touch any unique names. It is faster to leave these extract # automatically by $AR in one run. $show "(cd $xdir && $AR x $xabs)" $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then : else $echo "$modename: warning: object name conflicts; renaming object files" 1>&2 $echo "$modename: warning: to ensure that they will not overwrite" 1>&2 $AR t "$xabs" | sort | uniq -cd | while read -r count name do i=1 while test "$i" -le "$count" do # Put our $i before any first dot (extension) # Never overwrite any file name_to="$name" while test "X$name_to" = "X$name" || test -f "$xdir/$name_to" do name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"` done $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')" $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $? i=`expr $i + 1` done done fi oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP` done fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then eval cmds=\"$old_archive_from_new_cmds\" else eval cmds=\"$old_archive_cmds\" if len=`expr "X$cmds" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # the command line is too long to link in one step, link in parts $echo "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs # GNU ar 2.10+ was changed to match POSIX; thus no paths are # encoded into archives. This makes 'ar r' malfunction in # this piecewise linking case whenever conflicting object # names appear in distinct ar calls; check, warn and compensate. if (for obj in $save_oldobjs do $echo "X$obj" | $Xsed -e 's%^.*/%%' done | sort | sort -uc >/dev/null 2>&1); then : else $echo "$modename: warning: object name conflicts; overriding AR_FLAGS to 'cq'" 1>&2 $echo "$modename: warning: to ensure that POSIX-compatible ar will work" 1>&2 AR_FLAGS=cq fi # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done for obj in $save_oldobjs do oldobjs="$objlist $obj" objlist="$objlist $obj" eval test_cmds=\"$old_archive_cmds\" if len=`expr "X$test_cmds" : ".*"` && test "$len" -le "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~$old_archive_cmds\" fi fi fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$generated"; then $show "${rm}r$generated" $run ${rm}r$generated fi # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" $show "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. if test -z "$run"; then for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit 1 fi newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit 1 fi newdlfiles="$newdlfiles $libdir/$name" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit 1 fi newdlprefiles="$newdlprefiles $libdir/$name" done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $rm $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $echo > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $echo >> $output "\ relink_command=\"$relink_command\"" fi done fi # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? ;; esac exit 0 ;; # libtool install mode install) modename="$modename: install" # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then # Aesthetically quote it. arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" ;; esac install_prog="$arg " arg="$1" shift else install_prog= arg="$nonopt" fi # The real first argument should be the name of the installation program. # Aesthetically quote it. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" ;; esac install_prog="$install_prog$arg" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest="$arg" continue fi case $arg in -d) isdir=yes ;; -f) prev="-f" ;; -g) prev="-g" ;; -m) prev="-m" ;; -o) prev="-o" ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest="$arg" continue fi ;; esac # Aesthetically quote the argument. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" ;; esac install_prog="$install_prog $arg" done if test -z "$install_prog"; then $echo "$modename: you must specify an install program" 1>&2 $echo "$help" 1>&2 exit 1 fi if test -n "$prev"; then $echo "$modename: the \`$prev' option requires an argument" 1>&2 $echo "$help" 1>&2 exit 1 fi if test -z "$files"; then if test -z "$dest"; then $echo "$modename: no file or destination specified" 1>&2 else $echo "$modename: you must specify a destination" 1>&2 fi $echo "$help" 1>&2 exit 1 fi # Strip any trailing slash from the destination. dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` test "X$destdir" = "X$dest" && destdir=. destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` # Not a directory, so check to see that there is only one file specified. set dummy $files if test "$#" -gt 2; then $echo "$modename: \`$dest' is not a directory" 1>&2 $echo "$help" 1>&2 exit 1 fi fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 $echo "$help" 1>&2 exit 1 ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit 1 fi library_names= old_library= relink_command= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ test "X$dir" = "X$file/" && dir= dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. if test "$inst_prefix_dir" = "$destdir"; then $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 exit 1 fi if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi $echo "$modename: warning: relinking \`$file'" 1>&2 $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 exit 1 fi fi # See the names of the shared library. set dummy $library_names if test -n "$2"; then realname="$2" shift shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. $show "$install_prog $dir/$srcname $destdir/$realname" $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? if test -n "$stripme" && test -n "$striplib"; then $show "$striplib $destdir/$realname" $run eval "$striplib $destdir/$realname" || exit $? fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. for linkname do if test "$linkname" != "$realname"; then $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" fi done fi # Do each command in the postinstall commands. lib="$destdir/$realname" eval cmds=\"$postinstall_cmds\" save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # Install the pseudo-library for information purposes. name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` instname="$dir/$name"i $show "$install_prog $instname $destdir/$name" $run eval "$install_prog $instname $destdir/$name" || exit $? # Maybe install the static library, too. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` ;; *.$objext) staticdest="$destfile" destfile= ;; *) $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 $echo "$help" 1>&2 exit 1 ;; esac # Install the libtool object if requested. if test -n "$destfile"; then $show "$install_prog $file $destfile" $run eval "$install_prog $file $destfile" || exit $? fi # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` $show "$install_prog $staticobj $staticdest" $run eval "$install_prog \$staticobj \$staticdest" || exit $? fi exit 0 ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then file=`$echo $file|${SED} 's,.exe$,,'` stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin*|*mingw*) wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` ;; *) wrapper=$file ;; esac if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then notinst_deplibs= relink_command= # To insure that "foo" is sourced, and not "foo.exe", # finese the cygwin/MSYS system by explicitly sourcing "foo." # which disallows the automatic-append-.exe behavior. case $build in *cygwin* | *mingw*) wrapperdot=${wrapper}. ;; *) wrapperdot=${wrapper} ;; esac # If there is no directory component, then add one. case $file in */* | *\\*) . ${wrapperdot} ;; *) . ./${wrapperdot} ;; esac # Check the variables that should have been set. if test -z "$notinst_deplibs"; then $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 exit 1 fi finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then # If there is no directory component, then add one. case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac fi libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 finalize=no fi done relink_command= # To insure that "foo" is sourced, and not "foo.exe", # finese the cygwin/MSYS system by explicitly sourcing "foo." # which disallows the automatic-append-.exe behavior. case $build in *cygwin* | *mingw*) wrapperdot=${wrapper}. ;; *) wrapperdot=${wrapper} ;; esac # If there is no directory component, then add one. case $file in */* | *\\*) . ${wrapperdot} ;; *) . ./${wrapperdot} ;; esac outputname= if test "$fast_install" = no && test -n "$relink_command"; then if test "$finalize" = yes && test -z "$run"; then tmpdir="/tmp" test -n "$TMPDIR" && tmpdir="$TMPDIR" tmpdir="$tmpdir/libtool-$$" if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then : else $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2 continue fi file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 ${rm}r "$tmpdir" continue fi file="$outputname" else $echo "$modename: warning: cannot relink \`$file'" 1>&2 fi else # Install the binary that we compiled earlier. file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyways case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` ;; esac ;; esac $show "$install_prog$stripme $file $destfile" $run eval "$install_prog\$stripme \$file \$destfile" || exit $? test -n "$outputname" && ${rm}r "$tmpdir" ;; esac done for file in $staticlibs; do name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` # Set up the ranlib parameters. oldlib="$destdir/$name" $show "$install_prog $file $oldlib" $run eval "$install_prog \$file \$oldlib" || exit $? if test -n "$stripme" && test -n "$striplib"; then $show "$old_striplib $oldlib" $run eval "$old_striplib $oldlib" || exit $? fi # Do each command in the postinstall commands. eval cmds=\"$old_postinstall_cmds\" save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$future_libdirs"; then $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 fi if test -n "$current_libdirs"; then # Maybe just do a dry run. test -n "$run" && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $0 --finish$current_libdirs' else exit 0 fi ;; # libtool finish mode finish) modename="$modename: finish" libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. eval cmds=\"$finish_cmds\" save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || admincmds="$admincmds $cmd" done IFS="$save_ifs" fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $run eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. test "$show" = : && exit 0 $echo "----------------------------------------------------------------------" $echo "Libraries have been installed in:" for libdir in $libdirs; do $echo " $libdir" done $echo $echo "If you ever happen to want to link against installed libraries" $echo "in a given directory, LIBDIR, you must either use libtool, and" $echo "specify the full pathname of the library, or use the \`-LLIBDIR'" $echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then $echo " - add LIBDIR to the \`$shlibpath_var' environment variable" $echo " during execution" fi if test -n "$runpath_var"; then $echo " - add LIBDIR to the \`$runpath_var' environment variable" $echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $echo " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $echo " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi $echo $echo "See any operating system documentation about shared libraries for" $echo "more information, such as the ld(1) and ld.so(8) manual pages." $echo "----------------------------------------------------------------------" exit 0 ;; # libtool execute mode execute) modename="$modename: execute" # The first argument is the command name. cmd="$nonopt" if test -z "$cmd"; then $echo "$modename: you must specify a COMMAND" 1>&2 $echo "$help" exit 1 fi # Handle -dlopen flags immediately. for file in $execute_dlfiles; do if test ! -f "$file"; then $echo "$modename: \`$file' is not a file" 1>&2 $echo "$help" 1>&2 exit 1 fi dir= case $file in *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit 1 fi # Read the libtool library. dlname= library_names= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" continue fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 exit 1 fi ;; *.lo) # Just add the directory containing the .lo file. dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. ;; *) $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -*) ;; *) # Do a test to see if this is really a libtool program. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` args="$args \"$file\"" done if test -z "$run"; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables if test "${save_LC_ALL+set}" = set; then LC_ALL="$save_LC_ALL"; export LC_ALL fi if test "${save_LANG+set}" = set; then LANG="$save_LANG"; export LANG fi # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" $echo "export $shlibpath_var" fi $echo "$cmd$args" exit 0 fi ;; # libtool clean and uninstall mode clean | uninstall) modename="$modename: $mode" rm="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) rm="$rm $arg"; rmforce=yes ;; -*) rm="$rm $arg" ;; *) files="$files $arg" ;; esac done if test -z "$rm"; then $echo "$modename: you must specify an RM program" 1>&2 $echo "$help" 1>&2 exit 1 fi rmdirs= origobjdir="$objdir" for file in $files; do dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` if test "X$dir" = "X$file"; then dir=. objdir="$origobjdir" else objdir="$dir/$origobjdir" fi name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if (test -L "$file") >/dev/null 2>&1 \ || (test -h "$file") >/dev/null 2>&1 \ || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then . $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" if test "$mode" = uninstall; then if test -n "$library_names"; then # Do each command in the postuninstall commands. eval cmds=\"$postuninstall_cmds\" save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. eval cmds=\"$old_postuninstall_cmds\" save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi # FIXME: should reinstall the best remaining shared library. fi fi ;; *.lo) # Possibly a libtool object, so verify it. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # Read the .lo file . $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" \ && test "$pic_object" != none; then rmfiles="$rmfiles $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" \ && test "$non_pic_object" != none; then rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$mode" = clean ; then noexename=$name case $file in *.exe) file=`$echo $file|${SED} 's,.exe$,,'` noexename=`$echo $name|${SED} 's,.exe$,,'` # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then relink_command= . $dir/$noexename # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac $show "$rm $rmfiles" $run $rm $rmfiles || exit_status=1 done objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then $show "rmdir $dir" $run rmdir $dir >/dev/null 2>&1 fi done exit $exit_status ;; "") $echo "$modename: you must specify a MODE" 1>&2 $echo "$generic_help" 1>&2 exit 1 ;; esac if test -z "$exec_cmd"; then $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$generic_help" 1>&2 exit 1 fi fi # test -z "$show_help" if test -n "$exec_cmd"; then eval exec $exec_cmd exit 1 fi # We need to display help for each of the modes. case $mode in "") $echo \ "Usage: $modename [OPTION]... [MODE-ARG]... Provide generalized library-building support services. --config show all configuration variables --debug enable verbose shell tracing -n, --dry-run display commands without modifying any files --features display basic configuration information and exit --finish same as \`--mode=finish' --help display this help message and exit --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] --quiet same as \`--silent' --silent don't print informational messages --tag=TAG use configuration variables from tag TAG --version print version information MODE must be one of the following: clean remove files from the build directory compile compile a source file into a libtool object execute automatically set library path, then run a program finish complete the installation of libtool libraries install install libraries or executables link create a library or an executable uninstall remove libraries from an installed directory MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for a more detailed description of MODE. Report bugs to ." exit 0 ;; clean) $echo \ "Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $echo \ "Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -prefer-pic try to building PIC objects only -prefer-non-pic try to building non-PIC objects only -static always build a \`.o' file suitable for static linking COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $echo \ "Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $echo \ "Usage: $modename [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $echo \ "Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $echo \ "Usage: $modename [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -static do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $echo \ "Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$help" 1>&2 exit 1 ;; esac $echo $echo "Try \`$modename --help' for more information about other modes." exit 0 # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) $echo no;; *) $echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: libcorelinux-0.4.32/admin/install-sh0000775000000000000000000001273607100671013014267 0ustar #!/bin/sh # # install - install a program, script, or datafile # This comes from X11R5 (mit/util/scripts/install.sh). # # Copyright 1991 by the Massachusetts Institute of Technology # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of M.I.T. not be used in advertising or # publicity pertaining to distribution of the software without specific, # written prior permission. M.I.T. makes no representations about the # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else true fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: chmodcmd="" else instcmd=mkdir fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] then true else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else true fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else true fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else true fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else true fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0 libcorelinux-0.4.32/admin/mkinstalldirs0000775000000000000000000000132607100671013015062 0ustar #! /bin/sh # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman # Created: 1993-05-16 # Public domain # $Id: mkinstalldirs,v 1.1 2000/04/23 21:58:35 prudhomm Exp $ errstatus=0 for file do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d do pathcomp="$pathcomp$d" case "$pathcomp" in -* ) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr fi fi pathcomp="$pathcomp/" done done exit $errstatus # mkinstalldirs ends here libcorelinux-0.4.32/admin/Makefile.am0000664000000000000000000000072707100671013014314 0ustar # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 10:28:28 # LAST-MOD: 10-Apr-00 at 13:32:57 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc EXTRA_DIST = config.guess config.sub install-sh ltmain.sh ltconfig missing mkinstalldirslibcorelinux-0.4.32/admin/Makefile.in0000664000000000000000000001771107743170743014347 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY: # USAGE: make # AUTHOR: Christophe Prud'homme # ORG: Christophe Prud'homme # E-MAIL: Christophe.Prudhomme@ann.jussieu.fr # ORIG-DATE: 10-Apr-00 at 10:28:28 # LAST-MOD: 10-Apr-00 at 13:32:57 by Christophe Prud'homme # DESCRIPTION: # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc EXTRA_DIST = config.guess config.sub install-sh ltmain.sh ltconfig missing mkinstalldirs subdir = admin ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = DIST_SOURCES = DIST_COMMON = $(srcdir)/Makefile.in Makefile.am config.guess config.sub \ depcomp install-sh ltmain.sh missing mkinstalldirs all: all-am .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu admin/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: tags: TAGS TAGS: ctags: CTAGS CTAGS: DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = .. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am info info-am install install-am install-data \ install-data-am install-exec install-exec-am install-info \ install-info-am install-man install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/COPYING.LIB0000664000000000000000000006126107021272607012640 0ustar GNU LIBRARY GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the library GPL. It is numbered 2 because it goes with version 2 of the ordinary GPL.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Library General Public License, applies to some specially designated Free Software Foundation software, and to any other libraries whose authors decide to use it. You can use it for your libraries, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library, or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link a program with the library, you must provide complete object files to the recipients so that they can relink them with the library, after making changes to the library and recompiling it. And you must show them these terms so they know their rights. Our method of protecting your rights has two steps: (1) copyright the library, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the library. Also, for each distributor's protection, we want to make certain that everyone understands that there is no warranty for this free library. If the library is modified by someone else and passed on, we want its recipients to know that what they have is not the original version, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that companies distributing free software will individually obtain patent licenses, thus in effect transforming the program into proprietary software. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License, which was designed for utility programs. This license, the GNU Library General Public License, applies to certain designated libraries. This license is quite different from the ordinary one; be sure to read it in full, and don't assume that anything in it is the same as in the ordinary license. The reason we have a separate public license for some libraries is that they blur the distinction we usually make between modifying or adding to a program and simply using it. Linking a program with a library, without changing the library, is in some sense simply using the library, and is analogous to running a utility program or application program. However, in a textual and legal sense, the linked executable is a combined work, a derivative of the original library, and the ordinary General Public License treats it as such. Because of this blurred distinction, using the ordinary General Public License for libraries did not effectively promote software sharing, because most developers did not use the libraries. We concluded that weaker conditions might promote sharing better. However, unrestricted linking of non-free programs would deprive the users of those programs of all benefit from the free status of the libraries themselves. This Library General Public License is intended to permit developers of non-free programs to use free libraries, while preserving your freedom as a user of such programs to change the free libraries that are incorporated in them. (We have not seen how to achieve this as regards changes in header files, but we have achieved it as regards changes in the actual functions of the Library.) The hope is that this will lead to faster development of free libraries. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, while the latter only works together with the library. Note that it is possible for a library to be covered by the ordinary General Public License rather than by this special one. GNU LIBRARY GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Library General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also compile or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. c) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. d) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Library General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS Appendix: How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! libcorelinux-0.4.32/doc/0000775000000000000000000000000010344516430011734 5ustar libcorelinux-0.4.32/doc/corelinux.cfg.in0000664000000000000000000002657410344516430015050 0ustar # Doxyfile 1.4.5 #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- PROJECT_NAME = CoreLinux++ PROJECT_NUMBER = @CORELINUX_VERSION@ OUTPUT_DIRECTORY = CREATE_SUBDIRS = NO OUTPUT_LANGUAGE = English USE_WINDOWS_ENCODING = NO BRIEF_MEMBER_DESC = YES REPEAT_BRIEF = YES ABBREVIATE_BRIEF = "The $name class" \ "The $name widget" \ "The $name file" \ is \ provides \ specifies \ contains \ represents \ a \ an \ the ALWAYS_DETAILED_SEC = NO INLINE_INHERITED_MEMB = NO FULL_PATH_NAMES = NO STRIP_FROM_PATH = STRIP_FROM_INC_PATH = SHORT_NAMES = NO JAVADOC_AUTOBRIEF = YES MULTILINE_CPP_IS_BRIEF = NO DETAILS_AT_TOP = NO INHERIT_DOCS = YES SEPARATE_MEMBER_PAGES = NO TAB_SIZE = 3 ALIASES = OPTIMIZE_OUTPUT_FOR_C = NO OPTIMIZE_OUTPUT_JAVA = NO BUILTIN_STL_SUPPORT = NO DISTRIBUTE_GROUP_DOC = NO SUBGROUPING = YES #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- EXTRACT_ALL = NO EXTRACT_PRIVATE = NO EXTRACT_STATIC = NO EXTRACT_LOCAL_CLASSES = YES EXTRACT_LOCAL_METHODS = NO HIDE_UNDOC_MEMBERS = NO HIDE_UNDOC_CLASSES = NO HIDE_FRIEND_COMPOUNDS = NO HIDE_IN_BODY_DOCS = NO INTERNAL_DOCS = NO CASE_SENSE_NAMES = YES HIDE_SCOPE_NAMES = NO SHOW_INCLUDE_FILES = YES INLINE_INFO = YES SORT_MEMBER_DOCS = YES SORT_BRIEF_DOCS = NO SORT_BY_SCOPE_NAME = NO GENERATE_TODOLIST = YES GENERATE_TESTLIST = YES GENERATE_BUGLIST = YES GENERATE_DEPRECATEDLIST= YES ENABLED_SECTIONS = MAX_INITIALIZER_LINES = 30 SHOW_USED_FILES = YES SHOW_DIRECTORIES = YES FILE_VERSION_FILTER = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- QUIET = NO WARNINGS = YES WARN_IF_UNDOCUMENTED = YES WARN_IF_DOC_ERROR = YES WARN_NO_PARAMDOC = NO WARN_FORMAT = "$file:$line: $text" WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- INPUT = @top_srcdir@/corelinux \ @top_srcdir@/src/ FILE_PATTERNS = *.hpp \ *.cpp RECURSIVE = YES EXCLUDE = ../src/testdrivers \ @top_srcdir@/src/testdrivers EXCLUDE_SYMLINKS = NO EXCLUDE_PATTERNS = EXAMPLE_PATH = ../src/testdrivers \ @top_srcdir@/src/testdrivers EXAMPLE_PATTERNS = *.cpp \ *.hpp EXAMPLE_RECURSIVE = NO IMAGE_PATH = INPUT_FILTER = FILTER_PATTERNS = FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- SOURCE_BROWSER = NO INLINE_SOURCES = NO STRIP_CODE_COMMENTS = YES REFERENCED_BY_RELATION = YES REFERENCES_RELATION = YES USE_HTAGS = NO VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- ALPHABETICAL_INDEX = YES COLS_IN_ALPHA_INDEX = 3 IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- GENERATE_HTML = YES HTML_OUTPUT = html HTML_FILE_EXTENSION = .html HTML_HEADER = HTML_FOOTER = @srcdir@/corelinux.html HTML_STYLESHEET = @srcdir@/corelinux.css HTML_ALIGN_MEMBERS = YES GENERATE_HTMLHELP = NO CHM_FILE = HHC_LOCATION = GENERATE_CHI = NO BINARY_TOC = NO TOC_EXPAND = NO DISABLE_INDEX = NO ENUM_VALUES_PER_LINE = 4 GENERATE_TREEVIEW = NO TREEVIEW_WIDTH = 250 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- GENERATE_LATEX = NO LATEX_OUTPUT = latex LATEX_CMD_NAME = latex MAKEINDEX_CMD_NAME = makeindex COMPACT_LATEX = NO PAPER_TYPE = a4wide EXTRA_PACKAGES = LATEX_HEADER = PDF_HYPERLINKS = YES USE_PDFLATEX = YES LATEX_BATCHMODE = YES LATEX_HIDE_INDICES = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- GENERATE_RTF = NO RTF_OUTPUT = rtf COMPACT_RTF = NO RTF_HYPERLINKS = NO RTF_STYLESHEET_FILE = RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- GENERATE_MAN = NO MAN_OUTPUT = man MAN_EXTENSION = .3 MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- GENERATE_XML = NO XML_OUTPUT = xml XML_SCHEMA = XML_DTD = XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- GENERATE_PERLMOD = NO PERLMOD_LATEX = NO PERLMOD_PRETTY = YES PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- ENABLE_PREPROCESSING = YES MACRO_EXPANSION = YES EXPAND_ONLY_PREDEF = YES SEARCH_INCLUDES = YES INCLUDE_PATH = INCLUDE_FILE_PATTERNS = PREDEFINED = "DECLARE_CLASS(tag)= class tag;typedef tag * tag ## Ptr;typedef const tag * tag ## Cptr;typedef tag & tag ## Ref;typedef const tag & tag ## Cref;" \ "DECLARE_TYPE(mydecl,mytype)= typedef mydecl mytype; typedef mydecl* mytype ## Ptr;typedef const mytype * mytype ## Cptr; typedef mytype & mytype ## Ref; typedef const mytype & mytype ## Cref;" \ "CORELINUX(tag)= corelinux::##tag" \ "LOCATION= " \ "IGNORE_RETURN= (void)" \ "CORELINUX_MAP(name,key,value,comp)= typedef std::map name; typedef name * name ## Ptr; typedef const name * name ## Cptr; typedef name & name ## Ref; typedef const name & name ## Cref; typedef name::iterator name ## Iterator; typedef name::iterator& name ## IteratorRef; typedef name::iterator* name ## IteratorPtr; typedef name::const_iterator name ## ConstIterator; typedef name::const_iterator& name ## ConstIteratorRef; typedef name::const_iterator* name ## ConstIteratorPtr; typedef name::reverse_iterator name ## Riterator; typedef name::reverse_iterator& name ## RiteratorRef; typedef name::reverse_iterator* name ## RiteratorPtr " \ "CORELINUX_MULTIMAP(name,key,value,comp)= typedef std::multimap name; typedef name * name ## Ptr; typedef const name * name ## Cptr; typedef name & name ## Ref; typedef const name & name ## Cref; typedef name::iterator name ## Iterator; typedef name::iterator& name ## IteratorRef; typedef name::iterator* name ## IteratorPtr; typedef name::const_iterator name ## ConstIterator; typedef name::const_iterator& name ## ConstIteratorRef; typedef name::const_iterator* name ## ConstIteratorPtr; typedef name::reverse_iterator name ## Riterator; typedef name::reverse_iterator& name ## RiteratorRef; typedef name::reverse_iterator* name ## RiteratorPtr " EXPAND_AS_DEFINED = SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- TAGFILES = GENERATE_TAGFILE = ALLEXTERNALS = NO EXTERNAL_GROUPS = YES PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- CLASS_DIAGRAMS = YES HIDE_UNDOC_RELATIONS = YES HAVE_DOT = NO CLASS_GRAPH = NO COLLABORATION_GRAPH = NO GROUP_GRAPHS = YES UML_LOOK = NO TEMPLATE_RELATIONS = NO INCLUDE_GRAPH = NO INCLUDED_BY_GRAPH = NO CALL_GRAPH = NO GRAPHICAL_HIERARCHY = NO DIRECTORY_GRAPH = YES DOT_IMAGE_FORMAT = png DOT_PATH = DOTFILE_DIRS = MAX_DOT_GRAPH_WIDTH = 1024 MAX_DOT_GRAPH_HEIGHT = 1024 MAX_DOT_GRAPH_DEPTH = 1000 DOT_TRANSPARENT = NO DOT_MULTI_TARGETS = NO GENERATE_LEGEND = YES DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::additions related to the search engine #--------------------------------------------------------------------------- SEARCHENGINE = NO libcorelinux-0.4.32/doc/corelinux.css0000664000000000000000000000251507137761515014475 0ustar H1 { text-align: center; } A.qindex {} A.qindexRef {} A { text-decoration: none; color #6666FF; } A:visited { text-decoration: none; color: #6666AA; } A:link { text-decoration: none; color: #6666DD; } A:active { text-decoration: none; color: #6666DD; } A:hover { text-decoration: none; color: #FF6666 } A.el { text-decoration: none; font-weight: bold } A.elRef { font-weight: bold } A.code { text-decoration: none; font-weight: normal; color: #4444ee } A.codeRef { font-weight: normal; color: #4444ee } DL.el { margin-left: -1cm } DIV.fragment { width: 100%; border: none; background-color: #eeeeee } DIV.in { margin-left: 16 } DIV.ah { background-color: black; margin-bottom: 3; margin-top: 3 } TD.md { background-color: #f2f2ff } DIV.groupHeader { margin-left: 16; margin-top: 12; margin-bottom: 6; font-weight: bold } DIV.groupText { margin-left: 16; font-style: italic; font-size: smaller } FONT.keyword { color: #008000 } FONT.keywordtype { color: #604020 } FONT.keywordflow { color: #e08000 } FONT.comment { color: #800000 } FONT.preprocessor { color: #806020 } FONT.stringliteral { color: #002080 } FONT.charliteral { color: #008080 } OL,UL,P,BODY,TD,TR,TH,FORM,SPAN { font-family: arial,helvetica,sans-serif;color: #333333 } H1,H2,H3,H4,H5,H6 { font-family: arial,helvetica,sans-serif } PRE,TT { font-family: courier,sans-serif } libcorelinux-0.4.32/doc/Makefile.am0000664000000000000000000000213207153561213013771 0ustar # -*- Mode: makefile -*- # SUMMARY : # USAGE : make # AUTHOR : Christophe Prud'homme # ORG : Christophe Prud'homme # E-MAIL : # ORIG-DATE : 26-Apr-89 # LAST-MOD : 12-Apr-00 at 15:49:03 by Christophe Prud'homme # DESCRIPTION : # DESCRIP-END. SUFFIXES = .cpp .hpp .c .h .f .F .o .moc EXTRA_DIST = corelinux.cfg.in corelinux.css corelinux.html corelinux.cfg: corelinux.cfg.in ref: corelinux.cfg doxygen corelinux.cfg @echo "================================================================================" @echo "Some explanations:" @echo " o The html directory contains the html version. Look at html/index.html." @echo " o Now you can go in the latex directory and make the pdf or the ps files" @echo " using the Makefile. For example type:" @echo " make pdf or make ps" @echo @echo "The CoreLinux Consortium." @echo "================================================================================" # Common rcs information do not modify # $Author: prudhomm $ # $Revision: 1.2 $ # $Date: 2000/08/31 22:56:11 $ # $Locker: $ libcorelinux-0.4.32/doc/Makefile.in0000664000000000000000000002122207743170744014015 0ustar # Makefile.in generated by automake 1.7.8 from Makefile.am. # @configure_input@ # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- Mode: makefile -*- # SUMMARY : # USAGE : make # AUTHOR : Christophe Prud'homme # ORG : Christophe Prud'homme # E-MAIL : # ORIG-DATE : 26-Apr-89 # LAST-MOD : 12-Apr-00 at 15:49:03 by Christophe Prud'homme # DESCRIPTION : # DESCRIP-END. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_triplet = @host@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CORELINUX_MAJOR_VERSION = @CORELINUX_MAJOR_VERSION@ CORELINUX_MICRO_VERSION = @CORELINUX_MICRO_VERSION@ CORELINUX_MINOR_VERSION = @CORELINUX_MINOR_VERSION@ CORELINUX_VERSION = @CORELINUX_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBCORELINUX_SO_VERSION = @LIBCORELINUX_SO_VERSION@ LIBEXMPLSUPP_SO_VERSION = @LIBEXMPLSUPP_SO_VERSION@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ ac_ct_RANLIB = @ac_ct_RANLIB@ ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .cpp .hpp .c .h .f .F .o .moc EXTRA_DIST = corelinux.cfg.in corelinux.css corelinux.html subdir = doc ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = corelinux.cfg DIST_SOURCES = DIST_COMMON = $(srcdir)/Makefile.in Makefile.am corelinux.cfg.in all: all-am .SUFFIXES: .SUFFIXES: .cpp .hpp .c .h .f .F .o .moc $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) corelinux.cfg: $(top_builddir)/config.status corelinux.cfg.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: tags: TAGS TAGS: ctags: CTAGS CTAGS: DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = .. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkinstalldirs) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am info info-am install install-am install-data \ install-data-am install-exec install-exec-am install-info \ install-info-am install-man install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ uninstall-info-am corelinux.cfg: corelinux.cfg.in ref: corelinux.cfg doxygen corelinux.cfg @echo "================================================================================" @echo "Some explanations:" @echo " o The html directory contains the html version. Look at html/index.html." @echo " o Now you can go in the latex directory and make the pdf or the ps files" @echo " using the Makefile. For example type:" @echo " make pdf or make ps" @echo @echo "The CoreLinux Consortium." @echo "================================================================================" # Common rcs information do not modify # $Author: prudhomm $ # $Revision: 1.2 $ # $Date: 2000/08/31 22:56:11 $ # $Locker: $ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libcorelinux-0.4.32/doc/corelinux.html0000664000000000000000000000047007140354125014634 0ustar
This is the CoreLinux++ reference manual
Provided by The CoreLinux Consortium
libcorelinux-0.4.32/NEWS0000664000000000000000000000104107100671013011655 0ustar # -*- Mode: text -*- # # $Id: NEWS,v 1.2 2000/04/23 21:58:35 prudhomm Exp $ # ** 23/04/2000 realease of libcorelinux 0.4.17 New packaging and compilation process. Now everything is handled by autoconf/automake/libtool. o Shared and static libraries are created ; o make dist creates automagically a tarball ; o --enable-debug enables ALL_ASSERTIONS macro automatically o --with-cxx supports KCC G++ and pgCC, i.e. use --with-cxx=KCC | g++ | pgCC # # Local Variables: # eval: (auto-fill-mode 1) # eval: (setq fill-column 60) # End: #libcorelinux-0.4.32/README.emacs0000664000000000000000000000134507132435351013144 0ustar # -*- Mode: text -*- For the xemacs/emacs users, here is a configuration for cc-mode using the corelinux coding standards. (defun corelinux-c++-mode-hook () ;; use Ellemtel style for all C++ like languages (c-set-style "ellemtel") ;; Comments must be at the same indentation level as the block they describe (c-set-offset 'comment-intro '0) ;; One level more of indentation for left parentesis of function parameters (c-set-offset 'topmost-intro-cont '+) ;; Right parenthesis at same level of the left one (c-set-offset 'arglist-close '0) (setq tab-width 3 ;; this will make sure spaces are used instead of tabs indent-tabs-mode nil) ) ;; Affect only c++ files (add-hook 'c++-mode-hook 'corelinux-c++-mode-hook)