diff --git a/ChangeLog.beta b/ChangeLog.beta new file mode 100644 index 0000000..7b8798f --- /dev/null +++ b/ChangeLog.beta @@ -0,0 +1,35 @@ +------------------------------------------------------------------------------ +WANPIPE + +Linux Voice TDM/WAN Router Package +------------------------------------------------------------------------------ +Author: Nenad Corbic +Copyright (c) 1995-2007 Sangoma Technologies Inc. +------------------------------------------------------------------------------ + + +* Fri May 17 2007 Nenad Corbic - Beta - 3.1.0 +==================================================================== + +- Major new BETA wanpipe release + Changed wanpipe versioning: + Release: A.B.C.D + A - Major Relase number + B - Indicates Stable or Beta + Odd number is Beta + Even number is Stable + C - Minor Release number + D - Optional pre-release and custom releases + +- Fixed RBS Support for all Maxim cards A101/2/4/8. + +- Support for 2.6.20 kernels. + +- Support for New: A101D A102D A104D Maxim cards + : +- Support for New: AFT 56K DDS card + +- Redesigned TDM API Events + +- TDM API Analog Support + diff --git a/ChangeLog.stable b/ChangeLog.stable deleted file mode 100644 index a7cecd0..0000000 --- a/ChangeLog.stable +++ /dev/null @@ -1,663 +0,0 @@ ------------------------------------------------------------------------------- -WANPIPE - -Linux Voice TDM/WAN Router Package ------------------------------------------------------------------------------- -Author: Nenad Corbic -Copyright (c) 1995-2007 Sangoma Technologies Inc. ------------------------------------------------------------------------------- - - - -* Tue Nov 15 2007 Nenad Corbic - 2.3.4-16 -==================================================================== - -- Fixed MAXIM loopback commands. - T1/E1 Digital, Remote and Line Loopbacks now work. - - -* Tue Oct 29 2007 Nenad Corbic - 2.3.4-15 -==================================================================== - -- Fixed T3/E3 CARRIER state on startup. - -- Updated Setup install script - - -* Tue Aug 15 2007 Nenad Corbic - 2.3.4-14 -==================================================================== - -- Added A101-SH A102-SH autopci old config support. - So A101u or A101c config file can be used with new A101-SH cards. - -- Added a sanity checker for enabling HWEC. - Used to prevent duble hwec enable. - -- Updated CHDLC switched CTS/RTS auto-baudrate. - - - -* Mon Jun 30 2007 Nenad Corbic - 2.3.4-13 -==================================================================== - -- Update to Ocatsic Hardware Echo Canceler Library - Turned of the NOISE suppression because it can interfere - with faxes. If you faxes did not work properly on 2.3.4-12 - release they will work fine with this one. - -- Cleaned up the Setup installation script. - - -* Mon Jun 16 2007 Nenad Corbic - 2.3.4-12 -==================================================================== - -- Update to Octasic Hardware Echo Canceler library - This is a very important update that affects all AFT cards - with octasic hardware echo canceler. The new octasic update - fixes faxing/modem issues over octasic hwec. The previous - release contained a bug that limited the faxing/modem speeds - to 26k. The new update properly detects fax/modem and works - with full speed of 33k fax and 56k modem. - -- A200/A400 Updated - This update fixes the offhook startup failure. - On startup if fxs is offhook driver will start correctly - -- Wanpipe Startup order changed - The wanpipe startup scripts on bootup were previously - set too early "S03wanrouter". This caused unpredictable - behaviour on some systems. We have now moved wanrouter - startup on boot up to "S11wanrouter", after networking - code. - -- Zaptel Adjustable Chunk Size Feature - Wanpipe drivers can work with 1,2,5 and 10ms - chunk size. Zaptel also supports this, however - the wct4xx driver breaks compilation when chunk - size is changed. ./Setup can how change the - zaptel chunk size for you and update zaptel - Makefiles to remove wct4xx driver out. - - Zaptel with 1ms generates 1000 interrupts per sec - Zaptel with 10ms generates 100 interrupts per sec. - - As you can see its a drastic interrupt performance - increase. - - NOTE: This breaks software echo cancelation, but - its not needed since we have hwec. - - -* Thu Jun 14 2007 Nenad Corbic - 2.3.4-11 -=============================================================== - -- A101/2/4/8 (MAXIM) AFT Update IMPORTANT - A major bug fix for AFT Maxim E1 cards for E1 CRC4 Mode. - On some lines the E1/CRC4 mode causes line errors on - the telco side which results in PRI not coming up. - - Symptiom: E1 is up (no alarms) on local side but pri is - not coming up! (Only in E1 CRC4 Mode) - -- A101/2/4/8 (MAXIM) Mandatory Firmware Update - An echo canceler bug has been fixed for all AFT - MAXIM Cards A101/2/4/8dm. New firmware version is V31. - If you are running MAXIM cards with hwec wiht older - firmware version you must upgrade. - -- Updated SMG - Fixed DTMF synchronization - - -* Thu Jun 13 2007 Nenad Corbic - 2.3.4-10 -=============================================================== - -- Support for AFT 54K DDS hardware - -- Support for New A301 T3/E3 Card - -- Updated Maxim (A101/2/4/8) Front end - On port shutdown properly reset the port. - This will solve instances where on port - shutdown, the remote end stays up. - -- Updated Setup for patching Zaptel 1.2.17 - -- Analog Network Sync Feature - Synchronize Analog card to a clock of a - Digital T1/E1 port using external cable. - Improves Faxing performance! - For more info: - http://wiki.sangoma.com/t1e1analogfaxing - - -* Wed May 17 2007 Nenad Corbic - 2.3.4-9 -==================================================================== - -- Updated Zaptel 1.2.17 DCHAN Patch - -- Hardware A101D and A101DX Support - -- Added Maxim register debug in wanpipemon - -- Update to SMG - - -* Wed Apr 23 2007 Nenad Corbic - 2.3.4-8 -==================================================================== - -- Important: AFT TDMV (ZAPTEL) Fix - A race condition existed on wanrouter startup. - If echo canceler startup delayed the startup long enough, - for T1/E1 line to come up, it was possible that zaptel - alarms would not be cleared. - -- Important: AFT T1/E1 Front End update. - The AFT cards will not disable communications for minor - T1/E1 alarms. This has caused problems in the passed because - AFT cards were too strict in interpreting T1/E1 alarms. - - -- Added AFT/56K Line Loop Test feature in wanpipemon - After enabling digital loopback run line test to test - the device.: - wanpipemon -i w1g1 -c Tadlb - wanpipemon -i w1g1 -c Tlt - - This option can be used with any T1/E1 AFT card as well as 56K, - with any wanpipe configuration. - -- Hardware support for new AFT 301 Card. - The new T3 card has been redesigned to use common main board as - the rest of the AFT family. However, the driver remains identical. - -- AFT T1/E1 Improved CAS Signaling Support - -- Allow original A102 config to work with A102d cards. - -- TDM API updated for unlimited number of /dev/wptdm devices. - -- Updated the Hardware Echo Canceler with Noise suppression. - -- New TDM Zaptel/TDM API installation Makefile to be used by linux power users. - Options: - make #buils all utilities and kernel modules - make install #installs utilities modules etc - -- Fixed DCHAN patch for zaptel 1.2.13 - - - KNOWS ISSUES: - ------------- - - All cards with Maxim/Dallas front end chips do not support RBS signalling. - These include: A102d/A108d and new A104d with maxim/dallas chips. - The fix is in new beta 3.1.0 release. - - -* Wed Jan 31 2007 Nenad Corbic - 2.3.4-7 -==================================================================== - -- Removed a sanity check from AFT drivers - This check was added in 2.3.4-5 release. - - Due to some imporant fixes in 2.3.4-5 this release was - rushed, and things like this happen. Sorry :) - - -* Wed Jan 31 2007 Nenad Corbic - 2.3.4-6 -==================================================================== - -- Bugfix for AFT Hardware Echo Voice cards - Bug introduced in 2.3.4-5 release. - - The new feature "persistent hwec" released in 2.3.4-5 had a bug - that was apprent on wanpipe restarts. - Anyone running 2.3.4-5 release should upgrade. - - If you are running 2.3.4-5 in production to fix this problem enable - the following option in [wanpipe] section of wanpipeX.conf. - TDMV_HWEC_PERSIST_DISABLE=YES - And restart all wanpipe cards using: wanrouter restart command. - - Note this bug affects all AFT cards with hardware echo cancellation - and release 2.3.4-5. - - For more info please contact Sangoma Support. - -- Minor cosmetic update to wancfg_zaptel wanpipe/zaptel configurator. - - -* Mon Jan 22 2007 Nenad Corbic - 2.3.4-5 -==================================================================== - -- Updated support for A400 Analog card - This release will recognize the new A400 - pci card info. - -- Updated A200/A400 firmware updater - Takes into account the new A200 and A400 cards. - -- AFT A301 T3/E3 Driver Update - Fixed a possible race condition - during startup/shutdown - -- AFT A101/2 T1/E1 Driver Update - Fixed a possible race condition - during startup/shutdown - -- AFT Hardware Echo Cancellation Persist Mode - The new default Echo Cancellation mode for all AFT cards. - If HWEC is enabled in wanpipe1.conf the Sangoma HWEC will - remain enabled all the time, even if the calls are not up. - Previously Asterisk enabled and disabled echo based on - zapata.conf and call state. This delay however caused minute - echo on call startup. In Persist mode, Sangoma HWEC will - always be enabled, thus users will get perfect quality 100% - of the time. - - In order to configure WANPIPE card in NON-PERSIST mode one - has to enable TDMV_HWEC_PERSIST_DISABLE=YES option in [wanpipeX] - section of wanpipeX.conf. - In this mode Asterisk will be responsible for enabling/disabling - hardware echo canceler. - -- LIP Layer Bug Fix. - This bug fix affects all WAN protocols for all AFT cards. - The bug was a race condition in startup code. - On a slow enough machine it was possible for an interface - to get stuck in disconnected mode during startup. - -- Wanpipe Zaptel Configuration Utility - The new wancfg_zaptel utility is now a default way to - configure Sangoma cards for Zaptel. The wancfg_zaptel utility - will auto detect all Sangoma cards in your machine and create - wanpipe configuration files along with /etc/zaptel.conf. This way - the customer can concentrate on /etc/asterisk/zapata.conf only. - - Run: /usr/sbin/wancfg_zaptel - Wizard like questions will lead you through whole - configuration process. - - After wancfg_zaptel following files will be created: - /etc/wanpipe/wanpipe*.conf # All wanpipe config files - /etc/zaptel.con # Fully configured zaptel - - -* Tue Jan 9 2007 Nenad Corbic - 2.3.4-4 -==================================================================== - -- Critical Bug fix A200/A400 Analog Cards - Critical bug fix in fxo sanity check control. - All customers that are running stable 2.3.4 release - must upgrade to 2.3.4-4. - -- Updates for 2.6.18 and 2.6.19 kernels. - -- Critical Bug fix for A108D and A102D cards. - It was possible for the front end interrupt handler to - miss-handle a pending interrupt, which would caused system - instability. - -- TDM API Update - Removed Zaptel dependency for A200/A400 cards when - running in TDM API mode only. - - -* Tue Dec 12 2006 Nenad Corbic - 2.3.4-3 -==================================================================== - -- Bug fix on A301 T3/E3 Drivers - The T3/E3 card/drivers could get stuck in connected or disconnected - state after which no state changes are reported. Used to happend - on noisy lines. - -- Bug Fix in A101/2 Drivers - Mishandling of skb buffers on rx stream could cause - unpredictable behavior on some systems. - This has now been fixed. - -- Updated A101/2/4/8 A301 Drivers - Changed the memory allocation scheme in non interrupt context to - use KERNEL instead of ATOMIC. The symptoms were on low - memory system wanrouter start could fail due to memory - allocation error when starting up large number of devices. - -- TDM API polling bug fix - By default TDM API application uses rx and tx streams. - However in tx only mode, the select would fail to wakeup. - -- A200 A400 Driver Bug Fix - If A200/A400 card are started with NO FXO/FXS modules - a kernel error is possible on some systems. - -- Update to TDM API sample Makefiles - added -lm library to compilation - -- Updated SMG Drivers - Sangoma SMG 1.7 Chan Woomera 1.6 - - -* Wed Nov 30 2006 Nenad Corbic - 2.3.4-2 -==================================================================== - -- A200 Sanity Check Bug Fix - This is an IMPORTANT update! This bug fix fixes a bug in FXO - sanity checker that on some machine could cause instability. - -- Wanpipemon A200 Voltage Check bug fix. - wanpipemon command was showing over 50V voltage - the sign was not observed. - - - -* Wed Nov 23 2006 Nenad Corbic - 2.3.4-1 -==================================================================== - -- This is the first official STABLE release of 2.3.4 branch. - -- AFT A104d 64bit bug fix - The AFT A104d T1 channel 24 failed to initialize causing DCHAN - not to come up on 64 bit machines. - -- SMG Update - Major optimizations to greatly improve system load and capacity. - Added rx tx gain control from CLI and woomera.conf - Woomera v1.5 SMG v1.6 - -- Driver update for 2.6.18 kernel. - -- Wanpipemon Updates - Updated for A301 drivers. - Minor bug fixes. - -- CHDLC Protocol - Fixed up the ignore keepalive - -- WANCFG - CHDLC Protocol - Bug fix in chdlc configuration. - - -* Thu Nov 02 2006 Nenad Corbic - beta12-2.3.4 -=================================================================== -- Further Analog Bug Fixes. - Fixes the problem where fxo module gets stuck during operation. - - - -* Wed Nov 01 2006 Nenad Corbic - beta11-2.3.4 -=================================================================== -- A102D Hardware Support - Updated drivers for A102D Hardware - Minimum A102D firmware version V.28 - -- Bug fix in Analog A200 driver. - Every once in a while a fxo port would get stuck and fail to - receive any more calls. This has not been fixed. - -- Bug fix in Analog A200 driver. - The lasttxhoot state could get stuck in one state. - If you have weird analog A200 issues, please try this release. - -- New SMG update - -- Setup installation script update - -- New A200 voltage statistics in wanpipemon - -- New wanrouter hwprobe verbose option - Displays all FXO/FXS modules installed on your system - wanrouter hwprobe verbose - - -* Fri Oct 13 2006 Nenad Corbic - beta10-2.3.4 -==================================================================== - -- A200 Bug fix - Analog software echo cancellation has been broken - in beta8-2.3.4 release. This bug has now been fixed. - This bug does not affect A200d cards with HWEC. - -- Setup update - Update in compilation headers that caused wan_ec_client - to fail compilation on some machine. - -* Fri Oct 6 2006 Nenad Corbic - beta9-2.3.4 -- Bug fixes hwec that were introduced in beta8 -- Disabled hw dtmf events. -- This release has been tested in production. - -* Mon Oct 2 2006 Nenad Corbic - beta8-2.3.4 -================================================================= - -- New A108 HWEC Support - Optimized TDM Drivers for A108 - Support for A108 Hardware Echo Cancellation - Support for A108 RefClock between ports. - New Firmware. V27 - -- New A108 HWEC Support - Optimized TDM Drivers for A108 - Support for A108 Hardware Echo Cancellation - Support for A108 RefClock between ports. - New Firmware. V27 - -- LIP / AFT Layer Latency Optimization (LINUX Only) - By setting txqueuelen using ifconfig to value of 1 - the LIP layer will re-configure the protocol and hw layer - for SINGLE tx buffer. This will improve overall latency. - -- AFT (A101/2/4/8) Layer Latency Optimization - The SINGLE_TX_BUF=YES option in [w1g1] interface - section, configures the AFT hardware for single hw dma buffer - instead of a DMA chain. This option along with above - LIP layer latency option reduces driver/protocol latency - to theoretical minimum. - NOTE: In WAN/IP applications latency feature will increase - system load. - (5% to 20% depending on system and number of ports used) - - -* Mon Jul 31 2006 Nenad Corbic - beta7-2.3.4 -================================================================== -- A200 Driver Bug Fix. - The A200 drivers had PULSE dialing enabled - that can cause call outages on NON-PULSE dialing lines. - This has now been fixed. - -- Updates to ./Setup installation script - More documentation in usage. - - - -* Mon Jul 24 2006 Nenad Corbic - beta6-2.3.4 -================================================================== -- Fixed the AFT HWEC on 64bit kernels. - The bug was caused by using 32bit version of - the octasic API release in beta5-2.3.4. - - - -* Fri Jul 21 2006 Nenad Corbic - beta5-2.3.4 -================================================================== -- TDM API was broken on A101/2 Cards - It has not been fixed. - -- A108D Hardware Support - The new A108D: 8 Port T1/E1 with onboard 246 channel - hardware echo canceller. - -- The wanec daemon has been deprecated. - A new wanec kernel module has been created to handle - all octasic commands. - -- The hwec release has been deprecated. - The hwec drivers are now part of wanpipe release. - -- Bug Fix in A104 and A104D Ref Clock - This bug caused FAX failures when REF Clock option was enabled. - -- Updates for 2.6.16 and 2.6.17 kernels - New kernels broke previous wanpipe drivers. - -- Frame Relay Update: EEK Support - New Frame relay stack supports Cisco End to End Keepalives - on each DLCI. - -- PPP Update: Updated PPP IP negotiation. IPCP was not - working properly agains some routers. This has now - been resolved. - -- TDM API: HW DMTF on A104D cards. - The TDM API and regular API interfaces now supports HW DTMF - on A104D and A108D cards. - -- Setup update: the --protocols option with --silent option did not - select proper protocols under certail conditions. - ./Setup install --protocols=TDM --silent - This option will now compile TDM protocol properly. - -- ADSL Update: The ADSL drivers were failing on some machines due - to kfree_skb error under irq. This has now been fixed. - -- AFT A104/A108 Driver updated for 64bit kernels with over 4GB - of memory. The NO AUDIO problem on TDM drivers. - The 4GB memory caused DMA corruptions to occur which caused - no AUDIO effect. - -- SSMG Product: Sangoma Signal Media Gateway - The ssmg product is now part of standard wanpipe. - It will automatically get installed if XMTP2 drivers are - selected. The SMG product provides SS7 Support to Asterisk. - -- LibSangoma: LibSangoma is part of the SSMG product, however - it can be used separately with TDM API to develop custom - TDM applications. Libsangoma is now part of standard wanpipe - release. - -* Fri Mar 04 2006 Nenad Corbic - beta4-2.3.4 -- A108 Hardware Support - Full support for new A108 8 Port T1/E1 Card - -- AFT Front End T1/E1 Alarm Update/Polling - On some embedded machines the A104D cards exhibited - unreliable ports i.e. The port would not come up due to - missing interrupts from the front end chip. - The Front End polling mechanism has been updated to solve this problem. - -- TDM API Update - Fixed a bug in RX/TX functions. - On some machines the kernel to user copy did not work. - -- Updated HWEC and TDMAPI Udev Devices - HWEC UDEV device: /dev/wp1ec (Major: 241) - TDM API UDEV device: /dev/wptdm_s1c1 (Major: 242) - -- Setup Installation Script Update - Compilation of Zaptel during installation - UDEV Zaptel updates - UDEV TDM API updates - -- AFT-LIP Frame Relay DLCI Statistics - Updated Frame Relay DLCI Statistics. - -- AFT-LIP PPP Update - IPCP negotiation failed when connected to some telco. - -* Wed Feb 22 2006 Nenad Corbic - beta3-2.3.4 -- A104D HWEC Update - Bug fix on E1 4th port channel 31 did not work. - -- A104D HWEC 64Bit Fix - The A104D HWEC now works on 64bit machines. - Using UDEV /dev/wp1ec device to access hwec chip. - If no UDEV one must create /dev/wp1ec using: - mknod /dev/wp1ec c 2402 1 - -- AFT Firmware Update Utility - Bug fix. On some systems firmware update failed. - -- TDM API Updates - Support on AFT A101/2 Cards - Fixed shutdown problems while channels are opened. - -* Wed Feb 15 2006 Nenad Corbic - beta2-2.3.4 -- The Beta2-2.3.4 is the first official Beta release of 2.3.4. - The 2.3.4 release has been in ALPHA for months and has gone - through major testing process. - -- A200 Remora Updates - Updates for 24 port A200 solution - New A200 Firmware Release V05 - -- A104D Update/Bug Fix - Echo cancellation DSP had problems on - port 4 of A104D card. - -- New A104/4D TDM API and libsangoma release - The new TDM API replaces the old TDM API. - Currently the TDM API is only supported on A104 and A104D cards. - - The TDM API is compiled by default in wanpipe drivers. - Supports: PRI and RBS functionality. - Sample files: /etc/wanpipe/api/tdm_api - -- Libsangoma Release - New libsangoma source is located in - /etc/wanpipe/api/libsangoma directory. - - For more info and docs please refer to http://sangoma.editme.com - - -* Tue Jan 10 2006 Nenad Corbic - beta1y-2.3.4 -- Driver update for 2.4.30 kernel -- AFT A104 Driver minor update to TDM API - Number of dma packets used in API mode. - To save memory. Not a functional change. - -- Update to Setup install script - -- Wancfg Update - New option to configure wanpipe config file base on zaptel.conf - syntax: "wancfg zaptel" - -* Tue Dec 15 2005 Nenad Corbic - beta1x-2.3.4 -- Major AFT A200 Analog Updates - Analog Hardware Echo Canceler is now supported - Bug fixes on aLaw lines, noise problems. - -- Wancfg Updates - -- Updates to Setup installation utility - -* Mon Dec 5 2005 Nenad Corbic - beta1x-2.3.4 -- WanCfg Update - New wancfg option "zaptel" that will create wanpipe - based on /etc/zaptel.conf configuration. - eg: - 1. Configure your zaptel first based on hardware - 2. Run: wancfg zaptel - To create wanpipe config files based on zaptel.conf - 3. Run: wanrouter start - 4. Run: ztcfg -vvv - 5. Read to start Asterisk - -- Setup Update - Added new options in ./Setup for user to specify custom gcc - compiler. - -- AFT A200 Updates - Further Analog driver updates. - -- AFT Echo Debugging Utility - Used to measure echo spike and debug echo problems. - - -* Wed Nov 23 2005 Nenad Corbic - beta1x-2.3.4 - -- Bug fix in Analog startup - You can now set ACTIVE_CH=ALL and by default all detected - FXO/FXS Devices will be configured. - -- Bug fix in A102 Drivers - When both ports are running, if you stop one - the other one dies. diff --git a/ChangeLog.stable.bak b/ChangeLog.stable.bak deleted file mode 100644 index 3dead2e..0000000 --- a/ChangeLog.stable.bak +++ /dev/null @@ -1,595 +0,0 @@ ------------------------------------------------------------------------------- -WANPIPE - -Linux Voice TDM/WAN Router Package ------------------------------------------------------------------------------- -Author: Nenad Corbic -Copyright (c) 1995-2007 Sangoma Technologies Inc. ------------------------------------------------------------------------------- - -* Mon Jun 16 2007 Nenad Corbic - 2.3.4-12 -==================================================================== - -- Update to Octasic Hardware Echo Canceler library - This is a very important update that affects all AFT cards - with ocatasic hardare echo canceler. The new octasic update - fixes faxing/modem issues over octasic hwec. The previous - release contained a bug that limited the faxing/modem speeds - to 26k. The new update properly detects fax/modem and works - with full speed of 33k fax and 56k modem. - - - -* Thu Jun 14 2007 Nenad Corbic - 2.3.4-11 -=============================================================== - -- A101/2/4/8 (MAXIM) AFT Update IMPORTANT - A major bug fix for AFT Maxim E1 cards for E1 CRC4 Mode. - On some lines the E1/CRC4 mode causes line errors on - the telco side which results in PRI not coming up. - - Symptiom: E1 is up (no alarms) on local side but pri is - not coming up! (Only in E1 CRC4 Mode) - -- A101/2/4/8 (MAXIM) Mandatory Firmware Update - An echo canceler bug has been fixed for all AFT - MAXIM Cards A101/2/4/8dm. New firmware version is V31. - If you are running MAXIM cards with hwec wiht older - firmware version you must upgrade. - -- Updated SMG - Fixed DTMF synchronization - - -* Thu Jun 13 2007 Nenad Corbic - 2.3.4-10 -=============================================================== - -- Support for AFT 54K DDS hardware - -- Support for New A301 T3/E3 Card - -- Updated Maxim (A101/2/4/8) Front end - On port shutdown properly reset the port. - This will solve instances where on port - shutdown, the remote end stays up. - -- Updated Setup for patching Zaptel 1.2.17 - -- Analog Network Sync Feature - Synchronize Analog card to a clock of a - Digital T1/E1 port using external cable. - Improves Faxing performance! - For more info: - http://wiki.sangoma.com/t1e1analogfaxing - - -* Wed May 17 2007 Nenad Corbic - 2.3.4-9 -==================================================================== - -- Updated Zaptel 1.2.17 DCHAN Patch - -- Hardware A101D and A101DX Support - -- Added Maxim register debug in wanpipemon - -- Update to SMG - - -* Wed Apr 23 2007 Nenad Corbic - 2.3.4-8 -==================================================================== - -- Important: AFT TDMV (ZAPTEL) Fix - A race condition existed on wanrouter startup. - If echo canceler startup delayed the startup long enough, - for T1/E1 line to come up, it was possible that zaptel - alarms would not be cleared. - -- Important: AFT T1/E1 Front End update. - The AFT cards will not disable communications for minor - T1/E1 alarms. This has caused problems in the passed because - AFT cards were too strict in interpreting T1/E1 alarms. - - -- Added AFT/56K Line Loop Test feature in wanpipemon - After enabling digital loopback run line test to test - the device.: - wanpipemon -i w1g1 -c Tadlb - wanpipemon -i w1g1 -c Tlt - - This option can be used with any T1/E1 AFT card as well as 56K, - with any wanpipe configuration. - -- Hardware support for new AFT 301 Card. - The new T3 card has been redesigned to use common main board as - the rest of the AFT family. However, the driver remains identical. - -- AFT T1/E1 Improved CAS Signaling Support - -- Allow original A102 config to work with A102d cards. - -- TDM API updated for unlimited number of /dev/wptdm devices. - -- Updated the Hardware Echo Canceler with Noise suppression. - -- New TDM Zaptel/TDM API installation Makefile to be used by linux power users. - Options: - make #buils all utilities and kernel modules - make install #installs utilities modules etc - -- Fixed DCHAN patch for zaptel 1.2.13 - - - KNOWS ISSUES: - ------------- - - All cards with Maxim/Dallas front end chips do not support RBS signalling. - These include: A102d/A108d and new A104d with maxim/dallas chips. - The fix is in new beta 3.1.0 release. - - -* Wed Jan 31 2007 Nenad Corbic - 2.3.4-7 -==================================================================== - -- Removed a sanity check from AFT drivers - This check was added in 2.3.4-5 release. - - Due to some imporant fixes in 2.3.4-5 this release was - rushed, and things like this happen. Sorry :) - - -* Wed Jan 31 2007 Nenad Corbic - 2.3.4-6 -==================================================================== - -- Bugfix for AFT Hardware Echo Voice cards - Bug introduced in 2.3.4-5 release. - - The new feature "persistent hwec" released in 2.3.4-5 had a bug - that was apprent on wanpipe restarts. - Anyone running 2.3.4-5 release should upgrade. - - If you are running 2.3.4-5 in production to fix this problem enable - the following option in [wanpipe] section of wanpipeX.conf. - TDMV_HWEC_PERSIST_DISABLE=YES - And restart all wanpipe cards using: wanrouter restart command. - - Note this bug affects all AFT cards with hardware echo cancellation - and release 2.3.4-5. - - For more info please contact Sangoma Support. - -- Minor cosmetic update to wancfg_zaptel wanpipe/zaptel configurator. - - -* Mon Jan 22 2007 Nenad Corbic - 2.3.4-5 -==================================================================== - -- Updated support for A400 Analog card - This release will recognize the new A400 - pci card info. - -- Updated A200/A400 firmware updater - Takes into account the new A200 and A400 cards. - -- AFT A301 T3/E3 Driver Update - Fixed a possible race condition - during startup/shutdown - -- AFT A101/2 T1/E1 Driver Update - Fixed a possible race condition - during startup/shutdown - -- AFT Hardware Echo Cancellation Persist Mode - The new default Echo Cancellation mode for all AFT cards. - If HWEC is enabled in wanpipe1.conf the Sangoma HWEC will - remain enabled all the time, even if the calls are not up. - Previously Asterisk enabled and disabled echo based on - zapata.conf and call state. This delay however caused minute - echo on call startup. In Persist mode, Sangoma HWEC will - always be enabled, thus users will get perfect quality 100% - of the time. - - In order to configure WANPIPE card in NON-PERSIST mode one - has to enable TDMV_HWEC_PERSIST_DISABLE=YES option in [wanpipeX] - section of wanpipeX.conf. - In this mode Asterisk will be responsible for enabling/disabling - hardware echo canceler. - -- LIP Layer Bug Fix. - This bug fix affects all WAN protocols for all AFT cards. - The bug was a race condition in startup code. - On a slow enough machine it was possible for an interface - to get stuck in disconnected mode during startup. - -- Wanpipe Zaptel Configuration Utility - The new wancfg_zaptel utility is now a default way to - configure Sangoma cards for Zaptel. The wancfg_zaptel utility - will auto detect all Sangoma cards in your machine and create - wanpipe configuration files along with /etc/zaptel.conf. This way - the customer can concentrate on /etc/asterisk/zapata.conf only. - - Run: /usr/sbin/wancfg_zaptel - Wizard like questions will lead you through whole - configuration process. - - After wancfg_zaptel following files will be created: - /etc/wanpipe/wanpipe*.conf # All wanpipe config files - /etc/zaptel.con # Fully configured zaptel - - -* Tue Jan 9 2007 Nenad Corbic - 2.3.4-4 -==================================================================== - -- Critical Bug fix A200/A400 Analog Cards - Critical bug fix in fxo sanity check control. - All customers that are running stable 2.3.4 release - must upgrade to 2.3.4-4. - -- Updates for 2.6.18 and 2.6.19 kernels. - -- Critical Bug fix for A108D and A102D cards. - It was possible for the front end interrupt handler to - miss-handle a pending interrupt, which would caused system - instability. - -- TDM API Update - Removed Zaptel dependency for A200/A400 cards when - running in TDM API mode only. - - -* Tue Dec 12 2006 Nenad Corbic - 2.3.4-3 -==================================================================== - -- Bug fix on A301 T3/E3 Drivers - The T3/E3 card/drivers could get stuck in connected or disconnected - state after which no state changes are reported. Used to happend - on noisy lines. - -- Bug Fix in A101/2 Drivers - Mishandling of skb buffers on rx stream could cause - unpredictable behavior on some systems. - This has now been fixed. - -- Updated A101/2/4/8 A301 Drivers - Changed the memory allocation scheme in non interrupt context to - use KERNEL instead of ATOMIC. The symptoms were on low - memory system wanrouter start could fail due to memory - allocation error when starting up large number of devices. - -- TDM API polling bug fix - By default TDM API application uses rx and tx streams. - However in tx only mode, the select would fail to wakeup. - -- A200 A400 Driver Bug Fix - If A200/A400 card are started with NO FXO/FXS modules - a kernel error is possible on some systems. - -- Update to TDM API sample Makefiles - added -lm library to compilation - -- Updated SMG Drivers - Sangoma SMG 1.7 Chan Woomera 1.6 - - -* Wed Nov 30 2006 Nenad Corbic - 2.3.4-2 -==================================================================== - -- A200 Sanity Check Bug Fix - This is an IMPORTANT update! This bug fix fixes a bug in FXO - sanity checker that on some machine could cause instability. - -- Wanpipemon A200 Voltage Check bug fix. - wanpipemon command was showing over 50V voltage - the sign was not observed. - - - -* Wed Nov 23 2006 Nenad Corbic - 2.3.4-1 -==================================================================== - -- This is the first official STABLE release of 2.3.4 branch. - -- AFT A104d 64bit bug fix - The AFT A104d T1 channel 24 failed to initialize causing DCHAN - not to come up on 64 bit machines. - -- SMG Update - Major optimizations to greatly improve system load and capacity. - Added rx tx gain control from CLI and woomera.conf - Woomera v1.5 SMG v1.6 - -- Driver update for 2.6.18 kernel. - -- Wanpipemon Updates - Updated for A301 drivers. - Minor bug fixes. - -- CHDLC Protocol - Fixed up the ignore keepalive - -- WANCFG - CHDLC Protocol - Bug fix in chdlc configuration. - - -* Thu Nov 02 2006 Nenad Corbic - beta12-2.3.4 -=================================================================== -- Further Analog Bug Fixes. - Fixes the problem where fxo module gets stuck during operation. - - - -* Wed Nov 01 2006 Nenad Corbic - beta11-2.3.4 -=================================================================== -- A102D Hardware Support - Updated drivers for A102D Hardware - Minimum A102D firmware version V.28 - -- Bug fix in Analog A200 driver. - Every once in a while a fxo port would get stuck and fail to - receive any more calls. This has not been fixed. - -- Bug fix in Analog A200 driver. - The lasttxhoot state could get stuck in one state. - If you have weird analog A200 issues, please try this release. - -- New SMG update - -- Setup installation script update - -- New A200 voltage statistics in wanpipemon - -- New wanrouter hwprobe verbose option - Displays all FXO/FXS modules installed on your system - wanrouter hwprobe verbose - - -* Fri Oct 13 2006 Nenad Corbic - beta10-2.3.4 -==================================================================== - -- A200 Bug fix - Analog software echo cancellation has been broken - in beta8-2.3.4 release. This bug has now been fixed. - This bug does not affect A200d cards with HWEC. - -- Setup update - Update in compilation headers that caused wan_ec_client - to fail compilation on some machine. - -* Fri Oct 6 2006 Nenad Corbic - beta9-2.3.4 -- Bug fixes hwec that were introduced in beta8 -- Disabled hw dtmf events. -- This release has been tested in production. - -* Mon Oct 2 2006 Nenad Corbic - beta8-2.3.4 -================================================================= - -- New A108 HWEC Support - Optimized TDM Drivers for A108 - Support for A108 Hardware Echo Cancellation - Support for A108 RefClock between ports. - New Firmware. V27 - -- New A108 HWEC Support - Optimized TDM Drivers for A108 - Support for A108 Hardware Echo Cancellation - Support for A108 RefClock between ports. - New Firmware. V27 - -- LIP / AFT Layer Latency Optimization (LINUX Only) - By setting txqueuelen using ifconfig to value of 1 - the LIP layer will re-configure the protocol and hw layer - for SINGLE tx buffer. This will improve overall latency. - -- AFT (A101/2/4/8) Layer Latency Optimization - The SINGLE_TX_BUF=YES option in [w1g1] interface - section, configures the AFT hardware for single hw dma buffer - instead of a DMA chain. This option along with above - LIP layer latency option reduces driver/protocol latency - to theoretical minimum. - NOTE: In WAN/IP applications latency feature will increase - system load. - (5% to 20% depending on system and number of ports used) - - -* Mon Jul 31 2006 Nenad Corbic - beta7-2.3.4 -================================================================== -- A200 Driver Bug Fix. - The A200 drivers had PULSE dialing enabled - that can cause call outages on NON-PULSE dialing lines. - This has now been fixed. - -- Updates to ./Setup installation script - More documentation in usage. - - - -* Mon Jul 24 2006 Nenad Corbic - beta6-2.3.4 -================================================================== -- Fixed the AFT HWEC on 64bit kernels. - The bug was caused by using 32bit version of - the octasic API release in beta5-2.3.4. - - - -* Fri Jul 21 2006 Nenad Corbic - beta5-2.3.4 -================================================================== -- TDM API was broken on A101/2 Cards - It has not been fixed. - -- A108D Hardware Support - The new A108D: 8 Port T1/E1 with onboard 246 channel - hardware echo canceller. - -- The wanec daemon has been deprecated. - A new wanec kernel module has been created to handle - all octasic commands. - -- The hwec release has been deprecated. - The hwec drivers are now part of wanpipe release. - -- Bug Fix in A104 and A104D Ref Clock - This bug caused FAX failures when REF Clock option was enabled. - -- Updates for 2.6.16 and 2.6.17 kernels - New kernels broke previous wanpipe drivers. - -- Frame Relay Update: EEK Support - New Frame relay stack supports Cisco End to End Keepalives - on each DLCI. - -- PPP Update: Updated PPP IP negotiation. IPCP was not - working properly agains some routers. This has now - been resolved. - -- TDM API: HW DMTF on A104D cards. - The TDM API and regular API interfaces now supports HW DTMF - on A104D and A108D cards. - -- Setup update: the --protocols option with --silent option did not - select proper protocols under certail conditions. - ./Setup install --protocols=TDM --silent - This option will now compile TDM protocol properly. - -- ADSL Update: The ADSL drivers were failing on some machines due - to kfree_skb error under irq. This has now been fixed. - -- AFT A104/A108 Driver updated for 64bit kernels with over 4GB - of memory. The NO AUDIO problem on TDM drivers. - The 4GB memory caused DMA corruptions to occur which caused - no AUDIO effect. - -- SSMG Product: Sangoma Signal Media Gateway - The ssmg product is now part of standard wanpipe. - It will automatically get installed if XMTP2 drivers are - selected. The SMG product provides SS7 Support to Asterisk. - -- LibSangoma: LibSangoma is part of the SSMG product, however - it can be used separately with TDM API to develop custom - TDM applications. Libsangoma is now part of standard wanpipe - release. - -* Fri Mar 04 2006 Nenad Corbic - beta4-2.3.4 -- A108 Hardware Support - Full support for new A108 8 Port T1/E1 Card - -- AFT Front End T1/E1 Alarm Update/Polling - On some embedded machines the A104D cards exhibited - unreliable ports i.e. The port would not come up due to - missing interrupts from the front end chip. - The Front End polling mechanism has been updated to solve this problem. - -- TDM API Update - Fixed a bug in RX/TX functions. - On some machines the kernel to user copy did not work. - -- Updated HWEC and TDMAPI Udev Devices - HWEC UDEV device: /dev/wp1ec (Major: 241) - TDM API UDEV device: /dev/wptdm_s1c1 (Major: 242) - -- Setup Installation Script Update - Compilation of Zaptel during installation - UDEV Zaptel updates - UDEV TDM API updates - -- AFT-LIP Frame Relay DLCI Statistics - Updated Frame Relay DLCI Statistics. - -- AFT-LIP PPP Update - IPCP negotiation failed when connected to some telco. - -* Wed Feb 22 2006 Nenad Corbic - beta3-2.3.4 -- A104D HWEC Update - Bug fix on E1 4th port channel 31 did not work. - -- A104D HWEC 64Bit Fix - The A104D HWEC now works on 64bit machines. - Using UDEV /dev/wp1ec device to access hwec chip. - If no UDEV one must create /dev/wp1ec using: - mknod /dev/wp1ec c 2402 1 - -- AFT Firmware Update Utility - Bug fix. On some systems firmware update failed. - -- TDM API Updates - Support on AFT A101/2 Cards - Fixed shutdown problems while channels are opened. - -* Wed Feb 15 2006 Nenad Corbic - beta2-2.3.4 -- The Beta2-2.3.4 is the first official Beta release of 2.3.4. - The 2.3.4 release has been in ALPHA for months and has gone - through major testing process. - -- A200 Remora Updates - Updates for 24 port A200 solution - New A200 Firmware Release V05 - -- A104D Update/Bug Fix - Echo cancellation DSP had problems on - port 4 of A104D card. - -- New A104/4D TDM API and libsangoma release - The new TDM API replaces the old TDM API. - Currently the TDM API is only supported on A104 and A104D cards. - - The TDM API is compiled by default in wanpipe drivers. - Supports: PRI and RBS functionality. - Sample files: /etc/wanpipe/api/tdm_api - -- Libsangoma Release - New libsangoma source is located in - /etc/wanpipe/api/libsangoma directory. - - For more info and docs please refer to http://sangoma.editme.com - - -* Tue Jan 10 2006 Nenad Corbic - beta1y-2.3.4 -- Driver update for 2.4.30 kernel -- AFT A104 Driver minor update to TDM API - Number of dma packets used in API mode. - To save memory. Not a functional change. - -- Update to Setup install script - -- Wancfg Update - New option to configure wanpipe config file base on zaptel.conf - syntax: "wancfg zaptel" - -* Tue Dec 15 2005 Nenad Corbic - beta1x-2.3.4 -- Major AFT A200 Analog Updates - Analog Hardware Echo Canceler is now supported - Bug fixes on aLaw lines, noise problems. - -- Wancfg Updates - -- Updates to Setup installation utility - -* Mon Dec 5 2005 Nenad Corbic - beta1x-2.3.4 -- WanCfg Update - New wancfg option "zaptel" that will create wanpipe - based on /etc/zaptel.conf configuration. - eg: - 1. Configure your zaptel first based on hardware - 2. Run: wancfg zaptel - To create wanpipe config files based on zaptel.conf - 3. Run: wanrouter start - 4. Run: ztcfg -vvv - 5. Read to start Asterisk - -- Setup Update - Added new options in ./Setup for user to specify custom gcc - compiler. - -- AFT A200 Updates - Further Analog driver updates. - -- AFT Echo Debugging Utility - Used to measure echo spike and debug echo problems. - - -* Wed Nov 23 2005 Nenad Corbic - beta1x-2.3.4 - -- Bug fix in Analog startup - You can now set ACTIVE_CH=ALL and by default all detected - FXO/FXS Devices will be configured. - -- Bug fix in A102 Drivers - When both ports are running, if you stop one - the other one dies. diff --git a/README b/README index 44e9581..e03bb3a 100644 --- a/README +++ b/README @@ -3,7 +3,7 @@ Linux WAN Router Utilities Package ------------------------------------------------------------------------------ Author: Nenad Corbic -Copyright (c) 1995-2007 Sangoma Technologies Inc. +Copyright (c) 1995-2006 Sangoma Technologies Inc. ------------------------------------------------------------------------------ For latest docs please visit Sangoma Wiki diff --git a/README-2.config b/README-2.config index d9e75c1..792a91f 100644 --- a/README-2.config +++ b/README-2.config @@ -5,25 +5,6 @@ For Latest Info please visit http://wiki.sangoma.com -ZAPTEL CONFIGURATION -==================== - -Run: /usr/sbin/wancfg_zaptel - -Proceed to configure each -wanpipe device based on your -telco specifications. - -For more info visit: - -http://wiki.sangoma.com - - - - -WAN CONFIGURATION -================= - Before starting WANPIPE, a configuration file (wanpipeN.conf, where N=1,2,3..etc.)must be created in /etc/wanpipe directory. diff --git a/Setup b/Setup index 78d4330..3337fbe 100755 --- a/Setup +++ b/Setup @@ -9,7 +9,6 @@ # as published by the Free Software Foundation; either version # 2 of the License, or (at your option) any later version. # ---------------------------------------------------------------------------- -# Oct 26, 2007 Konrad Hammel Updated minor start script bug # Nov 27, 2005 David Rokhvarg Added Echo Debugging option # Mar 18, 2002 Nenad Corbic Added BSCSTRM protocol # Mar 01, 2002 Nenad Corbic Added option to split rpm build into @@ -143,14 +142,8 @@ error() pause() { - local force_pause=$1 - - if [ -z $force_pause ]; then - if test $NONINTERACTIVE; then - return 0 - fi - else - shift + if test $NONINTERACTIVE; then + return 0 fi [ $# -ne 0 ] && echo -e $* >&2 @@ -268,7 +261,7 @@ banner() { clearscr echo -e "\t----------------------------------------------------------" - echo -e "\t WANPIPE v$PROD_VER Installation Script" + echo -e "\t WAN Router v$PROD_VER Installation Script" echo -e "\t Copyright (c) 1995-2007, Sangoma Technologies Inc." echo -e "\t----------------------------------------------------------" echo "" @@ -284,34 +277,25 @@ welcome() cat << ENDOFTEXT ${DISTR_NAME} INSTALLATION -You are about to install ${DISTR_NAME} Multi-Protocol -Voice & WAN Router into your system. - -This script will examine your system, then install, create +You are about to install ${DISTR_NAME} Multi-Protocol WAN Router into your +system. This script will examine your system, then install, create and/or modify necessary files and directories. -You must have Linux Kernel Headers along with -full development tools (i.e. GNU C compiler and utilities) +You must have the full Linux source code in $SOURCEDIR +directory and development system (i.e. GNU C compiler and utilities) installed in order to be able to install this product. -This script will automatically compile all WANPIPE kernel -drivers and install them in their appropriate directory. +The automatic ${DISTR_NAME} kernel module compilation option will compile all +necessary ${DISTR_NAME} drivers: thus, no need to re-compile the kernel. -If you are installing Wanpipe for Asterisk/Zaptel this -script will will prompt you to re-install zaptel for you. +Previously patched kernels can now be upgraded to the latest +${DISTR_NAME} release: thus, no need for a fresh kernel install. -If you have previoulsy installed WANPIPE, this release -will overrite/upgrade full release without the need to -uninstall first! - -IMPORTANT: -It is always recommended to say YES to all options -prompted during the install! - -Please visit: http://wiki.sangoma.com for more info. +Please read WanpipeInstallation.(pdf/txt) and +Release Notes before proceeding with the installation. ENDOFTEXT - getyn "Would you like to install WANPIPE now? [y]" + getyn "Would you like to install WAN Router now?" } # ---------------------------------------------------------------------------- @@ -328,7 +312,7 @@ goodbye() cat <" + echo -e "\n\t(Press Enter for Default: $SOURCEDIR)\n" if test -z $NONINTERACTIVE; then read response @@ -1557,7 +1593,6 @@ ENDOFTEXT echo "WAN_LIB_DIR=/etc/wanpipe/lib" >> $META_CONF echo "WAN_ADSL_LIST=/etc/wanpipe/wan_adsl.list" >> $META_CONF echo "WAN_ANNEXG_LOAD=$ANNEXG_LOAD" >> $META_CONF - echo "WAN_SCTP_LOAD=$SCTP_LOAD" >> $META_CONF echo "WAN_LIP_LOAD=$LIP_LOAD" >> $META_CONF echo "WAN_DYN_WANCONFIG=NO" >> $META_CONF echo "WAN_SCRIPTS_DIR=/etc/wanpipe/scripts" >> $META_CONF @@ -1590,9 +1625,6 @@ install_init() else return 0 fi - eval "find $RC_DIR -name 'S*wanrouter' | xargs rm 2> /dev/null" - eval "find $RC_DIR -name 'K*wanrouter' | xargs rm 2> /dev/null" - banner cat << ENDOFTEXT @@ -1639,17 +1671,14 @@ ENDOFTEXT [ -d $RC_DIR/init.d ] && install -D -m 755 $WANROUTER_STARTUP_SMPL $ROOT/$RC_DIR/init.d/$PROD fi + pause if [ "$TDM_PROT" = "YES" ]; then getyn "Would you like to auto-execute ztcfg after wanrouter start?" || return 0 - if [ ! -d $WAN_CONF_DIR/scripts ]; then - eval "\mkdir -p $WAN_CONF_DIR/scripts >/dev/null 2>/dev/null" - fi - eval "\cp -f $PROD_HOME/samples/wanpipe_zaptel_start $WAN_CONF_DIR/scripts/start > /dev/null 2> /dev/null" + cp $PROD_HOME/samples/wanpipe_zaptel_start /etc/wanpipe/scripts/start if [ ! -f $WAN_CONF_DIR/scripts/start ]; then echo "Error: Could not copy auto-ztcfg script" fi fi - pause return 0 } @@ -1660,7 +1689,7 @@ ENDOFTEXT remove() { banner - echo "You are about to uninstall WANPIPE package!" + echo "You are about to wipe out Multiprotocol WAN Router!" getyn "\nAre you sure?" || return 0 # Remove wanpipe modules @@ -1743,9 +1772,6 @@ remove_init() [ -f $RC_DIR/rc1.d/$STOP_SCRIPT ] && rm -f $RC_DIR/rc1.d/$STOP_SCRIPT [ -f $RC_DIR/rc6.d/$STOP_SCRIPT ] && rm -f $RC_DIR/rc6.d/$STOP_SCRIPT [ -f $RC_DIR/init.d/$PROD ] && rm -f $RC_DIR/init.d/$PROD - - eval "find $RC_DIR -name 'S*wanrouter' | xargs rm 2> /dev/null" - eval "find $RC_DIR -name 'K*wanrouter' | xargs rm 2> /dev/null" return 0 } @@ -1788,11 +1814,13 @@ WANPIPE utilities are used to: 1) create WANPIPE configuration files. (/usr/sbin/wancfg) 2) create configuration files for Zaptel and Asterisk - (/usr/sbin/wancfg_zaptel) - 3) start,stop,restart individual/all devices and interfaces. + (/usr/sbin/wancfg-zaptel) + 2) start,stop,restart individual/all devices and interfaces. (/usr/sbin/wanrouter) - 4) debug line, protocol and driver problems. + 3) debug line, protocol and driver problems. (/usr/sbin/wanpipemon) + 4) configure the optional onboard FT1 CSU/DSU (S508/S5143). + (/usr/sbin/cfgft1) 5) aid in WANPIPE API development (/etc/wanpipe/api) @@ -2377,26 +2405,6 @@ function build_wanec_module () } -function sangoma_64bit_4g_check() -{ - eval "uname -a | grep x86_64" > /dev/null 2> /dev/null - if [ $? -ne 0 ] ; then - val=`cat /proc/meminfo | grep MemTotal | cut -d':' -f2` - tmp=${val// /} - b=`expr match "$tmp" '\([0-9]*\)'` - morethan4bg=`expr $b \> 4000000` - if [ $morethan4bg -eq 1 ]; then - #More than 4G of memory - return 0; - else - return 1; - fi - fi - - #not 64bit 4G mode - return 1; -} - function create_kernel_mod_file() { @@ -2487,25 +2495,20 @@ function select_compilation_mode() Please Select Compilation Mode -1. WAN Protocols Support +1. WAN Protocols Support (Default) Protocols: Frame Relay, CHDLC, PPP, ATM, X25, ADSL, TDM API - Default for: Wan Routing, Data & Voice API devel. -2. TDM Voice (Zaptel) Support +2. TDM Voice (Zaptel) Support Only Protocols: TDMV (Zaptel), TDM API on AFT adatpers. - Default for: Asterisk & CallWeaver 3. TDM Voice (Zaptel) + WAN Protocol Support -4. SMG (SS7) (Default for Asterisk SMG/SS7 install) - -5. SMG (SS7) + TDM Voice (Zaptel) - Default for: Asterisk SS7 + PRI +4. SMG (SS7) (Default for SMG install) -6. TDM API - Protocols: TDM API on AFT adapters: - Default for: FreeSwitch, Yate, Sunrise - Custom voice development +5. SMG (SS7) + TDM Voice (Zaptel) + +6. TDM API (FreeSwitch Default) + Protocols: TDM API, Q921 on AFT adapters. 7. Custom Compilation Mode Specify protocols to be added into the WANPIPE @@ -2547,6 +2550,7 @@ if test -z $NONINTERACTIVE; then elif [ "$response" -eq 6 ]; then enable_protocols "AFT_TE1" + enable_protocols "LIPAPI" elif [ "$response" -eq 7 ]; then enable_custom_protocols @@ -2595,32 +2599,22 @@ ENDOFTEXT cat << ENDOFTEXT WANPIPE KERNEL DRIVER COMPILATION -The next step in WANPIPE installation involves compiling -WANPIPE kernel modules. +The next step in WANPIPE installation involves compiling WANPIPE kernel +modules. The setup is able to compile all WANPIPE and API drivers. -This script will compile and install WANPIPE modules -into the currently running linux kernel. - -For greater customization you will be prompted to -select which Protocol/Drivers you would like to -build into the WANPIPE kernel modules. - -Wanpipe for Asterisk/Zaptel - Default for Asterisk/Zaptel -Wanpipe for Wan Routing/API - Default for Wan/IP Routing and Data API -Wanpipe for Asterisk SMG/SS7 - Default for Asterisk SS7 -Wanpipe for TDM API - Default for FreeSwitch and Voice API + Therefore, NO kernel recompilation is necessary :) +Default Compilation: +-------------------- + WANPIPE drivers will include following standard WAN + protocols: Frame Relay, CHDLC, PPP, X25 and ADSL Custom Compilation: ------------------ Customise WANPIPE driver compilation to add only the protocols that you need. This way one can reduce the size of the WANPIPE kernel drivers. -Refer to http://wiki.sangoma.com for more info +Refer to the WapipeIntallation.(pdf/txt) documentation. ENDOFTEXT fi @@ -2639,7 +2633,7 @@ ENDOFTEXT fi echo - getyn "Proceed to build ${DISTR_NAME} kernel modules ? [y]" || return 0; + getyn "Proceed to build ${DISTR_NAME} kernel modules ?" || return 0; if [ ! -d $DRIVER_TMP_DIR ]; then eval "\mkdir -p $DRIVER_TMP_DIR > /dev/null" if [ $? -ne 0 ]; then @@ -2649,6 +2643,7 @@ ENDOFTEXT fi fi + ANNEXG_LOAD=NO check_gcc @@ -2769,15 +2764,14 @@ ENDOFTEXT #Copy the WANPIPE device drivers #into a temporary directory - eval "\cp -f $DRIVER_UPDATE_DIR/src/net/* . >/dev/null 2>/dev/null" - eval "\cp -f $DRIVER_UPDATE_DIR/src/wanrouter/* .>/dev/null 2>/dev/null" + \cp -f $DRIVER_UPDATE_DIR/src/net/* . + \cp -f $DRIVER_UPDATE_DIR/src/wanrouter/* . - - eval "\cp -f $PROD_HOME/kbuild/Makefile . >/dev/null 2>/dev/null" + \cp -f $PROD_HOME/kbuild/Makefile . for file in $DRIVERS_MOD_LIST do - eval "\cp $DRIVER_UPDATE_DIR/src/net/$file . >/dev/null 2>/dev/null" + \cp $DRIVER_UPDATE_DIR/src/net/$file . done update_redhat_as 0 @@ -3084,7 +3078,7 @@ ENDOFTEXT - TDM Voice Hardware Support for Asterisk PBX Software Hardware Support for Asterisk PBX Software over - AFT T1/E1 Cards. + S514 T1/E1 Cards. ENDOFTEXT pause @@ -3107,12 +3101,6 @@ ENDOFTEXT if test -z $NONINTERACTIVE; then - if [ -e $SOURCEDIR/include/config/kernel.release ]; then - KERNEL_VERSION=`cat $SOURCEDIR/include/config/kernel.release` - echo "Source kernel name:$KERNEL_VERSION" - fi - - if [ $KERNEL_VERSION != $KERNEL_UNAME ]; then echo echo -e "WARNING: Module installation dir mismatch!" @@ -3748,10 +3736,8 @@ WANPIPE_OBJS= \cp -f $DRIVER_UPDATE_DIR/src/lip/*.c . \cp -f $DRIVER_UPDATE_DIR/src/lip/bin/*.o . - if [ -e $DRIVER_UPDATE_DIR/src/lip/lip_katm ]; then - \cp -f $DRIVER_UPDATE_DIR/src/lip/lip_katm/*.c . - \cp -f $DRIVER_UPDATE_DIR/src/lip/lip_katm/*.h . - fi + \cp -f $DRIVER_UPDATE_DIR/src/lip/lip_katm/*.c . + \cp -f $DRIVER_UPDATE_DIR/src/lip/lip_katm/*.h . LIP_LINKED_PROTOCOLS= @@ -3859,9 +3845,6 @@ WANPIPE_OBJS= fi if [ $XMTP2_PROT = "YES" ]; then - - SCTP_LOAD=YES - xmtp2_file=wanpipe_xmtp2.gcc$GCC_VER.$ARCH$REGPARM_OPT.o if [ ! -e $xmtp2_file ]; then echo "Warning: FR Binary $xmtp2_file not found!" @@ -4380,39 +4363,34 @@ function install_ssmg () eval "ldconfig" cd $PROD_HOME/$SSMG_DIR + cd sangoma_mgd.trunk -# Let smg install script install SMG components -#======================================================= - -# cd sangoma_mgd.trunk -# -# eval "make clean > /dev/null; make > /dev/null " -# if [ $? -ne 0 ]; then -# echo "FAILED" -# return 1 -# fi -# eval "make install > /dev/null " -# -# echo "Installing Sangoma Media Gateway Daemon...DONE" + eval "make clean > /dev/null; make > /dev/null " + if [ $? -ne 0 ]; then + echo "FAILED" + return 1 + fi + eval "make install > /dev/null " -# eval "type asterisk > /dev/null 2> /dev/null" -# if [ $? -ne 0 ]; then -# echo "Error: Asterisk not installed!" -# echo "Please install Asterisk first then retry SSMG installation!" -# return 1 -# fi + echo "Installing Sangoma Media Gateway Daemon...DONE" + + eval "type asterisk > /dev/null 2> /dev/null" + if [ $? -ne 0 ]; then + echo "Error: Asterisk not installed!" + echo "Please install Asterisk first then retry SSMG installation!" + return 1 + fi -# echo -# echo "Installing Chan Woomera into Asterisk..." -# echo -# install_chan_woomera -# if [ $? -ne 0 ]; then -# echo "Error: Failed to install chan_woomera into Asterisk!" -# echo "Check that Asterisk is installed or Call Sangoma Tech Support" -# echo -# return 1 -# fi -#========================================================= + echo + echo "Installing Chan Woomera into Asterisk..." + echo + install_chan_woomera + if [ $? -ne 0 ]; then + echo "Error: Failed to install chan_woomera into Asterisk!" + echo "Check that Asterisk is installed or Call Sangoma Tech Support" + echo + return 1 + fi cd $PROD_HOME/$SSMG_DIR cd sangoma_mgd.trunk @@ -4826,12 +4804,6 @@ search_and_replace() } function tdmv_get_zaptel_path () { - - if [ $ZAPTEL_PATH_OP != "YES" ]; then - find_zap_dirs - fi - -if [ 0 ]; then if [ $ZAPTEL_PATH_OP != "YES" ]; then echo echo -e "\nPlease specify absolute path to Zaptel source directory" @@ -4861,7 +4833,7 @@ if [ 0 ]; then tdmv_get_zaptel_path fi fi -fi + #zaptel.c renamed to zaptel-base.c in zaptel v1.2.13 and later if [ -e $ZAPTEL_INSTALL_DIR/zaptel-base.c ]; then ZAPTEL_C_FILE="zaptel-base.c"; @@ -4869,6 +4841,57 @@ fi return 0; } +function tdmv_apply_zaptel_dchan_patch () +{ + lhome=`pwd` + + cd $ZAPTEL_INSTALL_DIR + + eval "grep \"DCHAN_TX\" $ZAPTEL_C_FILE > /dev/null 2> /dev/null" + if [ $? -eq 0 ]; then + + eval "grep \"ZT_DCHAN_TX_V2\" $ZAPTEL_C_FILE > /dev/null 2> /dev/null" + if [ $? -eq 0 ]; then + echo " Zaptel DCHAN patch V.02 already installed" + cd $lhome + return 1 + else + echo " ERROR: Old Zaptel DCHAN patch detected in $ZAPTEL_INSTALL_DIR" + echo + echo " Please install a fresh version of Zaptel source and" + echo " run ./Setup again." + echo + cd $lhome + exit 1 + fi + fi + + # patch zaptel.h + eval "search_and_replace zaptel.h zaptel.h \"$ZAPTEL_H_SEARCH_STR\" \"$ZAPTEL_H_PATCH\"" + + if [ $? -ne 0 ]; then + echo "search_and_replace(zaptel.h) failed" + cd $lhome + return 2 + #else + # echo "search_and_replace($ZAPTEL_C_FILE) succeeded" + fi + + # patch $ZAPTEL_C_FILE + eval "search_and_replace $ZAPTEL_C_FILE $ZAPTEL_C_FILE \"$ZAPTEL_C_SEARCH_STR\" \"$ZAPTEL_C_PATCH\"" + + if [ $? -ne 0 ]; then + echo "search_and_replace($ZAPTEL_C_FILE) failed" + cd $lhome + return 2 + else + #echo "search_and_replace($ZAPTEL_C_FILE) succeeded" + cd $lhome + zaptel_modified=1 + return 0 + fi +} + function tdmv_apply_zaptel_dchan_patch_old () { local rc @@ -4978,35 +5001,6 @@ function tdmv_apply_zaptel_chunk_patch () { zaptel_modified=1 fi fi - - eval "cat Makefile |sed 's/^SUBDIR_MODULES:=.*//g'>$TEMP 2>/dev/null " - if [ $? -ne 0 ]; then - echo " Failed to remove wct4xxp from Makefile" - exit 1 - else - eval "\mv -f $TEMP Makefile" - if [ $? -ne 0 ]; then - echo " Failed to overwrite existing Makefile" - exit 1 - else - echo " wct4xxp module removed from Makefile successfully" - zaptel_modified=1 - fi - fi - - if [ -f Makefile.kernel26 ]; then - eval "cat Makefile.kernel26 | sed 's/^obj-m.*+=.*wct4xx.*//g'>$TEMP 2>/dev/null " - if [ $? -ne 0 ]; then - echo " Failed to remove wct4xxp from Makefile.kernel26" - exit 1 - - else - eval "\mv -f $TEMP Makefile.kernel26" - echo " wct4xxp module removed from Makefile.kernel26 successfully" - zaptel_modified=1 - fi - fi - cd $lhome return 0; } @@ -5233,22 +5227,8 @@ function tdmv_compile_zaptel() fi else echo "OK" - if [ -e menuselect/mxml ]; then - cd menuselect/mxml - eval "grep \" $ZAPTEL_MENUSELECT_SEARCH_STR\" Makefile.in > /dev/null 2> /dev/null" - if [ $? -eq 0 ]; then - eval "search_and_replace Makefile.in Makefile.in \"$ZAPTEL_MENUSELECT_SEARCH_STR\" \"$ZAPTEL_MENUSELECT_REMOVE\"" - fi - if [ -e Makefile ]; then - eval "grep \" $ZAPTEL_MENUSELECT_SEARCH_STR\" Makefile > /dev/null 2> /dev/null" - if [ $? -eq 0 ]; then - eval "search_and_replace Makefile Makefile \"$ZAPTEL_MENUSELECT_SEARCH_STR\" \"$ZAPTEL_MENUSELECT_REMOVE\"" - fi - fi - fi fi - cd $ZAPTEL_INSTALL_DIR echo -n " Recompiling/reinstalling Zaptel(make install)..." eval "make >> $PROD_HOME/zaptel_compilation_log 2>> $PROD_HOME/zaptel_compilation_log" if [ ! $? -eq 0 ]; then @@ -5356,153 +5336,6 @@ function tdmv_check_zaptel_udev() echo } -function find_zap_dirs_invalid () -{ - echo - echo "Invalid Response $response" - echo - clear - find_zap_dirs "$1" -} - -function find_zap_dirs () -{ - local cnt - local dir - local zapdir_manual=0 - local zapdirs=$1 - - echo - echo "Looking for zaptel directory in /usr/src ..." - echo "-------------------------------------------" - if [ "$zapdirs" = "" ]; then - zapdirs=`find /usr/src -maxdepth 2 -name 'zaptel*' | xargs ` - fi - - unset zapdir_array; - - if [ -f $PROD_HOME/zaptel/zaptel.path ]; then - zapextradir=`cat $PROD_HOME/zaptel/zaptel.path` - fi - - cnt=1 - for dir in $zapdirs - do - if [ ! -d $dir ]; then - continue - fi - - if [ ! -f $dir/zaptel.h ]; then - continue; - fi - - zapdir_array[$cnt]=$dir; - echo "$cnt : $dir " - - cnt=$((cnt+1)) - done - - if [ $cnt -eq 1 ]; then - echo - echo "No zaptel dirs found in /usr/src " - echo "Please use option \"m\" to enter zaptel path" - echo - fi - echo "------------------------------------------ " - - for dir in $zapextradir - do - if [ ! -d $dir ]; then - continue - fi - - if [ ! -f $dir/zaptel.h ]; then - continue; - fi - - zapdir_array[$cnt]=$dir; - echo "$cnt : $dir (entered manually) " - - cnt=$((cnt+1)) - done - - - echo "------------------------------------------ " - echo "m : Enter zaptel path manually" - echo -# echo "d2: Download Latest 1.2" -# echo "d4: Download Latest 1.4" - echo "(ctrl-c to Exit)" - echo -n "Please select working zaptel directory [1-9][m]: " - - response=1 - - if [ -z $NONINTERACTIVE ] || [ $zaptel_auto_install = "YES" ]; then - read response - fi - - if [ "$response" = "" ]; then - find_zap_dirs_invalid "$zapdirs" - elif [ $response = "m" ]; then - echo - echo "Please enter zaptel dir: [Default: $ZAPTEL_DFLT_INSTALL_DIR]" - echo -n "#> " - read response - - if [ "$response" = "" ]; then - ZAPTEL_INSTALL_DIR=$ZAPTEL_DFLT_INSTALL_DIR - else - ZAPTEL_INSTALL_DIR=$response - fi - - zapdir_manual=1 - -# elif [ $response = "q" ]; then -# find_zap_dir_quit=1 -# return 1; - - elif [ $response -gt 0 ] && [ $response -lt $cnt ]; then - ZAPTEL_INSTALL_DIR=${zapdir_array[$response]} - else - find_zap_dirs_invalid "$zapdirs" - fi - - if [ ! -f $ZAPTEL_INSTALL_DIR/zaptel.h ]; then - echo - echo "Error: zaptel.h not found in $ZAPTEL_INSTALL_DIR" - echo - echo - zapdir_manual=0 - pause 1 - clear - find_zap_dirs "$zapdirs" - fi - - if [ $find_zap_dir_quit -eq 1 ] ; then - ZAPTEL_INSTALL_DIR=$ZAPTEL_DFLT_INSTALL_DIR - return 1 - fi - - if [ $zapdir_manual -eq 1 ]; then - eval "grep \"$ZAPTEL_INSTALL_DIR\" $PROD_HOME/zaptel/zaptel.path 2> /dev/null > /dev/null " - if [ $? -ne 0 ]; then - echo "$ZAPTEL_INSTALL_DIR" >> $PROD_HOME/zaptel/zaptel.path - fi - fi - - #echo "GO AUTOMATIC ZAPDIR= $ZAPTEL_INSTALL_DIR" - - ZAPTEL_PATH_OP="YES"; - - #zaptel.c renamed to zaptel-base.c in zaptel v1.2.13 and later - if [ -e $ZAPTEL_INSTALL_DIR/zaptel-base.c ]; then - ZAPTEL_C_FILE="zaptel-base.c"; - fi - - return 0; - -} - function tdmv_get_asterisk_source_path () { echo @@ -5836,7 +5669,7 @@ ENDOFTEXT echo " This is illegal, and CAN cause Wanpipe to CRASH." echo echo " Please solve this PROBLEM by removing OLD ZAPTEL" - echo " kerenl modules before installing WANPIPE. " + echo " drivers before installing WANPIPE. " echo echo " eg: rm -rf $ZAP_MOD_DIR/zaptel" echo " depmod -a" @@ -5846,58 +5679,46 @@ ENDOFTEXT TDM_PROT=NO TDM_DCHAN= - echo + getyn "Please Select (y/n) to EXIT Wanpipe Installation..." exit 1 else - echo + - if [ $TDM_PROT != YES ]; then - echo "Enabling the TDM Voice Asterisk Support" - PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_TDM_VOICE " - ASTERISK_IFLAGS="-I$ZAPTEL_INSTALL_DIR" - WANCFG_ZAPTEL_CFG=YES - fi + if [ $TDM_PROT != YES ]; then + echo "Enabling the TDM Voice Asterisk Support" + PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_TDM_VOICE " + ASTERISK_IFLAGS="-I$ZAPTEL_INSTALL_DIR" + WANCFG_ZAPTEL_CFG=YES + + fi + if [ "$TDM_DCHAN" = "" ]; then + echo + echo + getyn "Enable TDMV DCHAN Native HDLC Support & Patch Zaptel ?" + if [ $? -eq 0 ]; then - eval "grep ZT_DCHAN_TX_V2 $ZAPTEL_INSTALL_DIR/* 2> /dev/null > /dev/null" - if [ $? -eq 0 ]; then - TDM_DCHAN="(DCHAN)" - PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_TDM_VOICE_DCHAN" - echo "Sangoma DCHAN Patch detected in zaptel" - fi - - - if [ "$TDM_DCHAN" = "" ]; then - echo + PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_TDM_VOICE_DCHAN" echo - getyn "Enable TDMV DCHAN Native HDLC Support & Patch Zaptel (recommended) ?" + tdmv_apply_zaptel_dchan_patch if [ $? -eq 0 ]; then - - PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_TDM_VOICE_DCHAN" - echo - eval "$PROD_HOME/patches/sangoma-zaptel-patch.sh $ZAPTEL_INSTALL_DIR" - result=$? - if [ $result -eq 0 ]; then - TDM_DCHAN="(DCHAN)" - echo " Zaptel DCHAN Patch successful" - echo - elif [ $result -eq 1 ]; then - TDM_DCHAN="(DCHAN)" - echo - else - echo "Zaptel Update Failed!" - echo - echo "Your zaptel source is now corrupted" - echo "Please untar new zaptel source in $ZAPTEL_INSTALL_DIR." - echo - echo "Please contact Sangoma support!" - echo - TDM_DCHAN= - - exit 1 - fi - fi + TDM_DCHAN="(DCHAN)" + echo " Zaptel DCHAN Patch successful" + # getyn "Confirm Zaptel Patching: yes/no to continue!" + echo + elif [ $? -eq 1 ]; then + TDM_DCHAN="(DCHAN)" + echo + else + echo "Zaptel Update Failed!" + echo + echo "Please contact Sangoma support!" + echo + exit 1 + TDM_DCHAN= + fi + fi fi if [ $ZAP_CHUNK_OP == "YES" ] ; then tdmv_apply_zaptel_chunk_patch @@ -5962,8 +5783,7 @@ ENDOFTEXT TDM_PROT=YES zaptel_modified=1; if [ $zaptel_modified ] && [ $zaptel_modified -eq 1 ] && [ "$ZAPTEL_COMPILE_DISABLE" = "NO" ]; then - echo - getyn "Recompile/reinstall Zaptel (recommended) ?" + getyn "Recompile/reinstall zaptel (recommended) ?" if [ $? -eq 0 ]; then tdmv_compile_zaptel else @@ -6297,19 +6117,19 @@ KERNEL_UNAME=`uname -r` PKG_NAME=wanpipe DISTR_NAME="WANPIPE" PROD=wanrouter -PROD_VER=2.3.4-16 +PROD_VER=3.1.0 PROD_HOME=`pwd` -WAN_CONF_DIR=/etc/wanpipe -META_CONF=$WAN_CONF_DIR/$PROD.rc +META_CONF=$PROD_HOME/$PROD.rc WAN_INTR_DIR=$PROD_HOME/interfaces +WAN_CONF_DIR=$PROD_HOME PROD_CONF=$WAN_CONF_DIR/wanpipe1.conf PROD_PATCH=$PROD_HOME/patches PROD_INIT=/usr/sbin/ FILELIST=$PROD_HOME/Filelist SOURCEDIR=/lib/modules/$(uname -r)/build -START_SCRIPT=S11$PROD +START_SCRIPT=S03$PROD OLD_START=S05router -STOP_SCRIPT=K70$PROD +STOP_SCRIPT=K10$PROD OLD_STOP=K10router INCLUDE=$SOURCEDIR/include/linux ROUTER_RC=$META_CONF @@ -6336,9 +6156,6 @@ SSMG_DIR=ssmg WANPIPE_INCLUDE_DIR=/usr/include/wanpipe WANCFG_ZAPTEL_CFG=NO WANCFG_ZAPTEL=/usr/sbin/wancfg_zaptel -find_zap_dir_quit=0 -zaptel_auto_install="NO" - echo > $CMP_LOG echo "WANPIPE DRIVER COMPILE LOG" >> $CMP_LOG @@ -6379,10 +6196,8 @@ PROTOCOL_DEFINES="-DCONFIG_PRODUCT_WANPIPE_BASE " SS7_USER_ID="0" ANNEXG_LOAD=NO -SCTP_LOAD=NO -ZAPTEL_DFLT_INSTALL_DIR="/usr/src/zaptel" -ZAPTEL_INSTALL_DIR=$ZAPTEL_DFLT_INSTALL_DIR +ZAPTEL_INSTALL_DIR="/usr/src/zaptel" ZAPTEL_C_FILE="zaptel.c" ASTERISK_IFLAGS= EDAC_ZAP_PATCH_FILE=ed_zaptel.patch @@ -6400,17 +6215,6 @@ ZAPTEL_C_PATCH="if ((chan->flags \& ZT_FLAG_HDLC) \&\& chan->span->ioctl != NULL }\n\ }\n\ chan->writen[chan->inwritebuf] = amnt;" -# D channel patching for zaptel version 1.2.17.1/1.4.2.1 or above -ZAPTEL_C_SEARCH_STR_NEW="chan->writen\[res\] = amnt;" -ZAPTEL_C_PATCH_NEW="if ((chan->flags \& ZT_FLAG_HDLC) \&\& chan->span->ioctl != NULL){\n\ - if (chan->span->ioctl(chan, ZT_DCHAN_TX_V2, amnt)==0){\n\ - return amnt;\n\ - }\n\ - }\n\ - chan->writen[res] = amnt;" -# Zaptel 1.4.2.1 "Menuselect" issue -ZAPTEL_MENUSELECT_SEARCH_STR="autoconf" -ZAPTEL_MENUSELECT_REMOVE=" " #NOTE1: the 'sed' command does NOT work on more than one line, so the #closing '*/' will be pushed AFTER the inserted strings. @@ -6545,33 +6349,21 @@ if [ "$setup_cmd" = "uninstall" ] || [ "$setup_cmd" = "remove" ]; then exit; fi -if [ "$setup_cmd" = "zaptel" ]; then - setup_cmd="install" - zaptel_auto_install="YES" - #EXTRA_ARGS=" --protocol=TDM --silent --no-zaptel-compile " - EXTRA_ARGS=" --protocol=TDM --silent " -fi - -if [ "$setup_cmd" = "buildrpm" ]; then - EXTRA_ARGS=" --no-zaptel-compile " -fi - if [ "$PKG_NAME" != "wanpipe-lite" ]; then - ARGS=$EXTRA_ARGS + ARGS= while [ ! -z "$2" ]; do - ARGS_tmp=$ARGS"$2 " - ARGS=$ARGS_tmp + ARGS=$ARGS"$2 " shift done - #echo "ARGS: $ARGS" + echo "ARGS: $ARGS" for arg in $ARGS do - #echo - #echo "ARG VAL=$arg" + echo + echo "ARG VAL=$arg" case $arg in @@ -6584,7 +6376,6 @@ if [ "$PKG_NAME" != "wanpipe-lite" ]; then --no-gcc-debug*) DISABLE_GCC_DEBUG=1; ;; - --usr-cc*) USR_CC=`echo $arg | cut -d'=' -f2`; eval "type $USR_CC"; @@ -6615,19 +6406,6 @@ if [ "$PKG_NAME" != "wanpipe-lite" ]; then --noautostart*) NO_AUTO_START=1 ;; - - --ignore-t1-yellow*) - PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DWANPIPE_IGNORE_T1_YELLOW " - ;; - - --64bit_4G*) - PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DWANPIPE_64BIT_4G_DMA " - ;; - - --hwec_noise_reduction*) - PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DWANEC_ENABLE_NOISE_REDUCTION " - ;; - --with-linux*) SOURCEDIR=`echo $arg | cut -d'=' -f2`; if [ "$SOURCEDIR" = "" ]; then @@ -6760,10 +6538,10 @@ if [ "$PKG_NAME" != "wanpipe-lite" ]; then --gz-modules) GZ_MODULES="YES"; ;; - --zap-chunk*) +--zap-chunk*) ZAP_CHUNK=`echo $arg | cut -d'=' -f2`; - if [ $ZAP_CHUNK != "8" ] && [ $ZAP_CHUNK != "16" ] && [ $ZAP_CHUNK != "40" ] && [ $ZAP_CHUNK != "80" ]; then + if [ $ZAP_CHUNK != "16" ] && [ $ZAP_CHUNK != "40" ] && [ $ZAP_CHUNK != "80" ]; then echo "Error: Invalid Zaptel Chunk size" exit 1; else @@ -6784,10 +6562,6 @@ if [ "$PKG_NAME" != "wanpipe-lite" ]; then esac done - if [ "$zaptel_auto_install" = "YES" ] && [ "$ZAPTEL_PATH_OP" != "YES" ]; then - find_zap_dirs - fi - if [ "$PROTS" != "" ]; then echo "$PROTS" | grep "DEF" > /dev/null if [ $? -eq 0 ]; then @@ -6816,7 +6590,6 @@ if [ "$PKG_NAME" != "wanpipe-lite" ]; then fi fi - if [ "$setup_cmd" = "drivers" ]; then apply_patches || exit 1 compile_drivers || exit 1 @@ -6894,13 +6667,9 @@ following Environment variables. 5. Wan Protocols : $PROTS 6. Build Directory : $PROD_HOME/$build_dir + " - if [ $TDM_PROT = "YES" ]; then -echo " 7. Zaptel Build Dir : $ZAPTEL_INSTALL_DIR " - fi - echo - echo if [ $KERNEL_UNAME != $KERNEL_VERSION ]; then echo " @@ -7101,8 +6870,8 @@ welcome || exit 0 prepare || exit 1 apply_patches || exit 1 compile_drivers || exit 1 -install_config || exit 1 install_init || exit 1 +install_config || exit 1 compile_src || exit 1 install_all install_ssmg diff --git a/api/Makefile b/api/Makefile index ffa81ee..84cf1c5 100644 --- a/api/Makefile +++ b/api/Makefile @@ -6,7 +6,7 @@ SYSINC=$(shell if [ -f ../.sysinclude ]; then cat ../.sysinclude; else echo ""; fi) ifeq "$(SYSINC)" "" -SYSINC=/usr/src/linux/include +SYSINC=/lib/modules/$(shell uname -r)/build/include endif APIINC=/etc/wanpipe/api/include diff --git a/api/aft/aft_api.c b/api/aft/aft_api.c index 427a33c..84b1e24 100644 --- a/api/aft/aft_api.c +++ b/api/aft/aft_api.c @@ -414,8 +414,8 @@ void handle_socket(void) ++Rx_count; - printf("RECEIVE:\n"); - print_packet(&Rx_data[16],Rx_lgth); + //printf("RECEIVE:\n"); + //print_packet(&Rx_data[16],Rx_lgth); if (verbose){ @@ -443,8 +443,8 @@ bitstrm_skip_read: if (Tx_count == 0){ - printf("SEND: Len=%i\n",Tx_length); - print_packet(&Tx_data[16],Tx_length); + //printf("SEND: Len=%i\n",Tx_length); + //print_packet(&Tx_data[16],Tx_length); } #if 1 diff --git a/api/chdlc/chdlc_echo b/api/chdlc/chdlc_echo index 5885ea9..ae8a764 100755 Binary files a/api/chdlc/chdlc_echo and b/api/chdlc/chdlc_echo differ diff --git a/api/lib/hdlc/wanpipe_hdlc.o b/api/lib/hdlc/wanpipe_hdlc.o new file mode 100644 index 0000000..8f68a93 Binary files /dev/null and b/api/lib/hdlc/wanpipe_hdlc.o differ diff --git a/api/libsangoma/.deps/libsangoma_la-libsangoma.Plo b/api/libsangoma/.deps/libsangoma_la-libsangoma.Plo index 5191063..d78a3e7 100644 --- a/api/libsangoma/.deps/libsangoma_la-libsangoma.Plo +++ b/api/libsangoma/.deps/libsangoma_la-libsangoma.Plo @@ -1,12 +1,12 @@ libsangoma_la-libsangoma.lo libsangoma_la-libsangoma.o: libsangoma.c \ libsangoma.h /usr/include/stdio.h /usr/include/features.h \ - /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \ - /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h \ - /usr/lib/gcc/i386-redhat-linux/4.1.1/include/stddef.h \ - /usr/include/bits/types.h /usr/include/bits/typesizes.h \ - /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \ - /usr/include/bits/wchar.h /usr/include/gconv.h \ - /usr/lib/gcc/i386-redhat-linux/4.1.1/include/stdarg.h \ + /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h \ + /usr/lib/gcc/i386-redhat-linux/3.4.3/include/stddef.h \ + /usr/include/bits/types.h /usr/include/bits/wordsize.h \ + /usr/include/bits/typesizes.h /usr/include/libio.h \ + /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \ + /usr/include/gconv.h \ + /usr/lib/gcc/i386-redhat-linux/3.4.3/include/stdarg.h \ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \ /usr/include/bits/stdio.h /usr/include/stdlib.h \ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \ @@ -14,32 +14,31 @@ libsangoma_la-libsangoma.lo libsangoma_la-libsangoma.o: libsangoma.c \ /usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h \ /usr/include/bits/select.h /usr/include/bits/sigset.h \ /usr/include/bits/time.h /usr/include/sys/sysmacros.h \ - /usr/include/bits/pthreadtypes.h /usr/include/alloca.h \ - /usr/include/ctype.h /usr/include/unistd.h \ + /usr/include/bits/pthreadtypes.h /usr/include/bits/sched.h \ + /usr/include/alloca.h /usr/include/ctype.h /usr/include/unistd.h \ /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \ /usr/include/bits/confname.h /usr/include/getopt.h \ /usr/include/sys/time.h /usr/include/sys/socket.h \ /usr/include/sys/uio.h /usr/include/bits/uio.h \ /usr/include/bits/socket.h \ - /usr/lib/gcc/i386-redhat-linux/4.1.1/include/limits.h \ - /usr/lib/gcc/i386-redhat-linux/4.1.1/include/syslimits.h \ + /usr/lib/gcc/i386-redhat-linux/3.4.3/include/limits.h \ + /usr/lib/gcc/i386-redhat-linux/3.4.3/include/syslimits.h \ /usr/include/limits.h /usr/include/bits/posix1_lim.h \ /usr/include/bits/local_lim.h \ - /lib/modules/2.6.18-8.el5/build/include/linux/limits.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/limits.h \ /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \ /usr/include/bits/sockaddr.h \ - /lib/modules/2.6.18-8.el5/build/include/asm/socket.h \ - /lib/modules/2.6.18-8.el5/build/include/asm/sockios.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/asm/socket.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/asm/sockios.h \ /usr/include/sys/ioctl.h /usr/include/bits/ioctls.h \ - /lib/modules/2.6.18-8.el5/build/include/asm/ioctls.h \ - /lib/modules/2.6.18-8.el5/build/include/asm/ioctl.h \ - /lib/modules/2.6.18-8.el5/build/include/asm-generic/ioctl.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/asm/ioctls.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/asm/ioctl.h \ /usr/include/bits/ioctl-types.h /usr/include/sys/ttydefaults.h \ /usr/include/sys/signal.h /usr/include/signal.h \ /usr/include/bits/signum.h /usr/include/bits/siginfo.h \ /usr/include/bits/sigaction.h /usr/include/bits/sigcontext.h \ - /lib/modules/2.6.18-8.el5/build/include/asm/sigcontext.h \ - /lib/modules/2.6.18-8.el5/build/include/linux/compiler.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/asm/sigcontext.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/compiler.h \ /usr/include/bits/sigstack.h /usr/include/sys/ucontext.h \ /usr/include/bits/sigthread.h /usr/include/sys/wait.h \ /usr/include/sys/resource.h /usr/include/bits/resource.h \ @@ -47,42 +46,42 @@ libsangoma_la-libsangoma.lo libsangoma_la-libsangoma.o: libsangoma.c \ /usr/include/bits/byteswap.h /usr/include/string.h \ /usr/include/bits/string.h /usr/include/bits/string2.h \ /usr/include/errno.h /usr/include/bits/errno.h \ - /lib/modules/2.6.18-8.el5/build/include/linux/errno.h \ - /lib/modules/2.6.18-8.el5/build/include/asm/errno.h \ - /lib/modules/2.6.18-8.el5/build/include/asm-generic/errno.h \ - /lib/modules/2.6.18-8.el5/build/include/asm-generic/errno-base.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/errno.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/asm/errno.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/asm-generic/errno.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/asm-generic/errno-base.h \ /usr/include/fcntl.h /usr/include/bits/fcntl.h /usr/include/sys/stat.h \ /usr/include/bits/stat.h \ - /lib/modules/2.6.18-8.el5/build/include/linux/if.h \ - /lib/modules/2.6.18-8.el5/build/include/linux/types.h \ - /lib/modules/2.6.18-8.el5/build/include/linux/posix_types.h \ - /lib/modules/2.6.18-8.el5/build/include/linux/stddef.h \ - /lib/modules/2.6.18-8.el5/build/include/asm/posix_types.h \ - /lib/modules/2.6.18-8.el5/build/include/asm/types.h \ - /lib/modules/2.6.18-8.el5/build/include/linux/socket.h \ - /lib/modules/2.6.18-8.el5/build/include/linux/hdlc/ioctl.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/if.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/types.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/posix_types.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/stddef.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/asm/posix_types.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/asm/types.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/socket.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/hdlc/ioctl.h \ /usr/include/poll.h /usr/include/sys/poll.h /usr/include/bits/poll.h \ - ../../patches/kdrivers/include/linux/wanpipe_defines.h \ - ../../patches/kdrivers/include/linux/wanpipe_version.h \ - ../../patches/kdrivers/include/linux/wanpipe_kernel.h \ - /lib/modules/2.6.18-8.el5/build/include/linux/version.h \ - ../../patches/kdrivers/include/linux/wanpipe_cfg.h \ - ../../patches/kdrivers/include/linux/sdla_56k.h \ - ../../patches/kdrivers/include/linux/sdla_te1.h \ - ../../patches/kdrivers/include/linux/sdla_te3.h \ - ../../patches/kdrivers/include/linux/sdla_remora.h \ - ../../patches/kdrivers/include/linux/sdla_remora_proslic.h \ - ../../patches/kdrivers/include/linux/sdla_front_end.h \ - ../../patches/kdrivers/include/linux/wanpipe.h \ - ../../patches/kdrivers/include/linux/wanpipe_debug.h \ - ../../patches/kdrivers/include/linux/wanpipe_common.h \ - ../../patches/kdrivers/include/linux/wanpipe_events.h \ - ../../patches/kdrivers/include/linux/wanrouter.h \ - ../../patches/kdrivers/include/linux/wanpipe_tdm_api.h \ - ../../patches/kdrivers/include/linux/wanpipe_includes.h \ - ../../patches/kdrivers/include/linux/if_wanpipe.h \ - /lib/modules/2.6.18-8.el5/build/include/linux/sockios.h \ - ../../patches/kdrivers/include/linux/wanpipe_codec_iface.h + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/wanpipe_defines.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/wanpipe_version.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/wanpipe_kernel.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/version.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/wanpipe_cfg.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/sdla_56k.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/sdla_te1.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/sdla_te3.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/sdla_remora.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/sdla_remora_proslic.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/sdla_front_end.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/wanpipe.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/wanpipe_debug.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/wanpipe_common.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/wanpipe_events.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/wanrouter.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/wanpipe_tdm_api.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/wanpipe_includes.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/if_wanpipe.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/sockios.h \ + /lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/wanpipe_codec_iface.h libsangoma.h: @@ -92,16 +91,14 @@ libsangoma.h: /usr/include/sys/cdefs.h: -/usr/include/bits/wordsize.h: - /usr/include/gnu/stubs.h: -/usr/include/gnu/stubs-32.h: - -/usr/lib/gcc/i386-redhat-linux/4.1.1/include/stddef.h: +/usr/lib/gcc/i386-redhat-linux/3.4.3/include/stddef.h: /usr/include/bits/types.h: +/usr/include/bits/wordsize.h: + /usr/include/bits/typesizes.h: /usr/include/libio.h: @@ -114,7 +111,7 @@ libsangoma.h: /usr/include/gconv.h: -/usr/lib/gcc/i386-redhat-linux/4.1.1/include/stdarg.h: +/usr/lib/gcc/i386-redhat-linux/3.4.3/include/stdarg.h: /usr/include/bits/stdio_lim.h: @@ -150,6 +147,8 @@ libsangoma.h: /usr/include/bits/pthreadtypes.h: +/usr/include/bits/sched.h: + /usr/include/alloca.h: /usr/include/ctype.h: @@ -174,9 +173,9 @@ libsangoma.h: /usr/include/bits/socket.h: -/usr/lib/gcc/i386-redhat-linux/4.1.1/include/limits.h: +/usr/lib/gcc/i386-redhat-linux/3.4.3/include/limits.h: -/usr/lib/gcc/i386-redhat-linux/4.1.1/include/syslimits.h: +/usr/lib/gcc/i386-redhat-linux/3.4.3/include/syslimits.h: /usr/include/limits.h: @@ -184,7 +183,7 @@ libsangoma.h: /usr/include/bits/local_lim.h: -/lib/modules/2.6.18-8.el5/build/include/linux/limits.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/limits.h: /usr/include/bits/posix2_lim.h: @@ -192,19 +191,17 @@ libsangoma.h: /usr/include/bits/sockaddr.h: -/lib/modules/2.6.18-8.el5/build/include/asm/socket.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/asm/socket.h: -/lib/modules/2.6.18-8.el5/build/include/asm/sockios.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/asm/sockios.h: /usr/include/sys/ioctl.h: /usr/include/bits/ioctls.h: -/lib/modules/2.6.18-8.el5/build/include/asm/ioctls.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/asm/ioctls.h: -/lib/modules/2.6.18-8.el5/build/include/asm/ioctl.h: - -/lib/modules/2.6.18-8.el5/build/include/asm-generic/ioctl.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/asm/ioctl.h: /usr/include/bits/ioctl-types.h: @@ -222,9 +219,9 @@ libsangoma.h: /usr/include/bits/sigcontext.h: -/lib/modules/2.6.18-8.el5/build/include/asm/sigcontext.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/asm/sigcontext.h: -/lib/modules/2.6.18-8.el5/build/include/linux/compiler.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/compiler.h: /usr/include/bits/sigstack.h: @@ -256,13 +253,13 @@ libsangoma.h: /usr/include/bits/errno.h: -/lib/modules/2.6.18-8.el5/build/include/linux/errno.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/errno.h: -/lib/modules/2.6.18-8.el5/build/include/asm/errno.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/asm/errno.h: -/lib/modules/2.6.18-8.el5/build/include/asm-generic/errno.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/asm-generic/errno.h: -/lib/modules/2.6.18-8.el5/build/include/asm-generic/errno-base.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/asm-generic/errno-base.h: /usr/include/fcntl.h: @@ -272,21 +269,21 @@ libsangoma.h: /usr/include/bits/stat.h: -/lib/modules/2.6.18-8.el5/build/include/linux/if.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/if.h: -/lib/modules/2.6.18-8.el5/build/include/linux/types.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/types.h: -/lib/modules/2.6.18-8.el5/build/include/linux/posix_types.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/posix_types.h: -/lib/modules/2.6.18-8.el5/build/include/linux/stddef.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/stddef.h: -/lib/modules/2.6.18-8.el5/build/include/asm/posix_types.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/asm/posix_types.h: -/lib/modules/2.6.18-8.el5/build/include/asm/types.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/asm/types.h: -/lib/modules/2.6.18-8.el5/build/include/linux/socket.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/socket.h: -/lib/modules/2.6.18-8.el5/build/include/linux/hdlc/ioctl.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/hdlc/ioctl.h: /usr/include/poll.h: @@ -294,44 +291,44 @@ libsangoma.h: /usr/include/bits/poll.h: -../../patches/kdrivers/include/linux/wanpipe_defines.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/wanpipe_defines.h: -../../patches/kdrivers/include/linux/wanpipe_version.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/wanpipe_version.h: -../../patches/kdrivers/include/linux/wanpipe_kernel.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/wanpipe_kernel.h: -/lib/modules/2.6.18-8.el5/build/include/linux/version.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/version.h: -../../patches/kdrivers/include/linux/wanpipe_cfg.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/wanpipe_cfg.h: -../../patches/kdrivers/include/linux/sdla_56k.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/sdla_56k.h: -../../patches/kdrivers/include/linux/sdla_te1.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/sdla_te1.h: -../../patches/kdrivers/include/linux/sdla_te3.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/sdla_te3.h: -../../patches/kdrivers/include/linux/sdla_remora.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/sdla_remora.h: -../../patches/kdrivers/include/linux/sdla_remora_proslic.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/sdla_remora_proslic.h: -../../patches/kdrivers/include/linux/sdla_front_end.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/sdla_front_end.h: -../../patches/kdrivers/include/linux/wanpipe.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/wanpipe.h: -../../patches/kdrivers/include/linux/wanpipe_debug.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/wanpipe_debug.h: -../../patches/kdrivers/include/linux/wanpipe_common.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/wanpipe_common.h: -../../patches/kdrivers/include/linux/wanpipe_events.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/wanpipe_events.h: -../../patches/kdrivers/include/linux/wanrouter.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/wanrouter.h: -../../patches/kdrivers/include/linux/wanpipe_tdm_api.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/wanpipe_tdm_api.h: -../../patches/kdrivers/include/linux/wanpipe_includes.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/wanpipe_includes.h: -../../patches/kdrivers/include/linux/if_wanpipe.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/if_wanpipe.h: -/lib/modules/2.6.18-8.el5/build/include/linux/sockios.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/sockios.h: -../../patches/kdrivers/include/linux/wanpipe_codec_iface.h: +/lib/modules/2.6.9-5.0.3.ELsmp/build/include/linux/wanpipe_codec_iface.h: diff --git a/api/libsangoma/.svn/README.txt b/api/libsangoma/.svn/README.txt new file mode 100644 index 0000000..271a8ce --- /dev/null +++ b/api/libsangoma/.svn/README.txt @@ -0,0 +1,2 @@ +This is a Subversion working copy administrative directory. +Visit http://subversion.tigris.org/ for more information. diff --git a/patches/i_private_found b/api/libsangoma/.svn/empty-file similarity index 100% rename from patches/i_private_found rename to api/libsangoma/.svn/empty-file diff --git a/api/libsangoma/.svn/entries b/api/libsangoma/.svn/entries index 58b2343..0d3095f 100644 --- a/api/libsangoma/.svn/entries +++ b/api/libsangoma/.svn/entries @@ -1,398 +1,291 @@ -8 - -dir -229 -svn://sangoma.freeswitch.org/libsangoma/trunk -svn://sangoma.freeswitch.org - - - -2007-06-19T00:41:32.721946Z -213 -ncorbic - - -svn:special svn:externals svn:needs-lock - - - - - - - - - - - -2028fedf-720c-0410-83b8-d54a3e729fb0 - -configure -file - - - - -2007-05-17T22:58:57.000000Z -cdcb22cae8ad2d0de88542d1adf5b13d -2007-02-07T19:00:12.109961Z -166 -ncorbic -has-props - -Makefile.in -file - - - - -2007-07-24T22:46:01.000000Z -1c05e844314274f082a74abf3f446239 -2007-05-29T18:03:36.038276Z -206 -ncorbic - -AUTHORS -file - - - - -2007-03-21T22:07:06.000000Z -d41d8cd98f00b204e9800998ecf8427e -2006-02-10T16:20:41.709688Z -1 -anthm - -depcomp -file - - - - -2007-03-21T22:07:06.000000Z -e181e2c8720c60522c4c4c981108e367 -2006-02-10T16:20:41.709688Z -1 -anthm -has-props - -compile -file - - - - -2007-03-21T22:07:06.000000Z -a7ecc032b527a0d578545f19d3418073 -2006-02-10T16:20:41.709688Z -1 -anthm -has-props - -config.guess -file - - - - -2007-03-21T22:07:06.000000Z -9ae396244b8f138c76514a6b7531e696 -2006-02-10T16:20:41.709688Z -1 -anthm -has-props - -libsangoma.c -file -230 - - - -2007-07-24T22:46:01.000000Z -b2927c29e1ea8b95bb3f50a8f0d98e35 -2007-07-24T22:47:39.060265Z -230 -ncorbic - -ltmain.sh -file - - - - -2007-03-21T22:07:06.000000Z -c8215e3aa0858d700783015614f53b79 -2006-02-10T16:20:41.709688Z -1 -anthm - -config.sub -file - - - - -2007-03-21T22:07:06.000000Z -3d36962d51070d30b7554203b0d7c01c -2006-02-10T16:20:41.709688Z -1 -anthm -has-props - -libsangoma.dsp -file - - - - -2007-05-17T22:12:40.000000Z -f934aab66c529599725686f321d182e6 -2006-12-04T20:48:10.874618Z -156 -anthm - -libsangoma.h -file -230 - - - -2007-07-24T22:46:38.000000Z -19c2545ffa4e1a11f2a1b5f4850a10bd -2007-07-24T22:47:39.060265Z -230 -ncorbic - -g711.h -file - - - - -2007-03-21T22:07:06.000000Z -0f725f95ced42af15dcaef21f3a1722b -2006-11-06T23:11:15.401413Z -119 -ncorbic - -INSTALL -file - - - - -2007-03-21T22:07:06.000000Z -40539bd3eff06e4b82f380103145415b -2006-08-08T19:52:23.727343Z -94 -ncorbic - -libsangoma.dsw -file - - - - -2007-05-17T22:12:47.000000Z -f13496d2105bae2add104c36a1d656f6 -2006-12-04T20:48:10.874618Z -156 -anthm - -COPYING -file - - - - -2007-03-21T22:07:06.000000Z -d41d8cd98f00b204e9800998ecf8427e -2006-02-10T16:20:41.709688Z -1 -anthm - -NEWS -file - - - - -2007-03-21T22:07:06.000000Z -d41d8cd98f00b204e9800998ecf8427e -2006-02-10T16:20:41.709688Z -1 -anthm - -sangoma_pri.c -file - - - - -2007-05-17T22:11:22.000000Z -e2a6c68fadfefb2d2b16c52534e85675 -2006-12-04T20:47:20.283144Z -155 -anthm - -libsangoma.so.conf -file - - - - -2007-03-21T22:07:06.000000Z -bcdcb23c5d5fb460cee2ce315ef7bd32 -2006-10-19T19:27:09.335085Z -101 -ncorbic - -win_api_common.h -file - - - - -2007-05-17T22:13:04.000000Z -b6be170d18fa90b79f7264cf8b0f7348 -2006-12-04T22:21:07.339224Z -157 -mikej - -sangoma_pri.h -file - - - - -2007-03-21T22:07:06.000000Z -f24c6cf396aeaa6df2747f7f6b32969d -2006-03-24T14:19:31.976520Z -28 -anthm - -version -file - - - - -2007-03-21T22:07:06.000000Z -35f672d1fb01b542f667952c9dbb26fe -2006-02-10T16:20:41.709688Z -1 -anthm - -configure.in -file - - - - -2007-05-17T22:11:22.000000Z -5b9888fc365c4ebffdbb55656c091a2f -2007-02-07T19:00:12.109961Z -166 -ncorbic - -ChangeLog -file - - - - -2007-03-21T22:07:06.000000Z -d41d8cd98f00b204e9800998ecf8427e -2006-02-10T16:20:41.709688Z -1 -anthm - -README -file - - - - -2007-03-21T22:07:06.000000Z -e8a0abce86211364eb60bbe6e07d4b05 -2006-02-14T19:06:52.853886Z -6 -nenad - -config.h.in -file - - - - -2007-03-21T22:07:06.000000Z -5c51918deee8d041af37226bd4b4271e -2006-02-10T16:20:41.709688Z -1 -anthm - -missing -file - - - - -2007-03-21T22:07:06.000000Z -fd5dd60aa8cefab9462677280ea74a61 -2006-02-10T16:20:41.709688Z -1 -anthm -has-props - -Makefile.am -file - - - - -2007-07-24T22:46:01.000000Z -061d814c4cf9a1066e4ff2501fa0a100 -2007-05-29T18:03:36.038276Z -206 -ncorbic - -aclocal.m4 -file - - - - -2007-05-17T22:58:53.000000Z -dd02d76e53ac83f5112d68797e8f52e3 -2007-02-07T19:00:12.109961Z -166 -ncorbic - -examples -dir - -install-sh -file - - - - -2007-03-21T22:07:06.000000Z -92067666ddce97609bd0ec67d36460cd -2006-02-10T16:20:41.709688Z -1 -anthm -has-props - -libsangoma.vcproj -file - - - - -2007-05-17T22:13:09.000000Z -a09711e3b6aac93dd48d8e9b3014955f -2006-12-04T22:24:41.715361Z -158 -mikej - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/api/libsangoma/.svn/format b/api/libsangoma/.svn/format index 45a4fb7..b8626c4 100644 --- a/api/libsangoma/.svn/format +++ b/api/libsangoma/.svn/format @@ -1 +1 @@ -8 +4 diff --git a/api/libsangoma/.svn/prop-base/AUTHORS.svn-base b/api/libsangoma/.svn/prop-base/AUTHORS.svn-base new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/prop-base/AUTHORS.svn-base @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/prop-base/COPYING.svn-base b/api/libsangoma/.svn/prop-base/COPYING.svn-base new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/prop-base/COPYING.svn-base @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/prop-base/ChangeLog.svn-base b/api/libsangoma/.svn/prop-base/ChangeLog.svn-base new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/prop-base/ChangeLog.svn-base @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/prop-base/INSTALL.svn-base b/api/libsangoma/.svn/prop-base/INSTALL.svn-base new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/prop-base/INSTALL.svn-base @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/prop-base/Makefile.am.svn-base b/api/libsangoma/.svn/prop-base/Makefile.am.svn-base new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/prop-base/Makefile.am.svn-base @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/prop-base/Makefile.in.svn-base b/api/libsangoma/.svn/prop-base/Makefile.in.svn-base new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/prop-base/Makefile.in.svn-base @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/prop-base/NEWS.svn-base b/api/libsangoma/.svn/prop-base/NEWS.svn-base new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/prop-base/NEWS.svn-base @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/prop-base/README.svn-base b/api/libsangoma/.svn/prop-base/README.svn-base new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/prop-base/README.svn-base @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/prop-base/aclocal.m4.svn-base b/api/libsangoma/.svn/prop-base/aclocal.m4.svn-base new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/prop-base/aclocal.m4.svn-base @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/prop-base/config.h.in.svn-base b/api/libsangoma/.svn/prop-base/config.h.in.svn-base new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/prop-base/config.h.in.svn-base @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/prop-base/configure.in.svn-base b/api/libsangoma/.svn/prop-base/configure.in.svn-base new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/prop-base/configure.in.svn-base @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/prop-base/g711.h.svn-base b/api/libsangoma/.svn/prop-base/g711.h.svn-base new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/prop-base/g711.h.svn-base @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/prop-base/libsangoma.c.svn-base b/api/libsangoma/.svn/prop-base/libsangoma.c.svn-base new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/prop-base/libsangoma.c.svn-base @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/prop-base/libsangoma.dsp.svn-base b/api/libsangoma/.svn/prop-base/libsangoma.dsp.svn-base new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/prop-base/libsangoma.dsp.svn-base @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/prop-base/libsangoma.dsw.svn-base b/api/libsangoma/.svn/prop-base/libsangoma.dsw.svn-base new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/prop-base/libsangoma.dsw.svn-base @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/prop-base/libsangoma.h.svn-base b/api/libsangoma/.svn/prop-base/libsangoma.h.svn-base new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/prop-base/libsangoma.h.svn-base @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/prop-base/libsangoma.vcproj.svn-base b/api/libsangoma/.svn/prop-base/libsangoma.vcproj.svn-base new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/prop-base/libsangoma.vcproj.svn-base @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/prop-base/ltmain.sh.svn-base b/api/libsangoma/.svn/prop-base/ltmain.sh.svn-base new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/prop-base/ltmain.sh.svn-base @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/prop-base/sangoma_pri.c.svn-base b/api/libsangoma/.svn/prop-base/sangoma_pri.c.svn-base new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/prop-base/sangoma_pri.c.svn-base @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/prop-base/sangoma_pri.h.svn-base b/api/libsangoma/.svn/prop-base/sangoma_pri.h.svn-base new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/prop-base/sangoma_pri.h.svn-base @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/prop-base/version.svn-base b/api/libsangoma/.svn/prop-base/version.svn-base new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/prop-base/version.svn-base @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/prop-base/win_api_common.h.svn-base b/api/libsangoma/.svn/prop-base/win_api_common.h.svn-base new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/prop-base/win_api_common.h.svn-base @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/props/AUTHORS.svn-work b/api/libsangoma/.svn/props/AUTHORS.svn-work new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/props/AUTHORS.svn-work @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/props/COPYING.svn-work b/api/libsangoma/.svn/props/COPYING.svn-work new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/props/COPYING.svn-work @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/props/ChangeLog.svn-work b/api/libsangoma/.svn/props/ChangeLog.svn-work new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/props/ChangeLog.svn-work @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/props/INSTALL.svn-work b/api/libsangoma/.svn/props/INSTALL.svn-work new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/props/INSTALL.svn-work @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/props/Makefile.am.svn-work b/api/libsangoma/.svn/props/Makefile.am.svn-work new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/props/Makefile.am.svn-work @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/props/Makefile.in.svn-work b/api/libsangoma/.svn/props/Makefile.in.svn-work new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/props/Makefile.in.svn-work @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/props/NEWS.svn-work b/api/libsangoma/.svn/props/NEWS.svn-work new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/props/NEWS.svn-work @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/props/README.svn-work b/api/libsangoma/.svn/props/README.svn-work new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/props/README.svn-work @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/props/aclocal.m4.svn-work b/api/libsangoma/.svn/props/aclocal.m4.svn-work new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/props/aclocal.m4.svn-work @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/props/compile.svn-work b/api/libsangoma/.svn/props/compile.svn-work new file mode 100644 index 0000000..a669705 --- /dev/null +++ b/api/libsangoma/.svn/props/compile.svn-work @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 0 + +END diff --git a/api/libsangoma/.svn/props/config.guess.svn-work b/api/libsangoma/.svn/props/config.guess.svn-work new file mode 100644 index 0000000..a669705 --- /dev/null +++ b/api/libsangoma/.svn/props/config.guess.svn-work @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 0 + +END diff --git a/api/libsangoma/.svn/props/config.h.in.svn-work b/api/libsangoma/.svn/props/config.h.in.svn-work new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/props/config.h.in.svn-work @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/props/config.sub.svn-work b/api/libsangoma/.svn/props/config.sub.svn-work new file mode 100644 index 0000000..a669705 --- /dev/null +++ b/api/libsangoma/.svn/props/config.sub.svn-work @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 0 + +END diff --git a/api/libsangoma/.svn/props/configure.in.svn-work b/api/libsangoma/.svn/props/configure.in.svn-work new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/props/configure.in.svn-work @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/props/configure.svn-work b/api/libsangoma/.svn/props/configure.svn-work new file mode 100644 index 0000000..a669705 --- /dev/null +++ b/api/libsangoma/.svn/props/configure.svn-work @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 0 + +END diff --git a/api/libsangoma/.svn/props/depcomp.svn-work b/api/libsangoma/.svn/props/depcomp.svn-work new file mode 100644 index 0000000..a669705 --- /dev/null +++ b/api/libsangoma/.svn/props/depcomp.svn-work @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 0 + +END diff --git a/api/libsangoma/.svn/props/g711.h.svn-work b/api/libsangoma/.svn/props/g711.h.svn-work new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/props/g711.h.svn-work @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/props/install-sh.svn-work b/api/libsangoma/.svn/props/install-sh.svn-work new file mode 100644 index 0000000..a669705 --- /dev/null +++ b/api/libsangoma/.svn/props/install-sh.svn-work @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 0 + +END diff --git a/api/libsangoma/.svn/props/libsangoma.c.svn-work b/api/libsangoma/.svn/props/libsangoma.c.svn-work new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/props/libsangoma.c.svn-work @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/props/libsangoma.dsp.svn-work b/api/libsangoma/.svn/props/libsangoma.dsp.svn-work new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/props/libsangoma.dsp.svn-work @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/props/libsangoma.dsw.svn-work b/api/libsangoma/.svn/props/libsangoma.dsw.svn-work new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/props/libsangoma.dsw.svn-work @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/props/libsangoma.h.svn-work b/api/libsangoma/.svn/props/libsangoma.h.svn-work new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/props/libsangoma.h.svn-work @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/props/libsangoma.vcproj.svn-work b/api/libsangoma/.svn/props/libsangoma.vcproj.svn-work new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/props/libsangoma.vcproj.svn-work @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/props/ltmain.sh.svn-work b/api/libsangoma/.svn/props/ltmain.sh.svn-work new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/props/ltmain.sh.svn-work @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/props/missing.svn-work b/api/libsangoma/.svn/props/missing.svn-work new file mode 100644 index 0000000..a669705 --- /dev/null +++ b/api/libsangoma/.svn/props/missing.svn-work @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 0 + +END diff --git a/api/libsangoma/.svn/props/sangoma_pri.c.svn-work b/api/libsangoma/.svn/props/sangoma_pri.c.svn-work new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/props/sangoma_pri.c.svn-work @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/props/sangoma_pri.h.svn-work b/api/libsangoma/.svn/props/sangoma_pri.h.svn-work new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/props/sangoma_pri.h.svn-work @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/props/version.svn-work b/api/libsangoma/.svn/props/version.svn-work new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/props/version.svn-work @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/props/win_api_common.h.svn-work b/api/libsangoma/.svn/props/win_api_common.h.svn-work new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/.svn/props/win_api_common.h.svn-work @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/.svn/text-base/Makefile.am.svn-base b/api/libsangoma/.svn/text-base/Makefile.am.svn-base index 1d5ee14..6eb81c3 100644 --- a/api/libsangoma/.svn/text-base/Makefile.am.svn-base +++ b/api/libsangoma/.svn/text-base/Makefile.am.svn-base @@ -1,8 +1,7 @@ KINC=/lib/modules/$(shell uname -r)/build -WINC=../../patches/kdrivers/include -AM_CFLAGS = -fPIC -Wall -Wstrict-prototypes -Wmissing-prototypes -g -I$(WINC) -I$(KINC)/include -I. \ +AM_CFLAGS = -fPIC -Wall -Wstrict-prototypes -Wmissing-prototypes -g -I$(KINC)/include -I. \ -D__LINUX__ -D_REENTRANT -D_GNU_SOURCE -O2 -D_DEBUG_=2 -D_GNUC_ -I../lib -I$(KINC)/include LIB_SOURCES = libsangoma.c libsangoma.h diff --git a/api/libsangoma/.svn/text-base/Makefile.in.svn-base b/api/libsangoma/.svn/text-base/Makefile.in.svn-base index 41ebb2c..c6da88d 100644 --- a/api/libsangoma/.svn/text-base/Makefile.in.svn-base +++ b/api/libsangoma/.svn/text-base/Makefile.in.svn-base @@ -212,8 +212,7 @@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ KINC = /lib/modules/$(shell uname -r)/build -WINC = ../../patches/kdrivers/include -AM_CFLAGS = -fPIC -Wall -Wstrict-prototypes -Wmissing-prototypes -g -I$(WINC) -I$(KINC)/include -I. \ +AM_CFLAGS = -fPIC -Wall -Wstrict-prototypes -Wmissing-prototypes -g -I$(KINC)/include -I. \ -D__LINUX__ -D_REENTRANT -D_GNU_SOURCE -O2 -D_DEBUG_=2 -D_GNUC_ -I../lib -I$(KINC)/include LIB_SOURCES = libsangoma.c libsangoma.h $(am__append_1) diff --git a/api/libsangoma/.svn/text-base/libsangoma.c.svn-base b/api/libsangoma/.svn/text-base/libsangoma.c.svn-base index e06ac2a..d3dceb0 100644 --- a/api/libsangoma/.svn/text-base/libsangoma.c.svn-base +++ b/api/libsangoma/.svn/text-base/libsangoma.c.svn-base @@ -758,7 +758,7 @@ int sangoma_tdm_write_rbs(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api, unsigned char int sangoma_tdm_read_event(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { - wp_tdm_api_event_t *rx_event; + wp_tdm_api_rx_hdr_t *rx_event; #if defined(WIN32) rx_event = &last_tdm_api_event_buffer; @@ -777,15 +777,15 @@ int sangoma_tdm_read_event(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) switch (rx_event->wp_tdm_api_event_type){ - case WP_TDMAPI_EVENT_RBS: + case WP_TDM_EVENT_RBS: printf("%d: GOT RBS EVENT %p\n",(int)fd,tdm_api->wp_tdm_event.wp_rbs_event); if (tdm_api->wp_tdm_event.wp_rbs_event) { - tdm_api->wp_tdm_event.wp_rbs_event(fd,rx_event->wp_tdm_api_event_rbs_bits); + tdm_api->wp_tdm_event.wp_rbs_event(fd,rx_event->wp_tdm_api_event_rbs_rx_bits); } break; - case WP_TDMAPI_EVENT_DTMF: + case WP_TDM_EVENT_DTMF: printf("%d: GOT DTMF EVENT\n",(int)fd); if (tdm_api->wp_tdm_event.wp_dtmf_event) { tdm_api->wp_tdm_event.wp_dtmf_event(fd, @@ -795,32 +795,32 @@ int sangoma_tdm_read_event(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) } break; - case WP_TDMAPI_EVENT_RXHOOK: + case WP_TDM_EVENT_RXHOOK: printf("%d: GOT RXHOOK EVENT\n",(int)fd); if (tdm_api->wp_tdm_event.wp_rxhook_event) { tdm_api->wp_tdm_event.wp_rxhook_event(fd, - rx_event->wp_tdm_api_event_hook_state); + rx_event->wp_tdm_api_event_rxhook_state); } break; - case WP_TDMAPI_EVENT_RING_DETECT: + case WP_TDM_EVENT_RING_DETECT: printf("%d: GOT RXRING EVENT\n",(int)fd); - if (tdm_api->wp_tdm_event.wp_ring_detect_event) { - tdm_api->wp_tdm_event.wp_ring_detect_event(fd, + if (tdm_api->wp_tdm_event.wp_rxring_event) { + tdm_api->wp_tdm_event.wp_rxring_event(fd, rx_event->wp_tdm_api_event_ring_state); } break; - case WP_TDMAPI_EVENT_RING_TRIP_DETECT: + case WP_TDM_EVENT_RING_TRIP: printf("%d: GOT RING TRIP EVENT\n",(int)fd); - if (tdm_api->wp_tdm_event.wp_ring_trip_detect_event) { - tdm_api->wp_tdm_event.wp_ring_trip_detect_event(fd, + if (tdm_api->wp_tdm_event.wp_ringtrip_event) { + tdm_api->wp_tdm_event.wp_ringtrip_event(fd, rx_event->wp_tdm_api_event_ring_state); } break; #ifdef WP_TDM_EVENT_FE_ALARM - case WP_TDMAPI_EVENT_FE_ALARM: + case WP_TDM_EVENT_FE_ALARM: printf("%d: GOT FE ALARMS EVENT %i\n",(int)fd, rx_event->wp_tdm_api_event_fe_alarm); if (tdm_api->wp_tdm_event.wp_fe_alarm_event) { @@ -841,9 +841,7 @@ int sangoma_tdm_enable_dtmf_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { int err; - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_DTMF; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_ENABLE; + tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_ENABLE_DTMF_EVENTS; err=sangoma_tdm_cmd_exec(fd,tdm_api); if (err){ return err; @@ -856,9 +854,7 @@ int sangoma_tdm_disable_dtmf_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { int err; - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_DTMF; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_DISABLE; + tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_DISABLE_DTMF_EVENTS; err=sangoma_tdm_cmd_exec(fd,tdm_api); if (err){ return err; @@ -871,9 +867,7 @@ int sangoma_tdm_enable_rm_dtmf_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { int err; - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_RM_DTMF; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_ENABLE; + tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_ENABLE_RM_DTMF_EVENTS; err=sangoma_tdm_cmd_exec(fd,tdm_api); if (err){ return err; @@ -886,9 +880,7 @@ int sangoma_tdm_disable_rm_dtmf_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { int err; - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_RM_DTMF; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_DISABLE; + tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_DISABLE_RM_DTMF_EVENTS; err=sangoma_tdm_cmd_exec(fd,tdm_api); if (err){ return err; @@ -901,9 +893,7 @@ int sangoma_tdm_enable_rxhook_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { int err; - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_RXHOOK; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_ENABLE; + tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_ENABLE_RXHOOK_EVENTS; err=sangoma_tdm_cmd_exec(fd,tdm_api); if (err){ return err; @@ -912,40 +902,11 @@ int sangoma_tdm_enable_rxhook_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) return 0; } -int sangoma_tdm_enable_hwec(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) -{ - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_ENABLE_HWEC; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return 0; -} - -int sangoma_tdm_disable_hwec(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) -{ - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_DISABLE_HWEC; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return 0; -} - - int sangoma_tdm_disable_rxhook_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { int err; - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_RXHOOK; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_DISABLE; + tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_DISABLE_RXHOOK_EVENTS; err=sangoma_tdm_cmd_exec(fd,tdm_api); if (err){ return err; @@ -954,194 +915,6 @@ int sangoma_tdm_disable_rxhook_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) return 0; } -int sangoma_tdm_enable_ring_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_RING; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_ENABLE; - - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return tdm_api->wp_tdm_cmd.rbs_poll; -} - - -int sangoma_tdm_disable_ring_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_RING; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_DISABLE; - - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return 0; -} - -int sangoma_tdm_enable_ring_detect_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_RING_DETECT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_ENABLE; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return tdm_api->wp_tdm_cmd.rbs_poll; -} - - -int sangoma_tdm_disable_ring_detect_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_RING_DETECT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_DISABLE; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return 0; -} - -int sangoma_tdm_enable_ring_trip_detect_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_RING_TRIP_DETECT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_ENABLE; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return tdm_api->wp_tdm_cmd.rbs_poll; -} - - -int sangoma_tdm_disable_ring_trip_detect_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_RING_DETECT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_DISABLE; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return 0; -} - -int sangoma_tdm_txsig_kewl(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_TXSIG_KEWL; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_ENABLE; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return 0; -} - -int sangoma_tdm_txsig_start(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_TXSIG_START; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_ENABLE; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return 0; -} - -int sangoma_tdm_txsig_onhook(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_TXSIG_ONHOOK; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_ENABLE; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return 0; -} - -int sangoma_tdm_txsig_offhook(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_TXSIG_OFFHOOK; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_ENABLE; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return 0; -} - - -int sangoma_tdm_enable_tone_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api, int tone_id) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_TONE; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_ENABLE; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_tone_type = tone_id; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return tdm_api->wp_tdm_cmd.rbs_poll; -} - -int sangoma_tdm_disable_tone_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_TONE; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_DISABLE; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_tone_type = 0x00; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return tdm_api->wp_tdm_cmd.rbs_poll; -} - /*======================================================== * GET Front End Alarms * diff --git a/api/libsangoma/.svn/text-base/libsangoma.h.svn-base b/api/libsangoma/.svn/text-base/libsangoma.h.svn-base index 438307a..29d153e 100644 --- a/api/libsangoma/.svn/text-base/libsangoma.h.svn-base +++ b/api/libsangoma/.svn/text-base/libsangoma.h.svn-base @@ -26,7 +26,7 @@ #include #include #include -iinclude //for offsetof() +#include //for offsetof() typedef unsigned __int16 u_int16_t; typedef unsigned __int32 u_int32_t; #include //for 'wan_udp_hdr_t' @@ -158,33 +158,8 @@ int sangoma_tdm_disable_rm_dtmf_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); int sangoma_tdm_enable_rxhook_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); int sangoma_tdm_disable_rxhook_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); -/* Enable/Disable Ring events on A200 (Analog) card */ -int sangoma_tdm_enable_ring_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); -int sangoma_tdm_disable_ring_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); - -/* Enable/Disable Ring Detect events on A200 (Analog) card */ -int sangoma_tdm_enable_ring_detect_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); -int sangoma_tdm_disable_ring_detect_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); - -/* Enable/Disable Ring Trip events on A200 (Analog) card */ -int sangoma_tdm_enable_ring_trip_detect_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); -int sangoma_tdm_disable_ring_trip_detect_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); - -/* Enable/Disable tone events on A200 (Analog) card */ -int sangoma_tdm_enable_tone_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api, int tone_id); -int sangoma_tdm_disable_tone_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); - int sangoma_tdm_get_fe_alarms(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); -int sangoma_tdm_enable_hwec(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); -int sangoma_tdm_disable_hwec(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); - - -int sangoma_tdm_txsig_onhook(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); -int sangoma_tdm_txsig_offhook(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); -int sangoma_tdm_txsig_start(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); -int sangoma_tdm_txsig_kewl(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); - #ifndef LIBSANGOMA_GET_HWCODING #define LIBSANGOMA_GET_HWCODING 1 #endif diff --git a/api/libsangoma/.svn/tmp/tempfile.2.tmp b/api/libsangoma/.svn/tmp/tempfile.2.tmp deleted file mode 100644 index 5141b52..0000000 --- a/api/libsangoma/.svn/tmp/tempfile.2.tmp +++ /dev/null @@ -1,198 +0,0 @@ -/***************************************************************************** - * libsangoma.c AFT T1/E1: HDLC API Code Library - * - * Author(s): Anthony Minessale II - * Nenad Corbic - * - * Copyright: (c) 2005 Anthony Minessale II - * - * 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. - * ============================================================================ - */ - -#ifndef _LIBSNAGOMA_H -#define _LIBSNAGOMA_H -#include - -#define WANPIPE_TDM_API 1 - -#ifdef WIN32 -#ifndef __WINDOWS__ -#define __WINDOWS__ -#endif -#include -#include -#include -iinclude //for offsetof() -typedef unsigned __int16 u_int16_t; -typedef unsigned __int32 u_int32_t; -#include //for 'wan_udp_hdr_t' -#include -#ifdef WANPIPE_TDM_API -#include //for TDMV API -#endif -#include //return codes -#include //for IOCTL codes -#include //RBS definitions -#include //TE1 macros -#include //56k macros -#include //Analog card -#include //T3 card -#include //front-end (T1/E1/56k) commands -#include //for Wanpipe API - -#define _MYDEBUG -#define PROGRAM_NAME "LIBSANGOMA: " -#include - -typedef HANDLE sng_fd_t; -#else -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -//typedef int sng_fd_t; -#include -#include -#include -#ifdef WANPIPE_TDM_API -# include -#endif -#endif - -#define FNAME_LEN 50 -#define FUNC_DBG(x) if(0)printf("%s:%d\n", x, __LINE__) -#define DBG_PRINT if(1)printf - -typedef wp_tdm_api_rx_hdr_t sangoma_api_hdr_t; - -/* Decodec Span/Chan from interface name */ -int sangoma_span_chan_toif(int span, int chan, char *interface_name); -int sangoma_span_chan_fromif(char *interface_name, int *span, int *chan); -int sangoma_interface_toi(char *interface_name, int *span, int *chan); - -sng_fd_t sangoma_create_socket_by_name(char *device, char *card); - -/* Open Span/Chan devices - * open_tdmapi_span_chan: open device based on span chan values - * sangoma_open_tdmapi_span: open first available device on span - */ - -sng_fd_t sangoma_open_tdmapi_span_chan(int span, int chan); -sng_fd_t sangoma_open_tdmapi_span(int span); - -#define sangoma_create_socket_intr sangoma_open_tdmapi_span_chan - -/* Device Rx/Tx functions - * writemsg_tdm: tx header + data from separate buffers - * readmsg_tdm: rx header + data to separate buffers - */ -int sangoma_writemsg_tdm(sng_fd_t fd, void *hdrbuf, int hdrlen, - void *databuf, unsigned short datalen, int flag); -int sangoma_readmsg_tdm(sng_fd_t fd, void *hdrbuf, int hdrlen, - void *databuf, int datalen, int flag); - -#define sangoma_readmsg_socket sangoma_readmsg_tdm -#define sangoma_sendmsg_socket sangoma_writemsg_tdm - -#ifdef WANPIPE_TDM_API - -void sangoma_socket_close(sng_fd_t *sp); -int sangoma_socket_waitfor(sng_fd_t fd, int timeout, int flags); - -/* Get Full TDM API configuration per chan */ -int sangoma_get_full_cfg(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); - -/* Get/Set TDM Codec per chan */ -int sangoma_tdm_set_codec(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api, int codec); -int sangoma_tdm_get_codec(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); - -/* Get/Set USR Tx/Rx Period in milliseconds */ -int sangoma_tdm_set_usr_period(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api, int period); -int sangoma_tdm_get_usr_period(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); - -/* Get user MTU/MRU values in bytes */ -int sangoma_tdm_get_usr_mtu_mru(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); - -/* Not supported yet */ -int sangoma_tdm_set_power_level(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api, int power); -int sangoma_tdm_get_power_level(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); - -/* Flush buffers from current channel */ -int sangoma_tdm_flush_bufs(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); - -int sangoma_tdm_enable_rbs_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api, int poll_in_sec); -int sangoma_tdm_disable_rbs_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); - -int sangoma_tdm_write_rbs(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api, unsigned char rbs); - -int sangoma_tdm_read_event(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); - -/* DTMF Detection on Octasic chip */ -int sangoma_tdm_enable_dtmf_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); -int sangoma_tdm_disable_dtmf_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); - -/* DTMF Detection on A200 (SLIC) chip */ -int sangoma_tdm_enable_rm_dtmf_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); -int sangoma_tdm_disable_rm_dtmf_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); - -/* On/Off hook events on A200 (Analog) card */ -int sangoma_tdm_enable_rxhook_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); -int sangoma_tdm_disable_rxhook_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); - -/* Enable/Disable Ring events on A200 (Analog) card */ -int sangoma_tdm_enable_ring_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); -int sangoma_tdm_disable_ring_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); - -/* Enable/Disable Ring Detect events on A200 (Analog) card */ -int sangoma_tdm_enable_ring_detect_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); -int sangoma_tdm_disable_ring_detect_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); - -/* Enable/Disable Ring Trip events on A200 (Analog) card */ -int sangoma_tdm_enable_ring_trip_detect_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); -int sangoma_tdm_disable_ring_trip_detect_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); - -/* Enable/Disable tone events on A200 (Analog) card */ -int sangoma_tdm_enable_tone_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api, int tone_id); -int sangoma_tdm_disable_tone_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); - -int sangoma_tdm_get_fe_alarms(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); - -<<<<<<< .mine -int sangoma_tdm_enable_hwec(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); -int sangoma_tdm_disable_hwec(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); - - -======= -int sangoma_tdm_txsig_onhook(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); -int sangoma_tdm_txsig_offhook(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); -int sangoma_tdm_txsig_start(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); -int sangoma_tdm_txsig_kewl(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); - ->>>>>>> .r229 -#ifndef LIBSANGOMA_GET_HWCODING -#define LIBSANGOMA_GET_HWCODING 1 -#endif -int sangoma_tdm_get_hw_coding(int fd, wanpipe_tdm_api_t *tdm_api); - -#endif /* WANPIPE_TDM_API */ - -#endif diff --git a/api/libsangoma/.svn/tmp/tempfile.tmp b/api/libsangoma/.svn/tmp/tempfile.tmp deleted file mode 100644 index e06ac2a..0000000 --- a/api/libsangoma/.svn/tmp/tempfile.tmp +++ /dev/null @@ -1,1165 +0,0 @@ -/***************************************************************************** - * libsangoma.c AFT T1/E1: HDLC API Code Library - * - * Author(s): Anthony Minessale II - * Nenad Corbic - * David Rokhvarg - * Michael Jerris - * - * Copyright: (c) 2005 Anthony Minessale II - * - * 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. - * ============================================================================ - * - * Aug 15, 2006 David Rokhvarg Ported to MS Windows 2000/XP - * Sep 24, 2006 Michael Jerris Windows port, standardize api, cleanup - * - */ - -#include "libsangoma.h" -#define DFT_CARD "wanpipe1" - - -#ifndef WP_TDM_EVENT_FE_ALARM -#warning "Warning: TDM FE ALARM not supported by driver" -#endif - - -#if defined(WIN32) -//extern int verbose; - -#define DEV_NAME_LEN 100 -char device_name[DEV_NAME_LEN]; - -/* IOCTL management structures and variables*/ -wan_udp_hdr_t wan_udp; - -#include "win_api_common.h" - -static wan_cmd_api_t api_cmd; -static api_tx_hdr_t *tx_hdr = (api_tx_hdr_t *)api_cmd.data; - -/* keeps the LAST (and single) event received */ -static wp_tdm_api_rx_hdr_t last_tdm_api_event_buffer; - -#endif /* WIN32 */ - -void sangoma_socket_close(sng_fd_t *sp) -{ -#if defined(WIN32) - if( *sp != INVALID_HANDLE_VALUE){ - CloseHandle(*sp); - *sp = INVALID_HANDLE_VALUE; - } -#else - if (*sp > -1) { - close(*sp); - *sp = -1; - } -#endif -} - -int sangoma_socket_waitfor(sng_fd_t fd, int timeout, int flags) -{ -#if defined(WIN32) - API_POLL_STRUCT api_poll; - - memset(&api_poll, 0x00, sizeof(API_POLL_STRUCT)); - - api_poll.user_flags_bitmap = flags; - - if(DoApiPollCommand(fd, &api_poll)){ - //failed - return 0; - } - - switch(api_poll.operation_status) - { - case SANG_STATUS_RX_DATA_AVAILABLE: - break; - - default: - prn(1, "Error: sangoma_socket_waitfor(): Unknown Operation Status: %d\n", - api_poll.operation_status); - return 0; - }//switch() - - if(api_poll.poll_events_bitmap == 0){ - prn(1, "Error: invalid Poll Events bitmap: 0x%X\n", - api_poll.poll_events_bitmap); - } - return api_poll.poll_events_bitmap; -#else - struct pollfd pfds[1]; - int res; - - memset(&pfds[0], 0, sizeof(pfds[0])); - pfds[0].fd = fd; - pfds[0].events = flags; - res = poll(pfds, 1, timeout); - if (res > 0) { - if ((pfds[0].revents & POLLERR)) { - res = -1; - } else if((pfds[0].revents)) { - res = 1; - } - } - - return res; -#endif -} - - -int sangoma_span_chan_toif(int span, int chan, char *interface_name) -{ - sprintf(interface_name,"s%ic%i",span,chan); - return 0; -} - -int sangoma_interface_toi(char *interface_name, int *span, int *chan) -{ - char *p=NULL, *sp = NULL, *ch = NULL; - int ret = 0; - char data[FNAME_LEN]; - - strncpy(data, interface_name, FNAME_LEN); - if ((data[0])) { - for (p = data; *p; p++) { - if (sp && *p == 'g') { - *p = '\0'; - ch = (p + 1); - break; - } else if (*p == 'w') { - sp = (p + 1); - } - } - - if(ch && sp) { - *span = atoi(sp); - *chan = atoi(ch); - ret = 1; - } else { - *span = -1; - *chan = -1; - } - } - - return ret; -} - -int sangoma_span_chan_fromif(char *interface_name, int *span, int *chan) -{ - char *p = NULL, *sp = NULL, *ch = NULL; - int ret = 0; - char data[FNAME_LEN]; - - strncpy(data, interface_name, FNAME_LEN); - if ((data[0])) { - for (p = data; *p; p++) { - if (sp && *p == 'c') { - *p = '\0'; - ch = (p + 1); - break; - } else if (*p == 's') { - sp = (p + 1); - } - } - - if(ch && sp) { - *span = atoi(sp); - *chan = atoi(ch); - ret = 1; - } else { - *span = -1; - *chan = -1; - } - } - - return ret; -} - -sng_fd_t sangoma_open_tdmapi_span_chan(int span, int chan) -{ - char fname[FNAME_LEN]; -#if defined(WIN32) - - //NOTE: under Windows Interfaces are zero based but 'chan' is 1 based. - // Subtract 1 from 'chan'. - _snprintf(fname , FNAME_LEN, "\\\\.\\WANPIPE%d_IF%d", span, chan - 1); - - //prn(verbose, "Opening device: %s...\n", fname); - - return CreateFile( fname, - GENERIC_READ | GENERIC_WRITE, - FILE_SHARE_READ | FILE_SHARE_WRITE, - (LPSECURITY_ATTRIBUTES)NULL, - OPEN_EXISTING, - FILE_FLAG_NO_BUFFERING | FILE_FLAG_WRITE_THROUGH, - (HANDLE)NULL - ); -#else - int fd=-1; - - sprintf(fname,"/dev/wptdm_s%dc%d",span,chan); - - fd = open(fname, O_RDWR); - - return fd; -#endif -} - -sng_fd_t sangoma_create_socket_by_name(char *device, char *card) -{ - int span,chan; - sangoma_interface_toi(device,&span,&chan); - - return sangoma_open_tdmapi_span_chan(span,chan); -} - - -sng_fd_t sangoma_open_tdmapi_span(int span) -{ - int i=0; -#if defined(WIN32) - sng_fd_t fd = INVALID_HANDLE_VALUE; - - for(i = 1; i < 32; i++){ - if((fd = sangoma_open_tdmapi_span_chan(span, i)) == INVALID_HANDLE_VALUE){ - //prn(verbose, "Span: %d, chan: %d: is not running, consider 'busy'\n", - // span, i); - continue; - } - - //get the open handle counter - wan_udp.wan_udphdr_command = GET_OPEN_HANDLES_COUNTER; - wan_udp.wan_udphdr_data_len = 0; - - DoManagementCommand(fd, &wan_udp); - if(wan_udp.wan_udphdr_return_code){ - prn(1, "Error: command GET_OPEN_HANDLES_COUNTER failed! Span: %d, chan: %d\n", - span, i); - //don't forget to close!! otherwize counter will stay incremented. - sangoma_socket_close(&fd); - continue; - } - - //prn(verbose, "open handles counter: %d\n", *(int*)&wan_udp.wan_udphdr_data[0]); - if(*(int*)&wan_udp.wan_udphdr_data[0] == 1){ - //this is the only process using this chan/span, so it is 'free' - //prn(verbose, "Found 'free' Span: %d, chan: %d\n",span, i); - break; - } - //don't forget to close!! otherwize counter will stay incremented. - sangoma_socket_close(&fd); - }//for() - -#else - unsigned char fname[FNAME_LEN]; - int fd=0; - for (i=1;i<32;i++){ - sprintf(fname,"/dev/wptdm_s%dc%d",span,i); - fd = open(fname, O_RDWR); - if (fd < 0){ - continue; - } - break; - } -#endif - return fd; -} - -int sangoma_readmsg_tdm(sng_fd_t fd, void *hdrbuf, int hdrlen, void *databuf, int datalen, int flag) -{ - int rx_len=0; - -#if defined(WIN32) - static RX_DATA_STRUCT rx_data; - api_header_t *pri; - wp_tdm_api_rx_hdr_t *tdm_api_rx_hdr; - wp_tdm_api_rx_hdr_t *user_buf = (wp_tdm_api_rx_hdr_t*)hdrbuf; - - if(hdrlen != sizeof(wp_tdm_api_rx_hdr_t)){ - //error - prn(1, "Error: sangoma_readmsg_tdm(): invalid size of user's 'header buffer'.\ -Should be 'sizeof(wp_tdm_api_rx_hdr_t)'.\n"); - return -1; - } - - if(DoReadCommand(fd, &rx_data) ){ - //error - prn(1, "Error: DoReadCommand() failed! Check messages log.\n"); - return -1; - } - - //use our special buffer at rxdata to hold received data - pri = &rx_data.api_header; - tdm_api_rx_hdr = (wp_tdm_api_rx_hdr_t*)rx_data.data; - - user_buf->wp_tdm_api_event_type = pri->operation_status; - - switch(pri->operation_status) - { - case SANG_STATUS_RX_DATA_AVAILABLE: - //prn(verbose, "SANG_STATUS_RX_DATA_AVAILABLE\n"); - - if(pri->data_length > datalen){ - rx_len=0; - break; - } - memcpy(databuf, rx_data.data, pri->data_length); - rx_len = pri->data_length; - break; - - case SANG_STATUS_TDM_EVENT_AVAILABLE: - //prn(verbose, "SANG_STATUS_TDM_EVENT_AVAILABLE\n"); - - //make event is accessable for the caller directly: - memcpy(databuf, rx_data.data, pri->data_length); - rx_len = pri->data_length; - - //make copy for use with sangoma_tdm_read_event() - indirect access. - memcpy( &last_tdm_api_event_buffer, tdm_api_rx_hdr, sizeof(wp_tdm_api_rx_hdr_t)); - break; - - default: - switch(pri->operation_status) - { - case SANG_STATUS_RX_DATA_TIMEOUT: - //no data in READ_CMD_TIMEOUT, try again. - prn(1, "Error: Timeout on read.\n"); - break; - - case SANG_STATUS_BUFFER_TOO_SMALL: - //Recieved data longer than the pre-configured maximum. - //Maximum length is set in 'Interface Properties', - //in the 'Device Manager'. - prn(1, "Error: Received data longer than buffer passed to API.\n"); - break; - - case SANG_STATUS_LINE_DISCONNECTED: - //Front end monitoring is enabled and Line is - //in disconnected state. - //Check the T1/E1 line is in "Connected" state, - //alse check the Alarms and the message log. - prn(1, "Error: Line disconnected.\n"); - break; - - default: - prn(1, "Rx:Unknown Operation Status: %d\n", pri->operation_status); - break; - }//switch() - return 0; - }//switch() - -#else - struct msghdr msg; - struct iovec iov[2]; - - memset(&msg,0,sizeof(struct msghdr)); - - iov[0].iov_len=hdrlen; - iov[0].iov_base=hdrbuf; - - iov[1].iov_len=datalen; - iov[1].iov_base=databuf; - - msg.msg_iovlen=2; - msg.msg_iov=iov; - - rx_len = read(fd,&msg,datalen+hdrlen); - - if (rx_len <= sizeof(wp_tdm_api_rx_hdr_t)){ - return -EINVAL; - } - - rx_len-=sizeof(wp_tdm_api_rx_hdr_t); -#endif - return rx_len; -} - -int sangoma_writemsg_tdm(sng_fd_t fd, void *hdrbuf, int hdrlen, void *databuf, unsigned short datalen, int flag) -{ - int bsent; - -#if defined(WIN32) - static TX_DATA_STRUCT local_tx_data; - api_header_t *pri; - - pri = &local_tx_data.api_header; - - pri->data_length = datalen; - memcpy(local_tx_data.data, databuf, pri->data_length); - - //queue data for transmission - if( DoWriteCommand(fd, &local_tx_data)){ - //error - prn(1, "Error: DoWriteCommand() failed!! Check messages log.\n"); - return -1; - } - - bsent=0; - //check that frame was transmitted - switch(local_tx_data.api_header.operation_status) - { - case SANG_STATUS_SUCCESS: - bsent = datalen; - break; - - case SANG_STATUS_TX_TIMEOUT: - //error - prn(1, "****** Error: SANG_STATUS_TX_TIMEOUT ******\n"); - //Check messages log or look at statistics. - break; - - case SANG_STATUS_TX_DATA_TOO_LONG: - //Attempt to transmit data longer than the pre-configured maximum. - //Maximum length is set in 'Interface Properties', - //in the 'Device Manager'. - prn(1, "****** SANG_STATUS_TX_DATA_TOO_LONG ******\n"); - break; - - case SANG_STATUS_TX_DATA_TOO_SHORT: - //Minimum is 1 byte for Primary port, - // 2 bytes for Secondary port - prn(1, "****** SANG_STATUS_TX_DATA_TOO_SHORT ******\n"); - break; - - case SANG_STATUS_LINE_DISCONNECTED: - //Front end monitoring is enabled and Line is - //in disconnected state. - //Check the T1/E1 line is in "Connected" state, - //alse check the Alarms and the message log. - prn(1, "****** SANG_STATUS_LINE_DISCONNECTED ******\n"); - break; - - default: - prn(1, "Unknown return code (0x%X) on transmission!\n", - local_tx_data.api_header.operation_status); - break; - }//switch() -#else - struct msghdr msg; - struct iovec iov[2]; - - memset(&msg,0,sizeof(struct msghdr)); - - iov[0].iov_len=hdrlen; - iov[0].iov_base=hdrbuf; - - iov[1].iov_len=datalen; - iov[1].iov_base=databuf; - - msg.msg_iovlen=2; - msg.msg_iov=iov; - - bsent = write(fd,&msg,datalen+hdrlen); - if (bsent > 0){ - bsent-=sizeof(wp_tdm_api_tx_hdr_t); - } -#endif - return bsent; -} - - -#ifdef WANPIPE_TDM_API - -/*======================================================== - * Execute TDM command - * - */ -static int sangoma_tdm_cmd_exec(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) -{ - int err; - -#if defined(WIN32) - err = tdmv_api_ioctl(fd, &tdm_api->wp_tdm_cmd); -#else - err = ioctl(fd,SIOC_WANPIPE_TDM_API,&tdm_api->wp_tdm_cmd); - if (err < 0){ - char tmp[50]; - sprintf(tmp,"TDM API: CMD: %i\n",tdm_api->wp_tdm_cmd.cmd); - perror(tmp); - return -1; - } -#endif - return err; -} - -/*======================================================== - * Get Full TDM API configuration per channel - * - */ -int sangoma_get_full_cfg(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) -{ - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_GET_FULL_CFG; - - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - printf("TDM API CFG:\n"); - printf("\thw_tdm_coding:\t%d\n",tdm_api->wp_tdm_cmd.hw_tdm_coding); - printf("\tusr_mtu_mru:\t%d\n",tdm_api->wp_tdm_cmd.hw_mtu_mru); - printf("\tusr_period:\t%d\n",tdm_api->wp_tdm_cmd.usr_period); - printf("\ttdm_codec:\t%d\n",tdm_api->wp_tdm_cmd.tdm_codec); - printf("\tpower_level:\t%d\n",tdm_api->wp_tdm_cmd.power_level); - printf("\trx_disable:\t%d\n",tdm_api->wp_tdm_cmd.rx_disable); - printf("\ttx_disable:\t%d\n",tdm_api->wp_tdm_cmd.tx_disable); - printf("\tusr_mtu_mru:\t%d\n",tdm_api->wp_tdm_cmd.usr_mtu_mru); - printf("\tidle flag:\t0x%02X\n",tdm_api->wp_tdm_cmd.idle_flag); - -#ifdef WP_TDM_EVENT_FE_ALARM - printf("\tfe alarms:\t0x%02X\n",tdm_api->wp_tdm_cmd.fe_alarms); -#endif - - printf("\trx pkt\t%d\ttx pkt\t%d\n",tdm_api->wp_tdm_cmd.stats.rx_packets, - tdm_api->wp_tdm_cmd.stats.tx_packets); - printf("\trx err\t%d\ttx err\t%d\n", - tdm_api->wp_tdm_cmd.stats.rx_errors, - tdm_api->wp_tdm_cmd.stats.tx_errors); -#ifndef __WINDOWS__ - printf("\trx ovr\t%d\ttx idl\t%d\n", - tdm_api->wp_tdm_cmd.stats.rx_fifo_errors, - tdm_api->wp_tdm_cmd.stats.tx_carrier_errors); -#endif - - return 0; -} - -/*======================================================== - * SET Codec on a particular Channel. - * - * Available codecs are defined in - * /usr/src/linux/include/linux/wanpipe_cfg.h - * - * enum wan_codec_format { - * WP_NONE, - * WP_SLINEAR - * } - * - */ -int sangoma_tdm_set_codec(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api, int codec) -{ - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_CODEC; - tdm_api->wp_tdm_cmd.tdm_codec = codec; - - err=sangoma_tdm_cmd_exec(fd,tdm_api); - - return err; -} - -/*======================================================== - * GET Codec from a particular Channel. - * - * Available codecs are defined in - * /usr/src/linux/include/linux/wanpipe_cfg.h - * - * enum wan_codec_format { - * WP_NONE, - * WP_SLINEAR - * } - * - */ -int sangoma_tdm_get_codec(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) -{ - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_GET_CODEC; - - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return tdm_api->wp_tdm_cmd.tdm_codec; -} - - -/*======================================================== - * SET Rx/Tx Hardware Period in milliseconds. - * - * Available options are: - * 10,20,30,40,50 ms - * - */ -int sangoma_tdm_set_usr_period(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api, int period) -{ - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_USR_PERIOD; - tdm_api->wp_tdm_cmd.usr_period = period; - - err=sangoma_tdm_cmd_exec(fd,tdm_api); - - return err; -} - -/*======================================================== - * GET Rx/Tx Hardware Period in milliseconds. - * - * Available options are: - * 10,20,30,40,50 ms - * - */ -int sangoma_tdm_get_usr_period(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) -{ - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_GET_USR_PERIOD; - - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return tdm_api->wp_tdm_cmd.usr_period; -} - -/*======================================================== - * GET Current User Hardware Coding Format - * - * Coding Format will be ULAW/ALAW based on T1/E1 - */ - -int sangoma_tdm_get_hw_coding(int fd, wanpipe_tdm_api_t *tdm_api) -{ - int err; - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_GET_HW_CODING; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - return tdm_api->wp_tdm_cmd.hw_tdm_coding; -} - - -/*======================================================== - * GET Current User MTU/MRU values in bytes. - * - * The USER MTU/MRU values will change each time a PERIOD - * or CODEC is adjusted. - */ -int sangoma_tdm_get_usr_mtu_mru(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) -{ - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_GET_USR_MTU_MRU; - - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return tdm_api->wp_tdm_cmd.usr_mtu_mru; -} - -/*======================================================== - * SET TDM Power Level - * - * This option is not implemented yet - * - */ -int sangoma_tdm_set_power_level(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api, int power) -{ - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_POWER_LEVEL; - tdm_api->wp_tdm_cmd.power_level = power; - - err=sangoma_tdm_cmd_exec(fd,tdm_api); - - return err; -} - -/*======================================================== - * GET TDM Power Level - * - * This option is not implemented yet - * - */ -int sangoma_tdm_get_power_level(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) -{ - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_GET_POWER_LEVEL; - - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return tdm_api->wp_tdm_cmd.power_level; -} - -int sangoma_tdm_flush_bufs(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) -{ -#if 0 - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_FLUSH_BUFFERS; - - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } -#endif - return 0; -} - -int sangoma_tdm_enable_rbs_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api, int poll_in_sec) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_ENABLE_RBS_EVENTS; - tdm_api->wp_tdm_cmd.rbs_poll=poll_in_sec; - - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return tdm_api->wp_tdm_cmd.rbs_poll; -} - - -int sangoma_tdm_disable_rbs_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { - - int err; - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_DISABLE_RBS_EVENTS; - - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return 0; -} - -int sangoma_tdm_write_rbs(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api, unsigned char rbs) -{ - - int err; - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_WRITE_RBS_BITS; - tdm_api->wp_tdm_cmd.rbs_tx_bits=rbs; - - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return 0; -} - -int sangoma_tdm_read_event(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) -{ - wp_tdm_api_event_t *rx_event; - -#if defined(WIN32) - rx_event = &last_tdm_api_event_buffer; -#else - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_READ_EVENT; - - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - rx_event = &tdm_api->wp_tdm_cmd.event; -#endif - - switch (rx_event->wp_tdm_api_event_type){ - - case WP_TDMAPI_EVENT_RBS: - printf("%d: GOT RBS EVENT %p\n",(int)fd,tdm_api->wp_tdm_event.wp_rbs_event); - if (tdm_api->wp_tdm_event.wp_rbs_event) { - tdm_api->wp_tdm_event.wp_rbs_event(fd,rx_event->wp_tdm_api_event_rbs_bits); - } - - break; - - case WP_TDMAPI_EVENT_DTMF: - printf("%d: GOT DTMF EVENT\n",(int)fd); - if (tdm_api->wp_tdm_event.wp_dtmf_event) { - tdm_api->wp_tdm_event.wp_dtmf_event(fd, - rx_event->wp_tdm_api_event_dtmf_digit, - rx_event->wp_tdm_api_event_dtmf_type, - rx_event->wp_tdm_api_event_dtmf_port); - } - break; - - case WP_TDMAPI_EVENT_RXHOOK: - printf("%d: GOT RXHOOK EVENT\n",(int)fd); - if (tdm_api->wp_tdm_event.wp_rxhook_event) { - tdm_api->wp_tdm_event.wp_rxhook_event(fd, - rx_event->wp_tdm_api_event_hook_state); - } - break; - - case WP_TDMAPI_EVENT_RING_DETECT: - printf("%d: GOT RXRING EVENT\n",(int)fd); - if (tdm_api->wp_tdm_event.wp_ring_detect_event) { - tdm_api->wp_tdm_event.wp_ring_detect_event(fd, - rx_event->wp_tdm_api_event_ring_state); - } - break; - - case WP_TDMAPI_EVENT_RING_TRIP_DETECT: - printf("%d: GOT RING TRIP EVENT\n",(int)fd); - if (tdm_api->wp_tdm_event.wp_ring_trip_detect_event) { - tdm_api->wp_tdm_event.wp_ring_trip_detect_event(fd, - rx_event->wp_tdm_api_event_ring_state); - } - break; - -#ifdef WP_TDM_EVENT_FE_ALARM - case WP_TDMAPI_EVENT_FE_ALARM: - printf("%d: GOT FE ALARMS EVENT %i\n",(int)fd, - rx_event->wp_tdm_api_event_fe_alarm); - if (tdm_api->wp_tdm_event.wp_fe_alarm_event) { - tdm_api->wp_tdm_event.wp_fe_alarm_event(fd, - rx_event->wp_tdm_api_event_fe_alarm); - } -#endif - - default: - printf("%d: Unknown TDM event!", (int)fd); - break; - } - - return 0; -} - -int sangoma_tdm_enable_dtmf_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) -{ - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_DTMF; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_ENABLE; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return 0; -} - -int sangoma_tdm_disable_dtmf_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) -{ - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_DTMF; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_DISABLE; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return 0; -} - -int sangoma_tdm_enable_rm_dtmf_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) -{ - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_RM_DTMF; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_ENABLE; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return 0; -} - -int sangoma_tdm_disable_rm_dtmf_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) -{ - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_RM_DTMF; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_DISABLE; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return 0; -} - -int sangoma_tdm_enable_rxhook_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) -{ - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_RXHOOK; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_ENABLE; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return 0; -} - -int sangoma_tdm_enable_hwec(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) -{ - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_ENABLE_HWEC; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return 0; -} - -int sangoma_tdm_disable_hwec(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) -{ - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_DISABLE_HWEC; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return 0; -} - - -int sangoma_tdm_disable_rxhook_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) -{ - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_RXHOOK; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_DISABLE; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return 0; -} - -int sangoma_tdm_enable_ring_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_RING; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_ENABLE; - - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return tdm_api->wp_tdm_cmd.rbs_poll; -} - - -int sangoma_tdm_disable_ring_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_RING; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_DISABLE; - - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return 0; -} - -int sangoma_tdm_enable_ring_detect_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_RING_DETECT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_ENABLE; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return tdm_api->wp_tdm_cmd.rbs_poll; -} - - -int sangoma_tdm_disable_ring_detect_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_RING_DETECT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_DISABLE; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return 0; -} - -int sangoma_tdm_enable_ring_trip_detect_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_RING_TRIP_DETECT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_ENABLE; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return tdm_api->wp_tdm_cmd.rbs_poll; -} - - -int sangoma_tdm_disable_ring_trip_detect_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_RING_DETECT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_DISABLE; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return 0; -} - -int sangoma_tdm_txsig_kewl(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_TXSIG_KEWL; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_ENABLE; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return 0; -} - -int sangoma_tdm_txsig_start(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_TXSIG_START; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_ENABLE; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return 0; -} - -int sangoma_tdm_txsig_onhook(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_TXSIG_ONHOOK; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_ENABLE; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return 0; -} - -int sangoma_tdm_txsig_offhook(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_TXSIG_OFFHOOK; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_ENABLE; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return 0; -} - - -int sangoma_tdm_enable_tone_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api, int tone_id) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_TONE; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_ENABLE; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_tone_type = tone_id; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return tdm_api->wp_tdm_cmd.rbs_poll; -} - -int sangoma_tdm_disable_tone_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_TONE; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_DISABLE; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_tone_type = 0x00; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return tdm_api->wp_tdm_cmd.rbs_poll; -} - -/*======================================================== - * GET Front End Alarms - * - */ -#ifdef WP_TDM_EVENT_FE_ALARM -int sangoma_tdm_get_fe_alarms(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) -{ - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_GET_FE_ALARMS; - - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return tdm_api->wp_tdm_cmd.fe_alarms; -} -#endif - -#endif /* WANPIPE_TDM_API */ diff --git a/api/libsangoma/Makefile b/api/libsangoma/Makefile index a189704..77aa14e 100644 --- a/api/libsangoma/Makefile +++ b/api/libsangoma/Makefile @@ -112,14 +112,14 @@ DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print -ACLOCAL = ${SHELL} /root/2.3.4/wanpipe/api/libsangoma/missing --run aclocal-1.9 +ACLOCAL = ${SHELL} /root/3.1.X/wanpipe/api/libsangoma/missing --run aclocal-1.9 AMDEP_FALSE = # AMDEP_TRUE = -AMTAR = ${SHELL} /root/2.3.4/wanpipe/api/libsangoma/missing --run tar +AMTAR = ${SHELL} /root/3.1.X/wanpipe/api/libsangoma/missing --run tar AR = ar -AUTOCONF = ${SHELL} /root/2.3.4/wanpipe/api/libsangoma/missing --run autoconf -AUTOHEADER = ${SHELL} /root/2.3.4/wanpipe/api/libsangoma/missing --run autoheader -AUTOMAKE = ${SHELL} /root/2.3.4/wanpipe/api/libsangoma/missing --run automake-1.9 +AUTOCONF = ${SHELL} /root/3.1.X/wanpipe/api/libsangoma/missing --run autoconf +AUTOHEADER = ${SHELL} /root/3.1.X/wanpipe/api/libsangoma/missing --run autoheader +AUTOMAKE = ${SHELL} /root/3.1.X/wanpipe/api/libsangoma/missing --run automake-1.9 AWK = gawk CC = gcc CCDEPMODE = depmode=gcc3 @@ -139,7 +139,7 @@ ECHO_N = -n ECHO_T = EGREP = grep -E EXEEXT = -F77 = f95 +F77 = g77 FFLAGS = -g -O2 INSTALL_DATA = ${INSTALL} -m 644 INSTALL_PROGRAM = ${INSTALL} @@ -153,7 +153,7 @@ LIBS = LIBTOOL = $(SHELL) $(top_builddir)/libtool LN_S = ln -s LTLIBOBJS = -MAKEINFO = ${SHELL} /root/2.3.4/wanpipe/api/libsangoma/missing --run makeinfo +MAKEINFO = ${SHELL} /root/3.1.X/wanpipe/api/libsangoma/missing --run makeinfo OBJEXT = o PACKAGE = libsangoma PACKAGE_BUGREPORT = anthmct@yahoo.com @@ -170,7 +170,7 @@ VERSION = 1.0.0 ac_ct_AR = ar ac_ct_CC = gcc ac_ct_CXX = g++ -ac_ct_F77 = f95 +ac_ct_F77 = g77 ac_ct_RANLIB = ranlib ac_ct_STRIP = strip am__fastdepCC_FALSE = # @@ -197,7 +197,7 @@ host_os = linux-gnu host_vendor = pc includedir = ${prefix}/include infodir = ${prefix}/info -install_sh = /root/2.3.4/wanpipe/api/libsangoma/install-sh +install_sh = /root/3.1.X/wanpipe/api/libsangoma/install-sh libdir = ${exec_prefix}/lib libexecdir = ${exec_prefix}/libexec libpripath = @@ -205,15 +205,14 @@ localstatedir = ${prefix}/var mandir = ${prefix}/man mkdir_p = mkdir -p -- oldincludedir = /usr/include -prefix = /usr/include +prefix = /root/3.1.X/wanpipe/rpmbuild/usr/include program_transform_name = s,x,x, sbindir = ${exec_prefix}/sbin sharedstatedir = ${prefix}/com sysconfdir = ${prefix}/etc target_alias = KINC = /lib/modules/$(shell uname -r)/build -WINC = ../../patches/kdrivers/include -AM_CFLAGS = -fPIC -Wall -Wstrict-prototypes -Wmissing-prototypes -g -I$(WINC) -I$(KINC)/include -I. \ +AM_CFLAGS = -fPIC -Wall -Wstrict-prototypes -Wmissing-prototypes -g -I$(KINC)/include -I. \ -D__LINUX__ -D_REENTRANT -D_GNU_SOURCE -O2 -D_DEBUG_=2 -D_GNUC_ -I../lib -I$(KINC)/include LIB_SOURCES = libsangoma.c libsangoma.h $(am__append_1) diff --git a/api/libsangoma/Makefile.am b/api/libsangoma/Makefile.am index 1d5ee14..6eb81c3 100644 --- a/api/libsangoma/Makefile.am +++ b/api/libsangoma/Makefile.am @@ -1,8 +1,7 @@ KINC=/lib/modules/$(shell uname -r)/build -WINC=../../patches/kdrivers/include -AM_CFLAGS = -fPIC -Wall -Wstrict-prototypes -Wmissing-prototypes -g -I$(WINC) -I$(KINC)/include -I. \ +AM_CFLAGS = -fPIC -Wall -Wstrict-prototypes -Wmissing-prototypes -g -I$(KINC)/include -I. \ -D__LINUX__ -D_REENTRANT -D_GNU_SOURCE -O2 -D_DEBUG_=2 -D_GNUC_ -I../lib -I$(KINC)/include LIB_SOURCES = libsangoma.c libsangoma.h diff --git a/api/libsangoma/Makefile.in b/api/libsangoma/Makefile.in index 41ebb2c..c6da88d 100644 --- a/api/libsangoma/Makefile.in +++ b/api/libsangoma/Makefile.in @@ -212,8 +212,7 @@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ KINC = /lib/modules/$(shell uname -r)/build -WINC = ../../patches/kdrivers/include -AM_CFLAGS = -fPIC -Wall -Wstrict-prototypes -Wmissing-prototypes -g -I$(WINC) -I$(KINC)/include -I. \ +AM_CFLAGS = -fPIC -Wall -Wstrict-prototypes -Wmissing-prototypes -g -I$(KINC)/include -I. \ -D__LINUX__ -D_REENTRANT -D_GNU_SOURCE -O2 -D_DEBUG_=2 -D_GNUC_ -I../lib -I$(KINC)/include LIB_SOURCES = libsangoma.c libsangoma.h $(am__append_1) diff --git a/api/libsangoma/autom4te.cache/output.0 b/api/libsangoma/autom4te.cache/output.0 deleted file mode 100644 index 79d3a46..0000000 --- a/api/libsangoma/autom4te.cache/output.0 +++ /dev/null @@ -1,21038 +0,0 @@ -@%:@! /bin/sh -@%:@ Guess values for system-dependent variables and create Makefiles. -@%:@ Generated by GNU Autoconf 2.59 for libsangoma 1.0.0. -@%:@ -@%:@ Report bugs to . -@%:@ -@%:@ Copyright (C) 2003 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 -DUALCASE=1; export DUALCASE # for MKS sh - -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/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 -z "`(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 - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_executable_p="test -f" - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval 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="eval 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='libsangoma' -PACKAGE_TARNAME='libsangoma' -PACKAGE_VERSION='1.0.0' -PACKAGE_STRING='libsangoma 1.0.0' -PACKAGE_BUGREPORT='anthmct@yahoo.com' - -# 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 INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE build build_cpu build_vendor build_os host host_cpu host_vendor host_os EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL LIBPRI_TRUE LIBPRI_FALSE libpripath LIB@&t@OBJS 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_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_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_CPP_set=${CPP+set} -ac_env_CPP_value=$CPP -ac_cv_env_CPP_set=${CPP+set} -ac_cv_env_CPP_value=$CPP -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_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 libsangoma 1.0.0 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 - case $ac_init_help in - short | recursive ) echo "Configuration of libsangoma 1.0.0:";; - esac - 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 build - --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@:>@ - --with-libpri= enable pri support - -Some influential environment variables: - CC C compiler command - CFLAGS 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 - CPP C preprocessor - CXX C++ compiler command - CXXFLAGS C++ compiler flags - 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. - -Report bugs to . -_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 - -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac - - 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 -libsangoma configure 1.0.0 -generated by GNU Autoconf 2.59 - -Copyright (C) 2003 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 libsangoma $as_me 1.0.0, which was -generated by GNU Autoconf 2.59. 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - -am__api_version="1.9" -ac_aux_dir= -for ac_dir in $srcdir $srcdir/.. $srcdir/../..; 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 $srcdir $srcdir/.. $srcdir/../.." >&5 -echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&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. - -# 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" -# OS/2's system install, which has a completely different semantic -# ./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/* | \ - ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ - /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 - -if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then - # We used to keeping the `.' as first argument, in order to - # allow $(mkdir_p) to be used without argument. As in - # $(mkdir_p) $(somedir) - # where $(somedir) is conditionally defined. However this is wrong - # for two reasons: - # 1. if the package is installed by a user who cannot write `.' - # make install will fail, - # 2. the above comment should most certainly read - # $(mkdir_p) $(DESTDIR)$(somedir) - # so it does not work when $(somedir) is undefined and - # $(DESTDIR) is not. - # To support the latter case, we have to write - # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), - # so the `.' trick is pointless. - mkdir_p='mkdir -p --' -else - # On NextStep and OpenStep, the `mkdir' command does not - # recognize any option. It will interpret all options as - # directories to create, and then abort because `.' already - # exists. - for d in ./-p ./--version; - do - test -d $d && rmdir $d - done - # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. - if test -f "$ac_aux_dir/mkinstalldirs"; then - mkdir_p='$(mkinstalldirs)' - else - mkdir_p='$(install_sh) -d' - fi -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=libsangoma - VERSION=1.0.0 - - -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"} - -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. -# Always define AMTAR for backward compatibility. - -AMTAR=${AMTAR-"${am_missing_run}tar"} - -am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' - - - - - -# Checks for programs. -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); } - -cat >conftest.$ac_ext <<_ACEOF -/* 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 file name" >&5 -echo $ECHO_N "checking for C compiler default output file name... $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 -/* 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_c_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std1 is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std1. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err conftest.$ac_objext conftest.$ac_ext - cat >conftest.$ac_ext <<_ACEOF -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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.err 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 -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="$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 - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch 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 - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' 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 - - -# 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/'` - - -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 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 - -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*) - # func_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='func_win32_libid' - ;; - -mingw* | pw32*) - # Base MSYS/MinGW do not provide the 'file' command needed by - # func_win32_libid shell function, so use a weaker test based on 'objdump'. - lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' - lt_cv_file_magic_cmd='$OBJDUMP -f' - ;; - -darwin* | rhapsody*) - 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 $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; - esac - lt_cv_deplibs_check_method=pass_all - ;; - -# This must be Linux ELF. -linux*) - case $host_cpu in - alpha*|hppa*|i*86|ia64*|m68*|mips*|powerpc*|sparc*|s390*|sh*|x86_64*) - lt_cv_deplibs_check_method=pass_all ;; - *) - # glibc up to 2.1.1 does not perform some relocations on ARM - # this will be overridden with pass_all, but let us keep it just in case - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; - esac - lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` - lt_cv_deplibs_check_method=pass_all - ;; - -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*) - lt_cv_deplibs_check_method=pass_all - ;; - -sco3.2v5*) - lt_cv_deplibs_check_method=pass_all - ;; - -solaris*) - lt_cv_deplibs_check_method=pass_all - ;; - -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 __oline__ "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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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 - ac_cpp_err=$ac_cpp_err$ac_c_werror_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 -/* 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 - ac_cpp_err=$ac_cpp_err$ac_c_werror_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 -/* 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 - ac_cpp_err=$ac_cpp_err$ac_c_werror_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 -/* 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 - ac_cpp_err=$ac_cpp_err$ac_c_werror_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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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 -/* 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 -/* 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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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 - ac_cpp_err=$ac_cpp_err$ac_c_werror_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:$ac_c_preproc_warn_flag 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 compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - 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: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&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;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX -@%:@@%:@ -------------------------------- @%:@@%:@ -@%:@@%:@ Report this to anthmct@yahoo.com @%:@@%:@ -@%:@@%:@ -------------------------------- @%:@@%:@ -_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 -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); } - -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 -/* 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>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); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err conftest.$ac_objext conftest.$ac_ext - cat >conftest.$ac_ext <<_ACEOF -/* 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>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); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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=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 - -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 - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch 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 - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' 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 - - -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 -/* 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 - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_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 -/* 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 - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_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 -/* 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 - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_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 -/* 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 - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_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 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran - 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 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran -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:__oline__:" \ - "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); } -rm -f a.out - -# If we don't use `.F' as extension, the preprocessor is not run on the -# input file. (Note that this only needs to work for GNU compilers.) -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>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); } && - { ac_try='test -z "$ac_f77_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -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>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); } && - { ac_try='test -z "$ac_f77_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 "x$ac_cv_f77_compiler_gnu" = xyes; then - FFLAGS="-g -O2" - else - FFLAGS="-g" - fi -else - if test "x$ac_cv_f77_compiler_gnu" = xyes; then - FFLAGS="-O2" - else - FFLAGS= - fi -fi - -G77=`test $ac_compiler_gnu = yes && echo yes` -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 - teststring="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$teststring" 2>/dev/null` \ - = "XX$teststring") >/dev/null 2>&1 && - new_result=`expr "X$teststring" : ".*" 2>&1` && - lt_cv_sys_max_cmd_len=$new_result && - test $i != 17 # 1/2 MB should be enough - do - i=`expr $i + 1` - teststring=$teststring$teststring - done - teststring= - # 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=no -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 - - - -## CAVEAT EMPTOR: -## There is no encapsulation within the following macros, do not change -## the running order or otherwise move them around unless you know exactly -## what you are doing... - -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:__oline__: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:__oline__: \$? = $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:__oline__: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:__oline__: \$? = $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 - - 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\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:__oline__: \$? = $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 | grep ': 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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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_cmds=".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_cmds=".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_cmds=".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_cmds='$(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_cmds='.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_cmds='.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_cmds='.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 - - # find out which ABI we are using - libsuff= - case "$host_cpu" in - x86_64*|s390x*|powerpc64*) - echo '#line __oline__ "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 - case `/usr/bin/file conftest.$ac_objext` in - *64-bit*) - libsuff=64 - sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" - ;; - esac - fi - rm -rf conftest* - ;; - esac - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" - fi - - # 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' - ;; - -knetbsd*-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' - ;; - -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}${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=yes - 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_cmds=".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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define shl_load to an innocuous variant, in case declares shl_load. - For example, HP-UX 11i declares gettimeofday. */ -#define shl_load innocuous_shl_load - -/* 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 - -#undef shl_load - -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define dlopen to an innocuous variant, in case declares dlopen. - For example, HP-UX 11i declares gettimeofday. */ -#define dlopen innocuous_dlopen - -/* 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 - -#undef dlopen - -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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* | aix5*) - 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_cmds='$shrext_cmds' - -# 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 -/* 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>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); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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) | 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 - 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" - -## CAVEAT EMPTOR: -## There is no encapsulation within the following macros, do not change -## the running order or otherwise move them around unless you know exactly -## what you are doing... - -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:__oline__: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:__oline__: \$? = $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 - - 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\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:__oline__: \$? = $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_cmds=".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_cmds=".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_cmds='$(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_cmds='.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_cmds='.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_cmds='.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 - - # find out which ABI we are using - libsuff= - case "$host_cpu" in - x86_64*|s390x*|powerpc64*) - echo '#line __oline__ "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 - case `/usr/bin/file conftest.$ac_objext` in - *64-bit*) - libsuff=64 - sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" - ;; - esac - fi - rm -rf conftest* - ;; - esac - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" - fi - - # 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' - ;; - -knetbsd*-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' - ;; - -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}${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=yes - 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_cmds=".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 -/* 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>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); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define shl_load to an innocuous variant, in case declares shl_load. - For example, HP-UX 11i declares gettimeofday. */ -#define shl_load innocuous_shl_load - -/* 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 - -#undef shl_load - -/* 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>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); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define dlopen to an innocuous variant, in case declares dlopen. - For example, HP-UX 11i declares gettimeofday. */ -#define dlopen innocuous_dlopen - -/* 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 - -#undef dlopen - -/* 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>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); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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_cmds='$shrext_cmds' - -# 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* | aix5*) - 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:__oline__: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:__oline__: \$? = $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 - - 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\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:__oline__: \$? = $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 | grep ': 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>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); } && - { ac_try='test -z "$ac_f77_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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>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); } && - { ac_try='test -z "$ac_f77_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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_cmds=".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_cmds=".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_cmds=".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_cmds='$(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_cmds='.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_cmds='.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_cmds='.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 - - # find out which ABI we are using - libsuff= - case "$host_cpu" in - x86_64*|s390x*|powerpc64*) - echo '#line __oline__ "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 - case `/usr/bin/file conftest.$ac_objext` in - *64-bit*) - libsuff=64 - sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" - ;; - esac - fi - rm -rf conftest* - ;; - esac - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" - fi - - # 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' - ;; - -knetbsd*-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' - ;; - -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}${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=yes - 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_cmds=".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_cmds='$shrext_cmds' - -# 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 - -## CAVEAT EMPTOR: -## There is no encapsulation within the following macros, do not change -## the running order or otherwise move them around unless you know exactly -## what you are doing... - -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:__oline__: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:__oline__: \$? = $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:__oline__: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:__oline__: \$? = $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 - - 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\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:__oline__: \$? = $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 | grep ': 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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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_cmds=".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_cmds=".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_cmds=".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_cmds='$(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_cmds='.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_cmds='.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_cmds='.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 - - # find out which ABI we are using - libsuff= - case "$host_cpu" in - x86_64*|s390x*|powerpc64*) - echo '#line __oline__ "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 - case `/usr/bin/file conftest.$ac_objext` in - *64-bit*) - libsuff=64 - sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" - ;; - esac - fi - rm -rf conftest* - ;; - esac - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" - fi - - # 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' - ;; - -knetbsd*-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' - ;; - -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}${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=yes - 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_cmds=".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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define shl_load to an innocuous variant, in case declares shl_load. - For example, HP-UX 11i declares gettimeofday. */ -#define shl_load innocuous_shl_load - -/* 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 - -#undef shl_load - -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define dlopen to an innocuous variant, in case declares dlopen. - For example, HP-UX 11i declares gettimeofday. */ -#define dlopen innocuous_dlopen - -/* 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 - -#undef dlopen - -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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_cmds='$shrext_cmds' - -# 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_cmds='$shrext_cmds' - -# 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 - - - - - - - - - - - - - - - - - - - - -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 - -# Checks for libraries. - - - - - - - - - - -for ac_header in fcntl.h netinet/in.h stdlib.h string.h sys/ioctl.h sys/socket.h sys/time.h unistd.h math.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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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 - ac_cpp_err=$ac_cpp_err$ac_c_werror_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:$ac_c_preproc_warn_flag 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 compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - 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: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&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;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX -@%:@@%:@ -------------------------------- @%:@@%:@ -@%:@@%:@ Report this to anthmct@yahoo.com @%:@@%:@ -@%:@@%:@ -------------------------------- @%:@@%:@ -_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 - - - -# Check whether --with-libpri or --without-libpri was given. -if test "${with_libpri+set}" = set; then - withval="$with_libpri" - libpripath="$withval" -fi; - - - -if test -d "$libpripath" ; then - LIBPRI_TRUE= - LIBPRI_FALSE='#' -else - LIBPRI_TRUE='#' - LIBPRI_FALSE= -fi - - - -# Checks for typedefs, structures, and compiler characteristics. -echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5 -echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6 -if test "${ac_cv_header_time+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include - -int -main () -{ -if ((struct tm *) 0) -return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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_time=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_header_time=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5 -echo "${ECHO_T}$ac_cv_header_time" >&6 -if test $ac_cv_header_time = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define TIME_WITH_SYS_TIME 1 -_ACEOF - -fi - - -# Checks for library functions. - - -for ac_header in sys/select.h sys/socket.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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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 - ac_cpp_err=$ac_cpp_err$ac_c_werror_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:$ac_c_preproc_warn_flag 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 compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - 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: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&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;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX -@%:@@%:@ -------------------------------- @%:@@%:@ -@%:@@%:@ Report this to anthmct@yahoo.com @%:@@%:@ -@%:@@%:@ -------------------------------- @%:@@%:@ -_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 - -echo "$as_me:$LINENO: checking types of arguments for select" >&5 -echo $ECHO_N "checking types of arguments for select... $ECHO_C" >&6 -if test "${ac_cv_func_select_args+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - for ac_arg234 in 'fd_set *' 'int *' 'void *'; do - for ac_arg1 in 'int' 'size_t' 'unsigned long' 'unsigned'; do - for ac_arg5 in 'struct timeval *' 'const struct timeval *'; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#if HAVE_SYS_SELECT_H -# include -#endif -#if HAVE_SYS_SOCKET_H -# include -#endif - -int -main () -{ -extern int select ($ac_arg1, - $ac_arg234, $ac_arg234, $ac_arg234, - $ac_arg5); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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_func_select_args="$ac_arg1,$ac_arg234,$ac_arg5"; break 3 -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - done - done -done -# Provide a safe default value. -: ${ac_cv_func_select_args='int,int *,struct timeval *'} - -fi -echo "$as_me:$LINENO: result: $ac_cv_func_select_args" >&5 -echo "${ECHO_T}$ac_cv_func_select_args" >&6 -ac_save_IFS=$IFS; IFS=',' -set dummy `echo "$ac_cv_func_select_args" | sed 's/\*/\*/g'` -IFS=$ac_save_IFS -shift - -cat >>confdefs.h <<_ACEOF -@%:@define SELECT_TYPE_ARG1 $1 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -@%:@define SELECT_TYPE_ARG234 ($2) -_ACEOF - - -cat >>confdefs.h <<_ACEOF -@%:@define SELECT_TYPE_ARG5 ($3) -_ACEOF - -rm -f conftest* - - - - - -for ac_func in gettimeofday memset select socket -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* 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 $ac_func (); -/* 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_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != $ac_func; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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 - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_var=no" -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -@%:@define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - ac_config_files="$ac_config_files Makefile" - -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 - -# Transform confdefs.h into DEFS. -# Protect against shell expansion while executing Makefile rules. -# Protect against Makefile macro expansion. -# -# If the first sed substitution is executed (which looks for macros that -# take arguments), then we branch to the quote section. Otherwise, -# look for a macro that doesn't take arguments. -cat >confdef2opt.sed <<\_ACEOF -t clear -: clear -s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g -t quote -s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g -t quote -d -: quote -s,[ `~#$^&*(){}\\|;'"<>?],\\&,g -s,\[,\\&,g -s,\],\\&,g -s,\$,$$,g -p -_ACEOF -# We use echo to avoid assuming a particular line-breaking character. -# The extra dot is to prevent the shell from consuming trailing -# line-breaks from the sub-command output. A line-break within -# single-quotes doesn't work because, if this script is created in a -# platform that uses two characters for line-breaks (e.g., DOS), tr -# would break. -ac_LF_and_DOT=`echo; echo .` -DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'` -rm -f confdef2opt.sed - - -ac_libobjs= -ac_ltlibobjs= -for ac_i in : $LIB@&t@OBJS; 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 -LIB@&t@OBJS=$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__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 -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 "${LIBPRI_TRUE}" && test -z "${LIBPRI_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"LIBPRI\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"LIBPRI\" 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 -DUALCASE=1; export DUALCASE # for MKS sh - -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/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 -z "`(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 - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_executable_p="test -f" - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval 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="eval 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 libsangoma $as_me 1.0.0, which was -generated by GNU Autoconf 2.59. 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 - -Configuration files: -$config_files - -Configuration commands: -$config_commands - -Report bugs to ." -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF -ac_cs_version="\\ -libsangoma config.status 1.0.0 -configured by $0, generated by GNU Autoconf 2.59, - with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" - -Copyright (C) 2003 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" ;; - "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; - *) { { 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_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,@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,@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,@mkdir_p@,$mkdir_p,;t t -s,@AWK@,$AWK,;t t -s,@SET_MAKE@,$SET_MAKE,;t t -s,@am__leading_dot@,$am__leading_dot,;t t -s,@AMTAR@,$AMTAR,;t t -s,@am__tar@,$am__tar,;t t -s,@am__untar@,$am__untar,;t t -s,@CC@,$CC,;t t -s,@CFLAGS@,$CFLAGS,;t t -s,@LDFLAGS@,$LDFLAGS,;t t -s,@CPPFLAGS@,$CPPFLAGS,;t t -s,@ac_ct_CC@,$ac_ct_CC,;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,@CCDEPMODE@,$CCDEPMODE,;t t -s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t -s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;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,@EGREP@,$EGREP,;t t -s,@LN_S@,$LN_S,;t t -s,@ECHO@,$ECHO,;t t -s,@AR@,$AR,;t t -s,@ac_ct_AR@,$ac_ct_AR,;t t -s,@RANLIB@,$RANLIB,;t t -s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t -s,@CPP@,$CPP,;t t -s,@CXX@,$CXX,;t t -s,@CXXFLAGS@,$CXXFLAGS,;t t -s,@ac_ct_CXX@,$ac_ct_CXX,;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,@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,@LIBPRI_TRUE@,$LIBPRI_TRUE,;t t -s,@LIBPRI_FALSE@,$LIBPRI_FALSE,;t t -s,@libpripath@,$libpripath,;t t -s,@LIB@&t@OBJS@,$LIB@&t@OBJS,;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 - -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac - - - 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_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'` - { 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 - -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac - - - { 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 - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. 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 " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/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 - ;; - 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 - diff --git a/api/libsangoma/autom4te.cache/output.1 b/api/libsangoma/autom4te.cache/output.1 deleted file mode 100644 index f74790b..0000000 --- a/api/libsangoma/autom4te.cache/output.1 +++ /dev/null @@ -1,21026 +0,0 @@ -@%:@! /bin/sh -@%:@ Guess values for system-dependent variables and create Makefiles. -@%:@ Generated by GNU Autoconf 2.59 for libsangoma 1.0.0. -@%:@ -@%:@ Report bugs to . -@%:@ -@%:@ Copyright (C) 2003 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 -DUALCASE=1; export DUALCASE # for MKS sh - -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/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 -z "`(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 - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_executable_p="test -f" - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval 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="eval 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='libsangoma' -PACKAGE_TARNAME='libsangoma' -PACKAGE_VERSION='1.0.0' -PACKAGE_STRING='libsangoma 1.0.0' -PACKAGE_BUGREPORT='anthmct@yahoo.com' - -# 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 INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE build build_cpu build_vendor build_os host host_cpu host_vendor host_os EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL LIBPRI_TRUE LIBPRI_FALSE libpripath LIB@&t@OBJS 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_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_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_CPP_set=${CPP+set} -ac_env_CPP_value=$CPP -ac_cv_env_CPP_set=${CPP+set} -ac_cv_env_CPP_value=$CPP -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_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 libsangoma 1.0.0 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 - case $ac_init_help in - short | recursive ) echo "Configuration of libsangoma 1.0.0:";; - esac - 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 build - --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@:>@ - --with-libpri= enable pri support - -Some influential environment variables: - CC C compiler command - CFLAGS 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 - CPP C preprocessor - CXX C++ compiler command - CXXFLAGS C++ compiler flags - 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. - -Report bugs to . -_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 - -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac - - 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 -libsangoma configure 1.0.0 -generated by GNU Autoconf 2.59 - -Copyright (C) 2003 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 libsangoma $as_me 1.0.0, which was -generated by GNU Autoconf 2.59. 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - -am__api_version="1.9" -ac_aux_dir= -for ac_dir in $srcdir $srcdir/.. $srcdir/../..; 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 $srcdir $srcdir/.. $srcdir/../.." >&5 -echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&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. - -# 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" -# OS/2's system install, which has a completely different semantic -# ./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/* | \ - ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ - /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 - -if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then - # We used to keeping the `.' as first argument, in order to - # allow $(mkdir_p) to be used without argument. As in - # $(mkdir_p) $(somedir) - # where $(somedir) is conditionally defined. However this is wrong - # for two reasons: - # 1. if the package is installed by a user who cannot write `.' - # make install will fail, - # 2. the above comment should most certainly read - # $(mkdir_p) $(DESTDIR)$(somedir) - # so it does not work when $(somedir) is undefined and - # $(DESTDIR) is not. - # To support the latter case, we have to write - # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), - # so the `.' trick is pointless. - mkdir_p='mkdir -p --' -else - # On NextStep and OpenStep, the `mkdir' command does not - # recognize any option. It will interpret all options as - # directories to create, and then abort because `.' already - # exists. - for d in ./-p ./--version; - do - test -d $d && rmdir $d - done - # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. - if test -f "$ac_aux_dir/mkinstalldirs"; then - mkdir_p='$(mkinstalldirs)' - else - mkdir_p='$(install_sh) -d' - fi -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=libsangoma - VERSION=1.0.0 - - -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"} - -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. -# Always define AMTAR for backward compatibility. - -AMTAR=${AMTAR-"${am_missing_run}tar"} - -am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' - - - - - -# Checks for programs. -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); } - -cat >conftest.$ac_ext <<_ACEOF -/* 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 file name" >&5 -echo $ECHO_N "checking for C compiler default output file name... $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 -/* 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_c_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std1 is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std1. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err conftest.$ac_objext conftest.$ac_ext - cat >conftest.$ac_ext <<_ACEOF -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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.err 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 -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="$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 - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch 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 - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' 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 - - -# 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/'` - - -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 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 - -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*) - # func_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='func_win32_libid' - ;; - -mingw* | pw32*) - # Base MSYS/MinGW do not provide the 'file' command needed by - # func_win32_libid shell function, so use a weaker test based on 'objdump'. - lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' - lt_cv_file_magic_cmd='$OBJDUMP -f' - ;; - -darwin* | rhapsody*) - 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 $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; - esac - lt_cv_deplibs_check_method=pass_all - ;; - -# This must be Linux ELF. -linux*) - case $host_cpu in - alpha*|hppa*|i*86|ia64*|m68*|mips*|powerpc*|sparc*|s390*|sh*|x86_64*) - lt_cv_deplibs_check_method=pass_all ;; - *) - # glibc up to 2.1.1 does not perform some relocations on ARM - # this will be overridden with pass_all, but let us keep it just in case - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; - esac - lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` - lt_cv_deplibs_check_method=pass_all - ;; - -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*) - lt_cv_deplibs_check_method=pass_all - ;; - -sco3.2v5*) - lt_cv_deplibs_check_method=pass_all - ;; - -solaris*) - lt_cv_deplibs_check_method=pass_all - ;; - -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 __oline__ "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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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 - ac_cpp_err=$ac_cpp_err$ac_c_werror_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 -/* 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 - ac_cpp_err=$ac_cpp_err$ac_c_werror_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 -/* 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 - ac_cpp_err=$ac_cpp_err$ac_c_werror_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 -/* 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 - ac_cpp_err=$ac_cpp_err$ac_c_werror_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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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 -/* 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 -/* 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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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 - ac_cpp_err=$ac_cpp_err$ac_c_werror_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:$ac_c_preproc_warn_flag 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 compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - 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: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&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;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX -@%:@@%:@ -------------------------------- @%:@@%:@ -@%:@@%:@ Report this to anthmct@yahoo.com @%:@@%:@ -@%:@@%:@ -------------------------------- @%:@@%:@ -_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 -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); } - -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 -/* 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>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); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err conftest.$ac_objext conftest.$ac_ext - cat >conftest.$ac_ext <<_ACEOF -/* 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>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); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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=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 - -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 - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch 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 - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' 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 - - -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 -/* 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 - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_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 -/* 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 - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_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 -/* 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 - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_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 -/* 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 - ac_cpp_err=$ac_cpp_err$ac_cxx_werror_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 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran - 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 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran -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:__oline__:" \ - "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); } -rm -f a.out - -# If we don't use `.F' as extension, the preprocessor is not run on the -# input file. (Note that this only needs to work for GNU compilers.) -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>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); } && - { ac_try='test -z "$ac_f77_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -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>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); } && - { ac_try='test -z "$ac_f77_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 "x$ac_cv_f77_compiler_gnu" = xyes; then - FFLAGS="-g -O2" - else - FFLAGS="-g" - fi -else - if test "x$ac_cv_f77_compiler_gnu" = xyes; then - FFLAGS="-O2" - else - FFLAGS= - fi -fi - -G77=`test $ac_compiler_gnu = yes && echo yes` -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 - teststring="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$teststring" 2>/dev/null` \ - = "XX$teststring") >/dev/null 2>&1 && - new_result=`expr "X$teststring" : ".*" 2>&1` && - lt_cv_sys_max_cmd_len=$new_result && - test $i != 17 # 1/2 MB should be enough - do - i=`expr $i + 1` - teststring=$teststring$teststring - done - teststring= - # 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=no -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:__oline__: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:__oline__: \$? = $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:__oline__: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:__oline__: \$? = $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 - - 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\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:__oline__: \$? = $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 | grep ': 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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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_cmds=".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_cmds=".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_cmds=".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_cmds='$(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_cmds='.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_cmds='.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_cmds='.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 - - # find out which ABI we are using - libsuff= - case "$host_cpu" in - x86_64*|s390x*|powerpc64*) - echo '#line __oline__ "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 - case `/usr/bin/file conftest.$ac_objext` in - *64-bit*) - libsuff=64 - sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" - ;; - esac - fi - rm -rf conftest* - ;; - esac - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" - fi - - # 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' - ;; - -knetbsd*-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' - ;; - -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}${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=yes - 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_cmds=".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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define shl_load to an innocuous variant, in case declares shl_load. - For example, HP-UX 11i declares gettimeofday. */ -#define shl_load innocuous_shl_load - -/* 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 - -#undef shl_load - -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define dlopen to an innocuous variant, in case declares dlopen. - For example, HP-UX 11i declares gettimeofday. */ -#define dlopen innocuous_dlopen - -/* 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 - -#undef dlopen - -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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* | aix5*) - 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_cmds='$shrext_cmds' - -# 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 -/* 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>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); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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) | 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 - 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:__oline__: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:__oline__: \$? = $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 - - 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\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:__oline__: \$? = $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_cmds=".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_cmds=".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_cmds='$(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_cmds='.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_cmds='.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_cmds='.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 - - # find out which ABI we are using - libsuff= - case "$host_cpu" in - x86_64*|s390x*|powerpc64*) - echo '#line __oline__ "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 - case `/usr/bin/file conftest.$ac_objext` in - *64-bit*) - libsuff=64 - sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" - ;; - esac - fi - rm -rf conftest* - ;; - esac - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" - fi - - # 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' - ;; - -knetbsd*-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' - ;; - -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}${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=yes - 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_cmds=".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 -/* 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>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); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define shl_load to an innocuous variant, in case declares shl_load. - For example, HP-UX 11i declares gettimeofday. */ -#define shl_load innocuous_shl_load - -/* 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 - -#undef shl_load - -/* 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>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); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define dlopen to an innocuous variant, in case declares dlopen. - For example, HP-UX 11i declares gettimeofday. */ -#define dlopen innocuous_dlopen - -/* 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 - -#undef dlopen - -/* 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>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); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_cxx_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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_cmds='$shrext_cmds' - -# 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* | aix5*) - 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:__oline__: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:__oline__: \$? = $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 - - 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\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:__oline__: \$? = $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 | grep ': 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>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); } && - { ac_try='test -z "$ac_f77_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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>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); } && - { ac_try='test -z "$ac_f77_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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_cmds=".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_cmds=".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_cmds=".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_cmds='$(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_cmds='.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_cmds='.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_cmds='.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 - - # find out which ABI we are using - libsuff= - case "$host_cpu" in - x86_64*|s390x*|powerpc64*) - echo '#line __oline__ "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 - case `/usr/bin/file conftest.$ac_objext` in - *64-bit*) - libsuff=64 - sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" - ;; - esac - fi - rm -rf conftest* - ;; - esac - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" - fi - - # 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' - ;; - -knetbsd*-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' - ;; - -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}${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=yes - 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_cmds=".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_cmds='$shrext_cmds' - -# 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:__oline__: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:__oline__: \$? = $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:__oline__: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:__oline__: \$? = $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 - - 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\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:__oline__: \$? = $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 | grep ': 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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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_cmds=".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_cmds=".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_cmds=".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_cmds='$(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_cmds='.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_cmds='.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_cmds='.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 - - # find out which ABI we are using - libsuff= - case "$host_cpu" in - x86_64*|s390x*|powerpc64*) - echo '#line __oline__ "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 - case `/usr/bin/file conftest.$ac_objext` in - *64-bit*) - libsuff=64 - sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" - ;; - esac - fi - rm -rf conftest* - ;; - esac - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" - fi - - # 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' - ;; - -knetbsd*-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' - ;; - -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}${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=yes - 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_cmds=".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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define shl_load to an innocuous variant, in case declares shl_load. - For example, HP-UX 11i declares gettimeofday. */ -#define shl_load innocuous_shl_load - -/* 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 - -#undef shl_load - -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define dlopen to an innocuous variant, in case declares dlopen. - For example, HP-UX 11i declares gettimeofday. */ -#define dlopen innocuous_dlopen - -/* 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 - -#undef dlopen - -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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_cmds='$shrext_cmds' - -# 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_cmds='$shrext_cmds' - -# 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 - - - - - - - - - - - - - - - - - - - - -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 - -# Checks for libraries. - - - - - - - - - - -for ac_header in fcntl.h netinet/in.h stdlib.h string.h sys/ioctl.h sys/socket.h sys/time.h unistd.h math.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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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 - ac_cpp_err=$ac_cpp_err$ac_c_werror_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:$ac_c_preproc_warn_flag 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 compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - 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: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&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;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX -@%:@@%:@ -------------------------------- @%:@@%:@ -@%:@@%:@ Report this to anthmct@yahoo.com @%:@@%:@ -@%:@@%:@ -------------------------------- @%:@@%:@ -_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 - - - -# Check whether --with-libpri or --without-libpri was given. -if test "${with_libpri+set}" = set; then - withval="$with_libpri" - libpripath="$withval" -fi; - - - -if test -d "$libpripath" ; then - LIBPRI_TRUE= - LIBPRI_FALSE='#' -else - LIBPRI_TRUE='#' - LIBPRI_FALSE= -fi - - - -# Checks for typedefs, structures, and compiler characteristics. -echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5 -echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6 -if test "${ac_cv_header_time+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include - -int -main () -{ -if ((struct tm *) 0) -return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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_time=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_header_time=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5 -echo "${ECHO_T}$ac_cv_header_time" >&6 -if test $ac_cv_header_time = yes; then - -cat >>confdefs.h <<\_ACEOF -@%:@define TIME_WITH_SYS_TIME 1 -_ACEOF - -fi - - -# Checks for library functions. - - -for ac_header in sys/select.h sys/socket.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 -/* 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>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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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.err 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 -/* 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 - ac_cpp_err=$ac_cpp_err$ac_c_werror_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:$ac_c_preproc_warn_flag 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 compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - 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: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&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;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX -@%:@@%:@ -------------------------------- @%:@@%:@ -@%:@@%:@ Report this to anthmct@yahoo.com @%:@@%:@ -@%:@@%:@ -------------------------------- @%:@@%:@ -_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 - -echo "$as_me:$LINENO: checking types of arguments for select" >&5 -echo $ECHO_N "checking types of arguments for select... $ECHO_C" >&6 -if test "${ac_cv_func_select_args+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - for ac_arg234 in 'fd_set *' 'int *' 'void *'; do - for ac_arg1 in 'int' 'size_t' 'unsigned long' 'unsigned'; do - for ac_arg5 in 'struct timeval *' 'const struct timeval *'; do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#if HAVE_SYS_SELECT_H -# include -#endif -#if HAVE_SYS_SOCKET_H -# include -#endif - -int -main () -{ -extern int select ($ac_arg1, - $ac_arg234, $ac_arg234, $ac_arg234, - $ac_arg5); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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_func_select_args="$ac_arg1,$ac_arg234,$ac_arg5"; break 3 -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - done - done -done -# Provide a safe default value. -: ${ac_cv_func_select_args='int,int *,struct timeval *'} - -fi -echo "$as_me:$LINENO: result: $ac_cv_func_select_args" >&5 -echo "${ECHO_T}$ac_cv_func_select_args" >&6 -ac_save_IFS=$IFS; IFS=',' -set dummy `echo "$ac_cv_func_select_args" | sed 's/\*/\*/g'` -IFS=$ac_save_IFS -shift - -cat >>confdefs.h <<_ACEOF -@%:@define SELECT_TYPE_ARG1 $1 -_ACEOF - - -cat >>confdefs.h <<_ACEOF -@%:@define SELECT_TYPE_ARG234 ($2) -_ACEOF - - -cat >>confdefs.h <<_ACEOF -@%:@define SELECT_TYPE_ARG5 ($3) -_ACEOF - -rm -f conftest* - - - - - -for ac_func in gettimeofday memset select socket -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* 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 $ac_func (); -/* 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_$ac_func) || defined (__stub___$ac_func) -choke me -#else -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != $ac_func; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (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); }; } && - { 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 - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_var=no" -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -@%:@define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - ac_config_files="$ac_config_files Makefile" - -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 - -# Transform confdefs.h into DEFS. -# Protect against shell expansion while executing Makefile rules. -# Protect against Makefile macro expansion. -# -# If the first sed substitution is executed (which looks for macros that -# take arguments), then we branch to the quote section. Otherwise, -# look for a macro that doesn't take arguments. -cat >confdef2opt.sed <<\_ACEOF -t clear -: clear -s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g -t quote -s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g -t quote -d -: quote -s,[ `~#$^&*(){}\\|;'"<>?],\\&,g -s,\[,\\&,g -s,\],\\&,g -s,\$,$$,g -p -_ACEOF -# We use echo to avoid assuming a particular line-breaking character. -# The extra dot is to prevent the shell from consuming trailing -# line-breaks from the sub-command output. A line-break within -# single-quotes doesn't work because, if this script is created in a -# platform that uses two characters for line-breaks (e.g., DOS), tr -# would break. -ac_LF_and_DOT=`echo; echo .` -DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'` -rm -f confdef2opt.sed - - -ac_libobjs= -ac_ltlibobjs= -for ac_i in : $LIB@&t@OBJS; 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 -LIB@&t@OBJS=$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__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 -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 "${LIBPRI_TRUE}" && test -z "${LIBPRI_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"LIBPRI\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"LIBPRI\" 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 -DUALCASE=1; export DUALCASE # for MKS sh - -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/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 -z "`(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 - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_executable_p="test -f" - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval 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="eval 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 libsangoma $as_me 1.0.0, which was -generated by GNU Autoconf 2.59. 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 - -Configuration files: -$config_files - -Configuration commands: -$config_commands - -Report bugs to ." -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF -ac_cs_version="\\ -libsangoma config.status 1.0.0 -configured by $0, generated by GNU Autoconf 2.59, - with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" - -Copyright (C) 2003 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" ;; - "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; - *) { { 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_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,@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,@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,@mkdir_p@,$mkdir_p,;t t -s,@AWK@,$AWK,;t t -s,@SET_MAKE@,$SET_MAKE,;t t -s,@am__leading_dot@,$am__leading_dot,;t t -s,@AMTAR@,$AMTAR,;t t -s,@am__tar@,$am__tar,;t t -s,@am__untar@,$am__untar,;t t -s,@CC@,$CC,;t t -s,@CFLAGS@,$CFLAGS,;t t -s,@LDFLAGS@,$LDFLAGS,;t t -s,@CPPFLAGS@,$CPPFLAGS,;t t -s,@ac_ct_CC@,$ac_ct_CC,;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,@CCDEPMODE@,$CCDEPMODE,;t t -s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t -s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;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,@EGREP@,$EGREP,;t t -s,@LN_S@,$LN_S,;t t -s,@ECHO@,$ECHO,;t t -s,@AR@,$AR,;t t -s,@ac_ct_AR@,$ac_ct_AR,;t t -s,@RANLIB@,$RANLIB,;t t -s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t -s,@CPP@,$CPP,;t t -s,@CXX@,$CXX,;t t -s,@CXXFLAGS@,$CXXFLAGS,;t t -s,@ac_ct_CXX@,$ac_ct_CXX,;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,@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,@LIBPRI_TRUE@,$LIBPRI_TRUE,;t t -s,@LIBPRI_FALSE@,$LIBPRI_FALSE,;t t -s,@libpripath@,$libpripath,;t t -s,@LIB@&t@OBJS@,$LIB@&t@OBJS,;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 - -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac - - - 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_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'` - { 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 - -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac - - - { 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 - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. 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 " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/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 - ;; - 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 - diff --git a/api/libsangoma/autom4te.cache/requests b/api/libsangoma/autom4te.cache/requests deleted file mode 100644 index 2eec4f1..0000000 --- a/api/libsangoma/autom4te.cache/requests +++ /dev/null @@ -1,345 +0,0 @@ -# This file was generated. -# It contains the lists of macros which have been traced. -# It can be safely removed. - -@request = ( - bless( [ - '0', - 1, - [ - '/usr/share/autoconf' - ], - [ - '/usr/share/autoconf/autoconf/autoconf.m4f', - '/usr/share/aclocal/libtool.m4', - '/usr/share/aclocal-1.9/amversion.m4', - '/usr/share/aclocal-1.9/auxdir.m4', - '/usr/share/aclocal-1.9/cond.m4', - '/usr/share/aclocal-1.9/depend.m4', - '/usr/share/aclocal-1.9/depout.m4', - '/usr/share/aclocal-1.9/init.m4', - '/usr/share/aclocal-1.9/install-sh.m4', - '/usr/share/aclocal-1.9/lead-dot.m4', - '/usr/share/aclocal-1.9/make.m4', - '/usr/share/aclocal-1.9/missing.m4', - '/usr/share/aclocal-1.9/mkdirp.m4', - '/usr/share/aclocal-1.9/options.m4', - '/usr/share/aclocal-1.9/runlog.m4', - '/usr/share/aclocal-1.9/sanity.m4', - '/usr/share/aclocal-1.9/strip.m4', - '/usr/share/aclocal-1.9/tar.m4', - 'configure.in' - ], - { - 'AM_ENABLE_STATIC' => 1, - 'AC_LIBTOOL_LANG_RC_CONFIG' => 1, - 'AC_TYPE_OFF_T' => 1, - 'AC_C_VOLATILE' => 1, - 'AC_FUNC_CLOSEDIR_VOID' => 1, - '_LT_AC_SHELL_INIT' => 1, - 'AC_REPLACE_FNMATCH' => 1, - 'AC_DEFUN' => 1, - '_LT_AC_LANG_CXX_CONFIG' => 1, - 'AC_PROG_LIBTOOL' => 1, - 'AC_FUNC_STAT' => 1, - 'AM_PROG_MKDIR_P' => 1, - 'AC_FUNC_WAIT3' => 1, - 'AC_STRUCT_TM' => 1, - 'AC_FUNC_LSTAT' => 1, - 'AM_AUTOMAKE_VERSION' => 1, - 'AC_FUNC_STRTOD' => 1, - 'AC_CHECK_HEADERS' => 1, - 'AM_MISSING_PROG' => 1, - 'AC_FUNC_STRNLEN' => 1, - 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1, - 'AC_PROG_CXX' => 1, - '_LT_AC_LANG_C_CONFIG' => 1, - 'AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK' => 1, - 'AM_PROG_INSTALL_STRIP' => 1, - 'AC_PROG_AWK' => 1, - '_m4_warn' => 1, - 'AC_LIBTOOL_OBJDIR' => 1, - 'AC_HEADER_MAJOR' => 1, - 'AM_SANITY_CHECK' => 1, - 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1, - 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1, - '_LT_AC_CHECK_DLFCN' => 1, - 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1, - '_AM_PROG_TAR' => 1, - 'AC_LIBTOOL_GCJ' => 1, - 'AC_PROG_GCC_TRADITIONAL' => 1, - 'AC_LIBSOURCE' => 1, - 'AC_STRUCT_ST_BLOCKS' => 1, - 'AC_LIBTOOL_CONFIG' => 1, - '_LT_AC_LANG_F77' => 1, - 'AC_CONFIG_AUX_DIR' => 1, - 'AC_PROG_MAKE_SET' => 1, - 'sinclude' => 1, - 'AM_DISABLE_SHARED' => 1, - 'AM_PROG_LIBTOOL' => 1, - '_LT_AC_LANG_CXX' => 1, - 'AM_PROG_LD' => 1, - '_LT_AC_FILE_LTDLL_C' => 1, - 'AC_FUNC_STRERROR_R' => 1, - 'AC_FUNC_FORK' => 1, - 'AC_DECL_SYS_SIGLIST' => 1, - 'AC_FUNC_VPRINTF' => 1, - 'AU_DEFUN' => 1, - 'AC_PROG_NM' => 1, - 'AC_LIBTOOL_DLOPEN' => 1, - 'AC_PROG_LD' => 1, - 'AC_PROG_LD_GNU' => 1, - 'AC_ENABLE_FAST_INSTALL' => 1, - 'AC_INIT' => 1, - 'AC_STRUCT_TIMEZONE' => 1, - 'AC_SUBST' => 1, - 'AC_FUNC_ALLOCA' => 1, - '_AM_SET_OPTION' => 1, - 'AC_CANONICAL_HOST' => 1, - 'AC_PROG_RANLIB' => 1, - 'AC_LIBTOOL_PROG_CC_C_O' => 1, - 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1, - 'AC_FUNC_SETPGRP' => 1, - 'AC_CONFIG_SUBDIRS' => 1, - 'AC_FUNC_MMAP' => 1, - 'AC_TYPE_SIZE_T' => 1, - 'AC_CHECK_TYPES' => 1, - 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, - 'AC_CHECK_MEMBERS' => 1, - 'AC_FUNC_UTIME_NULL' => 1, - 'AC_FUNC_SELECT_ARGTYPES' => 1, - '_LT_AC_LANG_GCJ' => 1, - 'AC_HEADER_STAT' => 1, - 'AC_FUNC_STRFTIME' => 1, - 'AC_C_INLINE' => 1, - 'AC_LIBTOOL_RC' => 1, - 'AC_DISABLE_FAST_INSTALL' => 1, - '_LT_AC_PROG_ECHO_BACKSLASH' => 1, - 'AC_CONFIG_FILES' => 1, - 'include' => 1, - '_LT_AC_SYS_LIBPATH_AIX' => 1, - '_LT_AC_TRY_DLOPEN_SELF' => 1, - 'LT_AC_PROG_SED' => 1, - 'AM_ENABLE_SHARED' => 1, - 'AM_GNU_GETTEXT' => 1, - '_LT_AC_LANG_GCJ_CONFIG' => 1, - 'AC_FUNC_OBSTACK' => 1, - 'AC_CHECK_LIB' => 1, - 'AC_ENABLE_SHARED' => 1, - 'AC_FUNC_MALLOC' => 1, - 'AC_FUNC_GETGROUPS' => 1, - 'AC_FUNC_GETLOADAVG' => 1, - 'AC_FUNC_FSEEKO' => 1, - 'AC_ENABLE_STATIC' => 1, - 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1, - 'AM_PROG_CC_C_O' => 1, - '_LT_AC_TAGVAR' => 1, - 'AC_LIBTOOL_LANG_F77_CONFIG' => 1, - 'AC_FUNC_MKTIME' => 1, - 'AM_CONDITIONAL' => 1, - 'AC_HEADER_SYS_WAIT' => 1, - 'AC_PROG_LN_S' => 1, - 'AC_FUNC_MEMCMP' => 1, - 'm4_include' => 1, - 'AM_PROG_INSTALL_SH' => 1, - 'AC_HEADER_DIRENT' => 1, - 'AC_PROG_EGREP' => 1, - '_AC_AM_CONFIG_HEADER_HOOK' => 1, - 'AC_PATH_MAGIC' => 1, - 'AM_MAKE_INCLUDE' => 1, - '_LT_AC_TAGCONFIG' => 1, - 'm4_pattern_forbid' => 1, - 'AC_CONFIG_LIBOBJ_DIR' => 1, - 'AC_LIBTOOL_COMPILER_OPTION' => 1, - 'AC_DISABLE_SHARED' => 1, - 'AC_LIBTOOL_SETUP' => 1, - 'AC_LIBTOOL_WIN32_DLL' => 1, - 'AC_PROG_LD_RELOAD_FLAG' => 1, - 'AC_HEADER_TIME' => 1, - 'AC_TYPE_MODE_T' => 1, - 'AM_MISSING_HAS_RUN' => 1, - 'AC_FUNC_GETMNTENT' => 1, - 'm4_sinclude' => 1, - 'AC_LIBTOOL_DLOPEN_SELF' => 1, - 'AC_PATH_X' => 1, - 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1, - 'AC_HEADER_STDC' => 1, - 'AC_LIBTOOL_LINKER_OPTION' => 1, - 'AC_LIBTOOL_CXX' => 1, - 'LT_AC_PROG_RC' => 1, - 'LT_AC_PROG_GCJ' => 1, - 'AC_FUNC_ERROR_AT_LINE' => 1, - 'AM_DEP_TRACK' => 1, - 'AM_DISABLE_STATIC' => 1, - 'AC_FUNC_MBRTOWC' => 1, - '_AC_PROG_LIBTOOL' => 1, - 'AC_TYPE_SIGNAL' => 1, - 'AC_TYPE_UID_T' => 1, - '_AM_IF_OPTION' => 1, - 'AC_PATH_TOOL_PREFIX' => 1, - 'AC_LIBTOOL_F77' => 1, - 'm4_pattern_allow' => 1, - 'AM_SET_LEADING_DOT' => 1, - 'AC_DEFINE_TRACE_LITERAL' => 1, - '_AM_DEPENDENCIES' => 1, - 'AC_LIBTOOL_LANG_C_CONFIG' => 1, - 'AC_PROG_CC' => 1, - '_LT_AC_SYS_COMPILER' => 1, - 'AM_PROG_NM' => 1, - 'AC_FUNC_STRCOLL' => 1, - 'AC_PROG_YACC' => 1, - 'AC_LIBLTDL_CONVENIENCE' => 1, - 'AC_DEPLIBS_CHECK_METHOD' => 1, - 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, - 'AC_LIBLTDL_INSTALLABLE' => 1, - 'AC_FUNC_CHOWN' => 1, - 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1, - 'AC_FUNC_GETPGRP' => 1, - 'AM_INIT_AUTOMAKE' => 1, - 'AC_FUNC_REALLOC' => 1, - 'AC_DISABLE_STATIC' => 1, - 'AC_CONFIG_LINKS' => 1, - 'AM_MAINTAINER_MODE' => 1, - '_LT_AC_LOCK' => 1, - '_LT_AC_LANG_RC_CONFIG' => 1, - 'AC_PROG_CPP' => 1, - 'AC_TYPE_PID_T' => 1, - 'AC_PROG_LEX' => 1, - 'AC_C_CONST' => 1, - 'AC_LIBTOOL_POSTDEP_PREDEP' => 1, - 'AC_FUNC_SETVBUF_REVERSED' => 1, - 'AC_PROG_INSTALL' => 1, - 'AM_AUX_DIR_EXPAND' => 1, - 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1, - '_LT_AC_LANG_F77_CONFIG' => 1, - '_AM_SET_OPTIONS' => 1, - 'AM_RUN_LOG' => 1, - '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, - 'AC_LIBTOOL_PICMODE' => 1, - 'AH_OUTPUT' => 1, - 'AC_CHECK_LIBM' => 1, - 'AC_LIBTOOL_SYS_LIB_STRIP' => 1, - '_AM_MANGLE_OPTION' => 1, - 'AC_CANONICAL_SYSTEM' => 1, - 'AC_CONFIG_HEADERS' => 1, - 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1, - 'AM_SET_DEPDIR' => 1, - 'AC_CHECK_FUNCS' => 1 - } - ], 'Autom4te::Request' ), - bless( [ - '1', - 1, - [ - '/usr/share/autoconf' - ], - [ - '/usr/share/autoconf/autoconf/autoconf.m4f', - 'aclocal.m4', - 'configure.in' - ], - { - '_LT_AC_TAGCONFIG' => 1, - 'm4_pattern_forbid' => 1, - 'AC_CANONICAL_TARGET' => 1, - 'AC_CONFIG_LIBOBJ_DIR' => 1, - 'AC_C_VOLATILE' => 1, - 'AC_TYPE_OFF_T' => 1, - 'AC_FUNC_CLOSEDIR_VOID' => 1, - 'AC_REPLACE_FNMATCH' => 1, - 'AC_PROG_LIBTOOL' => 1, - 'AC_FUNC_STAT' => 1, - 'AC_FUNC_WAIT3' => 1, - 'AC_HEADER_TIME' => 1, - 'AM_AUTOMAKE_VERSION' => 1, - 'AC_FUNC_LSTAT' => 1, - 'AC_STRUCT_TM' => 1, - 'AC_FUNC_GETMNTENT' => 1, - 'AC_TYPE_MODE_T' => 1, - 'AC_CHECK_HEADERS' => 1, - 'AC_FUNC_STRTOD' => 1, - 'AC_FUNC_STRNLEN' => 1, - 'm4_sinclude' => 1, - 'AC_PROG_CXX' => 1, - 'AC_PATH_X' => 1, - 'AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK' => 1, - 'AC_PROG_AWK' => 1, - '_m4_warn' => 1, - 'AC_HEADER_STDC' => 1, - 'AC_HEADER_MAJOR' => 1, - 'AC_FUNC_ERROR_AT_LINE' => 1, - 'AC_PROG_GCC_TRADITIONAL' => 1, - 'AC_LIBSOURCE' => 1, - 'AC_FUNC_MBRTOWC' => 1, - 'AC_STRUCT_ST_BLOCKS' => 1, - 'AC_CANONICAL_BUILD' => 1, - 'AC_TYPE_SIGNAL' => 1, - 'AC_TYPE_UID_T' => 1, - 'AC_CONFIG_AUX_DIR' => 1, - 'AC_PROG_MAKE_SET' => 1, - 'm4_pattern_allow' => 1, - 'sinclude' => 1, - 'AC_DEFINE_TRACE_LITERAL' => 1, - 'AC_FUNC_STRERROR_R' => 1, - 'AC_PROG_CC' => 1, - 'AC_DECL_SYS_SIGLIST' => 1, - 'AC_FUNC_FORK' => 1, - 'AC_FUNC_STRCOLL' => 1, - 'AC_FUNC_VPRINTF' => 1, - 'AC_PROG_YACC' => 1, - 'AC_STRUCT_TIMEZONE' => 1, - 'AC_INIT' => 1, - 'AC_FUNC_CHOWN' => 1, - 'AC_SUBST' => 1, - 'AC_FUNC_ALLOCA' => 1, - 'AC_CANONICAL_HOST' => 1, - 'AC_FUNC_GETPGRP' => 1, - 'AC_PROG_RANLIB' => 1, - 'AM_INIT_AUTOMAKE' => 1, - 'AC_FUNC_SETPGRP' => 1, - 'AC_CONFIG_SUBDIRS' => 1, - 'AC_FUNC_MMAP' => 1, - 'AC_FUNC_REALLOC' => 1, - 'AC_TYPE_SIZE_T' => 1, - 'AC_CONFIG_LINKS' => 1, - 'AC_CHECK_TYPES' => 1, - 'LT_SUPPORTED_TAG' => 1, - 'AC_CHECK_MEMBERS' => 1, - 'AM_MAINTAINER_MODE' => 1, - 'AC_FUNC_UTIME_NULL' => 1, - 'AC_FUNC_SELECT_ARGTYPES' => 1, - 'AC_FUNC_STRFTIME' => 1, - 'AC_HEADER_STAT' => 1, - 'AC_C_INLINE' => 1, - 'AC_PROG_CPP' => 1, - 'AM_ENABLE_MULTILIB' => 1, - 'AC_C_CONST' => 1, - 'AC_PROG_LEX' => 1, - 'AC_TYPE_PID_T' => 1, - 'AC_CONFIG_FILES' => 1, - 'include' => 1, - 'AC_FUNC_SETVBUF_REVERSED' => 1, - 'AC_PROG_INSTALL' => 1, - 'AM_GNU_GETTEXT' => 1, - 'AC_FUNC_OBSTACK' => 1, - 'AC_CHECK_LIB' => 1, - 'AC_FUNC_MALLOC' => 1, - 'AC_FUNC_GETGROUPS' => 1, - 'AC_FUNC_GETLOADAVG' => 1, - 'AH_OUTPUT' => 1, - 'AC_FUNC_FSEEKO' => 1, - 'AM_PROG_CC_C_O' => 1, - 'AC_FUNC_MKTIME' => 1, - 'AM_CONDITIONAL' => 1, - 'AC_CANONICAL_SYSTEM' => 1, - 'AC_CONFIG_HEADERS' => 1, - 'AC_HEADER_SYS_WAIT' => 1, - 'AC_FUNC_MEMCMP' => 1, - 'AC_PROG_LN_S' => 1, - 'm4_include' => 1, - 'AC_HEADER_DIRENT' => 1, - 'AC_CHECK_FUNCS' => 1 - } - ], 'Autom4te::Request' ) - ); - diff --git a/api/libsangoma/autom4te.cache/traces.0 b/api/libsangoma/autom4te.cache/traces.0 deleted file mode 100644 index 19f8f52..0000000 --- a/api/libsangoma/autom4te.cache/traces.0 +++ /dev/null @@ -1,8654 +0,0 @@ -m4trace:/usr/share/aclocal/libtool.m4:70: -1- 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 AM_PROG_GCJ so that aclocal doesn't bring it in needlessly. -dnl If either AC_PROG_GCJ or AM_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])])])]) -])]) -m4trace:/usr/share/aclocal/libtool.m4:90: -1- 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], []) -]) -m4trace:/usr/share/aclocal/libtool.m4:232: -1- 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 -]) -m4trace:/usr/share/aclocal/libtool.m4:245: -1- 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 -]) -m4trace:/usr/share/aclocal/libtool.m4:264: -1- 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 -]) -m4trace:/usr/share/aclocal/libtool.m4:275: -1- AC_DEFUN([_LT_AC_SHELL_INIT], [ifdef([AC_DIVERSION_NOTICE], - [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], - [AC_DIVERT_PUSH(NOTICE)]) -$1 -AC_DIVERT_POP -]) -m4trace:/usr/share/aclocal/libtool.m4:431: -1- 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) -])]) -m4trace:/usr/share/aclocal/libtool.m4:559: -1- 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" - -]) -m4trace:/usr/share/aclocal/libtool.m4:602: -1- 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 -]) -m4trace:/usr/share/aclocal/libtool.m4:634: -1- 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 -]) -m4trace:/usr/share/aclocal/libtool.m4:705: -1- 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 - teststring="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$teststring" 2>/dev/null` \ - = "XX$teststring") >/dev/null 2>&1 && - new_result=`expr "X$teststring" : ".*" 2>&1` && - lt_cv_sys_max_cmd_len=$new_result && - test $i != 17 # 1/2 MB should be enough - do - i=`expr $i + 1` - teststring=$teststring$teststring - done - teststring= - # 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 -]) -m4trace:/usr/share/aclocal/libtool.m4:712: -1- AC_DEFUN([_LT_AC_CHECK_DLFCN], [AC_CHECK_HEADERS(dlfcn.h)dnl -]) -m4trace:/usr/share/aclocal/libtool.m4:801: -1- 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* -]) -m4trace:/usr/share/aclocal/libtool.m4:914: -1- 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 -]) -m4trace:/usr/share/aclocal/libtool.m4:963: -1- 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 - - 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* -]) -]) -m4trace:/usr/share/aclocal/libtool.m4:990: -1- 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 -]) -m4trace:/usr/share/aclocal/libtool.m4:1007: -1- 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 -]) -m4trace:/usr/share/aclocal/libtool.m4:1048: -1- 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 -]) -m4trace:/usr/share/aclocal/libtool.m4:1077: -1- 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 -]) -m4trace:/usr/share/aclocal/libtool.m4:1642: -1- AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_MSG_CHECKING([dynamic linker characteristics]) -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext_cmds=".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_cmds=".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_cmds='$(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_cmds='.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_cmds='.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_cmds='.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 - - # find out which ABI we are using - libsuff= - case "$host_cpu" in - x86_64*|s390x*|powerpc64*) - echo '[#]line __oline__ "configure"' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.$ac_objext` in - *64-bit*) - libsuff=64 - sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" - ;; - esac - fi - rm -rf conftest* - ;; - esac - - # Append ld.so.conf contents to the search path - if test -f /etc/ld.so.conf; then - lt_ld_extra=`$SED -e 's/[:,\t]/ /g;s/=[^=]*$//;s/=[^= ]* / /g' /etc/ld.so.conf | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" - fi - - # 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' - ;; - -knetbsd*-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' - ;; - -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}${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=yes - 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_cmds=".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 -]) -m4trace:/usr/share/aclocal/libtool.m4:1741: -1- 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 -]) -m4trace:/usr/share/aclocal/libtool.m4:1749: -1- AC_DEFUN([AC_LIBTOOL_DLOPEN], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP]) -]) -m4trace:/usr/share/aclocal/libtool.m4:1757: -1- AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_BEFORE([$0], [AC_LIBTOOL_SETUP]) -]) -m4trace:/usr/share/aclocal/libtool.m4:1787: -1- 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) -]) -m4trace:/usr/share/aclocal/libtool.m4:1796: -1- AC_DEFUN([AC_DISABLE_SHARED], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl -AC_ENABLE_SHARED(no) -]) -m4trace:/usr/share/aclocal/libtool.m4:1826: -1- 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) -]) -m4trace:/usr/share/aclocal/libtool.m4:1835: -1- AC_DEFUN([AC_DISABLE_STATIC], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl -AC_ENABLE_STATIC(no) -]) -m4trace:/usr/share/aclocal/libtool.m4:1865: -1- 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) -]) -m4trace:/usr/share/aclocal/libtool.m4:1874: -1- AC_DEFUN([AC_DISABLE_FAST_INSTALL], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl -AC_ENABLE_FAST_INSTALL(no) -]) -m4trace:/usr/share/aclocal/libtool.m4:1884: -1- AC_DEFUN([AC_LIBTOOL_PICMODE], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl -pic_mode=ifelse($#,1,$1,default) -]) -m4trace:/usr/share/aclocal/libtool.m4:1962: -1- 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 -]) -m4trace:/usr/share/aclocal/libtool.m4:1977: -1- 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 -]) -m4trace:/usr/share/aclocal/libtool.m4:2062: -1- 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 $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; - esac - lt_cv_deplibs_check_method=pass_all - ;; - -# This must be Linux ELF. -linux*) - case $host_cpu in - alpha*|hppa*|i*86|ia64*|m68*|mips*|powerpc*|sparc*|s390*|sh*|x86_64*) - lt_cv_deplibs_check_method=pass_all ;; - *) - # glibc up to 2.1.1 does not perform some relocations on ARM - # this will be overridden with pass_all, but let us keep it just in case - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; - esac - lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` - lt_cv_deplibs_check_method=pass_all - ;; - -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*) - lt_cv_deplibs_check_method=pass_all - ;; - -sco3.2v5*) - lt_cv_deplibs_check_method=pass_all - ;; - -solaris*) - lt_cv_deplibs_check_method=pass_all - ;; - -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 -]) -m4trace:/usr/share/aclocal/libtool.m4:2332: -1- 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" -]) -m4trace:/usr/share/aclocal/libtool.m4:2353: -1- 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 -]) -m4trace:/usr/share/aclocal/libtool.m4:2378: -1- 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" -]) -m4trace:/usr/share/aclocal/libtool.m4:2414: -1- 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" -]) -m4trace:/usr/share/aclocal/libtool.m4:2422: -1- AC_DEFUN([AC_LIBTOOL_CXX], [AC_REQUIRE([_LT_AC_LANG_CXX]) -]) -m4trace:/usr/share/aclocal/libtool.m4:2431: -1- AC_DEFUN([_LT_AC_LANG_CXX], [AC_REQUIRE([AC_PROG_CXX]) -AC_REQUIRE([AC_PROG_CXXCPP]) -_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX]) -]) -m4trace:/usr/share/aclocal/libtool.m4:2439: -1- AC_DEFUN([AC_LIBTOOL_F77], [AC_REQUIRE([_LT_AC_LANG_F77]) -]) -m4trace:/usr/share/aclocal/libtool.m4:2447: -1- AC_DEFUN([_LT_AC_LANG_F77], [AC_REQUIRE([AC_PROG_F77]) -_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77]) -]) -m4trace:/usr/share/aclocal/libtool.m4:2455: -1- AC_DEFUN([AC_LIBTOOL_GCJ], [AC_REQUIRE([_LT_AC_LANG_GCJ]) -]) -m4trace:/usr/share/aclocal/libtool.m4:2468: -1- 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]) -]) -m4trace:/usr/share/aclocal/libtool.m4:2477: -1- AC_DEFUN([AC_LIBTOOL_RC], [AC_REQUIRE([LT_AC_PROG_RC]) -_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC]) -]) -m4trace:/usr/share/aclocal/libtool.m4:2485: -1- AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG]) -m4trace:/usr/share/aclocal/libtool.m4:2622: -1- 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)=]) - - -## CAVEAT EMPTOR: -## There is no encapsulation within the following macros, do not change -## the running order or otherwise move them around unless you know exactly -## what you are doing... -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* | aix5*) - 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" -]) -m4trace:/usr/share/aclocal/libtool.m4:2630: -1- AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)]) -m4trace:/usr/share/aclocal/libtool.m4:3517: -1- 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) | 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 - _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" - -## CAVEAT EMPTOR: -## There is no encapsulation within the following macros, do not change -## the running order or otherwise move them around unless you know exactly -## what you are doing... -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 -]) -m4trace:/usr/share/aclocal/libtool.m4:3653: -1- 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_cmds='$shrext_cmds' - -# 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 -]) -m4trace:/usr/share/aclocal/libtool.m4:4349: -1- 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 -]) -m4trace:/usr/share/aclocal/libtool.m4:4535: -1- 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 -]) -m4trace:/usr/share/aclocal/libtool.m4:4996: -1- 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 -]) -m4trace:/usr/share/aclocal/libtool.m4:5829: -1- 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 | grep ': 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_cmds=".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 -]) -m4trace:/usr/share/aclocal/libtool.m4:5869: -1- 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 */ -]) -m4trace:/usr/share/aclocal/libtool.m4:5874: -1- AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])]) -m4trace:/usr/share/aclocal/libtool.m4:5878: -1- AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) -m4trace:/usr/share/aclocal/libtool.m4:5879: -1- AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) -m4trace:/usr/share/aclocal/libtool.m4:5880: -1- AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) -m4trace:/usr/share/aclocal/libtool.m4:5881: -1- AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) -m4trace:/usr/share/aclocal/libtool.m4:5882: -1- AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) -m4trace:/usr/share/aclocal/libtool.m4:5883: -1- AC_DEFUN([AM_PROG_LD], [AC_PROG_LD]) -m4trace:/usr/share/aclocal/libtool.m4:5884: -1- AC_DEFUN([AM_PROG_NM], [AC_PROG_NM]) -m4trace:/usr/share/aclocal/libtool.m4:5893: -1- AC_DEFUN([LT_AC_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj, no) - test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" - AC_SUBST(GCJFLAGS) -]) -m4trace:/usr/share/aclocal/libtool.m4:5897: -1- AC_DEFUN([LT_AC_PROG_RC], [AC_CHECK_TOOL(RC, windres, no) -]) -m4trace:/usr/share/aclocal/libtool.m4:5960: -1- 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]) -]) -m4trace:/usr/share/aclocal-1.9/amversion.m4:23: -1- AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"]) -m4trace:/usr/share/aclocal-1.9/amversion.m4:30: -1- AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.9.2])]) -m4trace:/usr/share/aclocal-1.9/auxdir.m4:63: -1- AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. -AC_PREREQ([2.50])dnl -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` -]) -m4trace:/usr/share/aclocal-1.9/cond.m4:42: -1- AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl - 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])]) -m4trace:/usr/share/aclocal-1.9/depend.m4:142: -1- 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 - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch 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 - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' 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]) -]) -m4trace:/usr/share/aclocal-1.9/depend.m4:152: -1- AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl -AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl -]) -m4trace:/usr/share/aclocal-1.9/depend.m4:167: -1- AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, -[ --disable-dependency-tracking speeds up one-time build - --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]) -]) -m4trace:/usr/share/aclocal-1.9/depout.m4:64: -1- 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 - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. 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 " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/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 -]) -m4trace:/usr/share/aclocal-1.9/depout.m4:78: -1- 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"]) -]) -m4trace:/usr/share/aclocal-1.9/init.m4:103: -1- AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.58])dnl -dnl Autoconf wants to disallow AM_ names. We explicitly allow -dnl the ones we care about. -m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl -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_PROG_INSTALL_SH -AM_PROG_INSTALL_STRIP -AC_REQUIRE([AM_PROG_MKDIR_P])dnl -# 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([tar-ustar], [_AM_PROG_TAR([ustar])], - [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], - [_AM_PROG_TAR([v7])])]) -_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 -]) -]) -m4trace:/usr/share/aclocal-1.9/init.m4:124: -1- 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]) -m4trace:/usr/share/aclocal-1.9/install-sh.m4:25: -1- 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)]) -m4trace:/usr/share/aclocal-1.9/lead-dot.m4:32: -1- 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])]) -m4trace:/usr/share/aclocal-1.9/make.m4:62: -1- 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 -]) -m4trace:/usr/share/aclocal-1.9/missing.m4:31: -1- AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) -$1=${$1-"${am_missing_run}$2"} -AC_SUBST($1)]) -m4trace:/usr/share/aclocal-1.9/missing.m4:48: -1- 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 -]) -m4trace:/usr/share/aclocal-1.9/mkdirp.m4:73: -1- AC_DEFUN([AM_PROG_MKDIR_P], [if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then - # We used to keeping the `.' as first argument, in order to - # allow $(mkdir_p) to be used without argument. As in - # $(mkdir_p) $(somedir) - # where $(somedir) is conditionally defined. However this is wrong - # for two reasons: - # 1. if the package is installed by a user who cannot write `.' - # make install will fail, - # 2. the above comment should most certainly read - # $(mkdir_p) $(DESTDIR)$(somedir) - # so it does not work when $(somedir) is undefined and - # $(DESTDIR) is not. - # To support the latter case, we have to write - # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), - # so the `.' trick is pointless. - mkdir_p='mkdir -p --' -else - # On NextStep and OpenStep, the `mkdir' command does not - # recognize any option. It will interpret all options as - # directories to create, and then abort because `.' already - # exists. - for d in ./-p ./--version; - do - test -d $d && rmdir $d - done - # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. - if test -f "$ac_aux_dir/mkinstalldirs"; then - mkdir_p='$(mkinstalldirs)' - else - mkdir_p='$(install_sh) -d' - fi -fi -AC_SUBST([mkdir_p])]) -m4trace:/usr/share/aclocal-1.9/options.m4:25: -1- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) -m4trace:/usr/share/aclocal-1.9/options.m4:31: -1- AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) -m4trace:/usr/share/aclocal-1.9/options.m4:37: -1- AC_DEFUN([_AM_SET_OPTIONS], [AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) -m4trace:/usr/share/aclocal-1.9/options.m4:43: -1- AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -m4trace:/usr/share/aclocal-1.9/runlog.m4:27: -1- AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD - ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD - (exit $ac_status); }]) -m4trace:/usr/share/aclocal-1.9/sanity.m4:63: -1- 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)]) -m4trace:/usr/share/aclocal-1.9/strip.m4:38: -1- 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])]) -m4trace:/usr/share/aclocal-1.9/tar.m4:107: -1- AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. -AM_MISSING_PROG([AMTAR], [tar]) -m4_if([$1], [v7], - [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], - [m4_case([$1], [ustar],, [pax],, - [m4_fatal([Unknown tar format])]) -AC_MSG_CHECKING([how to create a $1 tar archive]) -# Loop over all known methods to create a tar archive until one works. -_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' -_am_tools=${am_cv_prog_tar_$1-$_am_tools} -# Do not fold the above two line into one, because Tru64 sh and -# Solaris sh will not grok spaces in the rhs of `-'. -for _am_tool in $_am_tools -do - case $_am_tool in - gnutar) - for _am_tar in tar gnutar gtar; - do - AM_RUN_LOG([$_am_tar --version]) && break - done - am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' - am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' - am__untar="$_am_tar -xf -" - ;; - plaintar) - # Must skip GNU tar: if it does not support --format= it doesn't create - # ustar tarball either. - (tar --version) >/dev/null 2>&1 && continue - am__tar='tar chf - "$$tardir"' - am__tar_='tar chf - "$tardir"' - am__untar='tar xf -' - ;; - pax) - am__tar='pax -L -x $1 -w "$$tardir"' - am__tar_='pax -L -x $1 -w "$tardir"' - am__untar='pax -r' - ;; - cpio) - am__tar='find "$$tardir" -print | cpio -o -H $1 -L' - am__tar_='find "$tardir" -print | cpio -o -H $1 -L' - am__untar='cpio -i -H $1 -d' - ;; - none) - am__tar=false - am__tar_=false - am__untar=false - ;; - esac - - # If the value was cached, stop now. We just wanted to have am__tar - # and am__untar set. - test -n "${am_cv_prog_tar_$1}" && break - - # tar/untar a dummy directory, and stop if the command works - rm -rf conftest.dir - mkdir conftest.dir - echo GrepMe > conftest.dir/file - AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) - rm -rf conftest.dir - if test -s conftest.tar; then - AM_RUN_LOG([$am__untar /dev/null 2>&1 && break - fi -done -rm -rf conftest.dir - -AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) -AC_MSG_RESULT([$am_cv_prog_tar_$1])]) -AC_SUBST([am__tar]) -AC_SUBST([am__untar]) -]) -m4trace:configure.in:5: -1- AC_INIT([libsangoma], [1.0.0], [anthmct@yahoo.com]) -m4trace:configure.in:5: -1- m4_pattern_forbid([^_?A[CHUM]_]) -m4trace:configure.in:5: -1- m4_pattern_forbid([_AC_]) -m4trace:configure.in:5: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS']) -m4trace:configure.in:5: -1- m4_pattern_allow([^AS_FLAGS$]) -m4trace:configure.in:5: -1- m4_pattern_forbid([^_?m4_]) -m4trace:configure.in:5: -1- m4_pattern_forbid([^dnl$]) -m4trace:configure.in:5: -1- m4_pattern_forbid([^_?AS_]) -m4trace:configure.in:5: -1- AC_SUBST([SHELL], [${CONFIG_SHELL-/bin/sh}]) -m4trace:configure.in:5: -1- AC_SUBST([PATH_SEPARATOR]) -m4trace:configure.in:5: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])]) -m4trace:configure.in:5: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])]) -m4trace:configure.in:5: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])]) -m4trace:configure.in:5: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])]) -m4trace:configure.in:5: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])]) -m4trace:configure.in:5: -1- AC_SUBST([exec_prefix], [NONE]) -m4trace:configure.in:5: -1- AC_SUBST([prefix], [NONE]) -m4trace:configure.in:5: -1- AC_SUBST([program_transform_name], [s,x,x,]) -m4trace:configure.in:5: -1- AC_SUBST([bindir], ['${exec_prefix}/bin']) -m4trace:configure.in:5: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin']) -m4trace:configure.in:5: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec']) -m4trace:configure.in:5: -1- AC_SUBST([datadir], ['${prefix}/share']) -m4trace:configure.in:5: -1- AC_SUBST([sysconfdir], ['${prefix}/etc']) -m4trace:configure.in:5: -1- AC_SUBST([sharedstatedir], ['${prefix}/com']) -m4trace:configure.in:5: -1- AC_SUBST([localstatedir], ['${prefix}/var']) -m4trace:configure.in:5: -1- AC_SUBST([libdir], ['${exec_prefix}/lib']) -m4trace:configure.in:5: -1- AC_SUBST([includedir], ['${prefix}/include']) -m4trace:configure.in:5: -1- AC_SUBST([oldincludedir], ['/usr/include']) -m4trace:configure.in:5: -1- AC_SUBST([infodir], ['${prefix}/info']) -m4trace:configure.in:5: -1- AC_SUBST([mandir], ['${prefix}/man']) -m4trace:configure.in:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME]) -m4trace:configure.in:5: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */ -#undef PACKAGE_NAME]) -m4trace:configure.in:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME]) -m4trace:configure.in:5: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */ -#undef PACKAGE_TARNAME]) -m4trace:configure.in:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION]) -m4trace:configure.in:5: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */ -#undef PACKAGE_VERSION]) -m4trace:configure.in:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING]) -m4trace:configure.in:5: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */ -#undef PACKAGE_STRING]) -m4trace:configure.in:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT]) -m4trace:configure.in:5: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */ -#undef PACKAGE_BUGREPORT]) -m4trace:configure.in:5: -1- AC_SUBST([build_alias]) -m4trace:configure.in:5: -1- AC_SUBST([host_alias]) -m4trace:configure.in:5: -1- AC_SUBST([target_alias]) -m4trace:configure.in:5: -1- AC_SUBST([DEFS]) -m4trace:configure.in:5: -1- AC_SUBST([ECHO_C]) -m4trace:configure.in:5: -1- AC_SUBST([ECHO_N]) -m4trace:configure.in:5: -1- AC_SUBST([ECHO_T]) -m4trace:configure.in:5: -1- AC_SUBST([LIBS]) -m4trace:configure.in:6: -1- AM_INIT_AUTOMAKE([libsangoma], [1.0.0]) -m4trace:configure.in:6: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$]) -m4trace:configure.in:6: -1- AM_SET_CURRENT_AUTOMAKE_VERSION -m4trace:configure.in:6: -1- AM_AUTOMAKE_VERSION([1.9.2]) -m4trace:configure.in:6: -1- AC_PROG_INSTALL -m4trace:configure.in:6: -1- AC_SUBST([INSTALL_PROGRAM]) -m4trace:configure.in:6: -1- AC_SUBST([INSTALL_SCRIPT]) -m4trace:configure.in:6: -1- AC_SUBST([INSTALL_DATA]) -m4trace:configure.in:6: -1- AC_SUBST([CYGPATH_W]) -m4trace:configure.in:6: -1- AC_SUBST([PACKAGE], [libsangoma]) -m4trace:configure.in:6: -1- AC_SUBST([VERSION], [1.0.0]) -m4trace:configure.in:6: -1- _AM_IF_OPTION([no-define], [], [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) - AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])]) -m4trace:configure.in:6: -2- _AM_MANGLE_OPTION([no-define]) -m4trace:configure.in:6: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE]) -m4trace:configure.in:6: -1- AH_OUTPUT([PACKAGE], [/* Name of package */ -#undef PACKAGE]) -m4trace:configure.in:6: -1- AC_DEFINE_TRACE_LITERAL([VERSION]) -m4trace:configure.in:6: -1- AH_OUTPUT([VERSION], [/* Version number of package */ -#undef VERSION]) -m4trace:configure.in:6: -1- AM_SANITY_CHECK -m4trace:configure.in:6: -1- AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) -m4trace:configure.in:6: -1- AM_MISSING_HAS_RUN -m4trace:configure.in:6: -1- AM_AUX_DIR_EXPAND -m4trace:configure.in:6: -1- AC_SUBST([ACLOCAL]) -m4trace:configure.in:6: -1- AM_MISSING_PROG([AUTOCONF], [autoconf]) -m4trace:configure.in:6: -1- AC_SUBST([AUTOCONF]) -m4trace:configure.in:6: -1- AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) -m4trace:configure.in:6: -1- AC_SUBST([AUTOMAKE]) -m4trace:configure.in:6: -1- AM_MISSING_PROG([AUTOHEADER], [autoheader]) -m4trace:configure.in:6: -1- AC_SUBST([AUTOHEADER]) -m4trace:configure.in:6: -1- AM_MISSING_PROG([MAKEINFO], [makeinfo]) -m4trace:configure.in:6: -1- AC_SUBST([MAKEINFO]) -m4trace:configure.in:6: -1- AM_PROG_INSTALL_SH -m4trace:configure.in:6: -1- AC_SUBST([install_sh]) -m4trace:configure.in:6: -1- AM_PROG_INSTALL_STRIP -m4trace:configure.in:6: -1- AC_SUBST([STRIP]) -m4trace:configure.in:6: -1- AC_SUBST([ac_ct_STRIP]) -m4trace:configure.in:6: -1- AC_SUBST([INSTALL_STRIP_PROGRAM]) -m4trace:configure.in:6: -1- AM_PROG_MKDIR_P -m4trace:configure.in:6: -1- AC_SUBST([mkdir_p]) -m4trace:configure.in:6: -1- AC_PROG_AWK -m4trace:configure.in:6: -1- AC_SUBST([AWK]) -m4trace:configure.in:6: -1- AC_PROG_MAKE_SET -m4trace:configure.in:6: -1- AC_SUBST([SET_MAKE]) -m4trace:configure.in:6: -1- AM_SET_LEADING_DOT -m4trace:configure.in:6: -1- AC_SUBST([am__leading_dot]) -m4trace:configure.in:6: -1- _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], - [_AM_PROG_TAR([v7])])]) -m4trace:configure.in:6: -2- _AM_MANGLE_OPTION([tar-ustar]) -m4trace:configure.in:6: -1- _AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])]) -m4trace:configure.in:6: -2- _AM_MANGLE_OPTION([tar-pax]) -m4trace:configure.in:6: -1- _AM_PROG_TAR([v7]) -m4trace:configure.in:6: -1- AM_MISSING_PROG([AMTAR], [tar]) -m4trace:configure.in:6: -1- AC_SUBST([AMTAR]) -m4trace:configure.in:6: -1- AC_SUBST([am__tar]) -m4trace:configure.in:6: -1- AC_SUBST([am__untar]) -m4trace:configure.in:6: -1- _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 -]) -m4trace:configure.in:6: -2- _AM_MANGLE_OPTION([no-dependencies]) -m4trace:configure.in:8: -1- AC_PROG_CC -m4trace:configure.in:8: -1- AC_SUBST([CC]) -m4trace:configure.in:8: -1- AC_SUBST([CFLAGS]) -m4trace:configure.in:8: -1- AC_SUBST([LDFLAGS]) -m4trace:configure.in:8: -1- AC_SUBST([CPPFLAGS]) -m4trace:configure.in:8: -1- AC_SUBST([CC]) -m4trace:configure.in:8: -1- AC_SUBST([ac_ct_CC]) -m4trace:configure.in:8: -1- AC_SUBST([CC]) -m4trace:configure.in:8: -1- AC_SUBST([ac_ct_CC]) -m4trace:configure.in:8: -1- AC_SUBST([CC]) -m4trace:configure.in:8: -1- AC_SUBST([CC]) -m4trace:configure.in:8: -1- AC_SUBST([ac_ct_CC]) -m4trace:configure.in:8: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext]) -m4trace:configure.in:8: -1- AC_SUBST([OBJEXT], [$ac_cv_objext]) -m4trace:configure.in:8: -1- _AM_DEPENDENCIES([CC]) -m4trace:configure.in:8: -1- AM_SET_DEPDIR -m4trace:configure.in:8: -1- AC_SUBST([DEPDIR], ["${am__leading_dot}deps"]) -m4trace:configure.in:8: -1- AM_OUTPUT_DEPENDENCY_COMMANDS -m4trace:configure.in:8: -1- AM_MAKE_INCLUDE -m4trace:configure.in:8: -1- AC_SUBST([am__include]) -m4trace:configure.in:8: -1- AC_SUBST([am__quote]) -m4trace:configure.in:8: -1- AM_DEP_TRACK -m4trace:configure.in:8: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) -m4trace:configure.in:8: -1- AC_SUBST([AMDEP_TRUE]) -m4trace:configure.in:8: -1- AC_SUBST([AMDEP_FALSE]) -m4trace:configure.in:8: -1- AC_SUBST([AMDEPBACKSLASH]) -m4trace:configure.in:8: -1- AC_SUBST([CCDEPMODE], [depmode=$am_cv_CC_dependencies_compiler_type]) -m4trace:configure.in:8: -1- AM_CONDITIONAL([am__fastdepCC], [ - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3]) -m4trace:configure.in:8: -1- AC_SUBST([am__fastdepCC_TRUE]) -m4trace:configure.in:8: -1- AC_SUBST([am__fastdepCC_FALSE]) -m4trace:configure.in:9: -1- AC_PROG_LIBTOOL -m4trace:configure.in:9: -1- _AC_PROG_LIBTOOL -m4trace:configure.in:9: -1- AC_LIBTOOL_SETUP -m4trace:configure.in:9: -1- AC_ENABLE_SHARED -m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -autoconf/general.m4:1303: AC_ARG_ENABLE is expanded from... -/usr/share/aclocal/libtool.m4:1787: AC_ENABLE_SHARED is expanded from... -configure.in:9: AC_ENABLE_SHARED is required by... -/usr/share/aclocal/libtool.m4:232: AC_LIBTOOL_SETUP is expanded from... -configure.in:9: AC_LIBTOOL_SETUP is required by... -/usr/share/aclocal/libtool.m4:90: _AC_PROG_LIBTOOL is expanded from... -configure.in:9: _AC_PROG_LIBTOOL is required by... -/usr/share/aclocal/libtool.m4:70: AC_PROG_LIBTOOL is expanded from... -configure.in:9: the top level]) -m4trace:configure.in:9: -1- AC_ENABLE_STATIC -m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -autoconf/general.m4:1303: AC_ARG_ENABLE is expanded from... -/usr/share/aclocal/libtool.m4:1826: AC_ENABLE_STATIC is expanded from... -configure.in:9: AC_ENABLE_STATIC is required by... -/usr/share/aclocal/libtool.m4:232: AC_LIBTOOL_SETUP is expanded from... -configure.in:9: AC_LIBTOOL_SETUP is required by... -/usr/share/aclocal/libtool.m4:90: _AC_PROG_LIBTOOL is expanded from... -configure.in:9: _AC_PROG_LIBTOOL is required by... -/usr/share/aclocal/libtool.m4:70: AC_PROG_LIBTOOL is expanded from... -configure.in:9: the top level]) -m4trace:configure.in:9: -1- AC_ENABLE_FAST_INSTALL -m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -autoconf/general.m4:1303: AC_ARG_ENABLE is expanded from... -/usr/share/aclocal/libtool.m4:1865: AC_ENABLE_FAST_INSTALL is expanded from... -configure.in:9: AC_ENABLE_FAST_INSTALL is required by... -/usr/share/aclocal/libtool.m4:232: AC_LIBTOOL_SETUP is expanded from... -configure.in:9: AC_LIBTOOL_SETUP is required by... -/usr/share/aclocal/libtool.m4:90: _AC_PROG_LIBTOOL is expanded from... -configure.in:9: _AC_PROG_LIBTOOL is required by... -/usr/share/aclocal/libtool.m4:70: AC_PROG_LIBTOOL is expanded from... -configure.in:9: the top level]) -m4trace:configure.in:9: -1- AC_CANONICAL_HOST -m4trace:configure.in:9: -1- AC_SUBST([build], [$ac_cv_build]) -m4trace:configure.in:9: -1- AC_SUBST([build_cpu], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`]) -m4trace:configure.in:9: -1- AC_SUBST([build_vendor], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`]) -m4trace:configure.in:9: -1- AC_SUBST([build_os], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`]) -m4trace:configure.in:9: -1- AC_SUBST([host], [$ac_cv_host]) -m4trace:configure.in:9: -1- AC_SUBST([host_cpu], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`]) -m4trace:configure.in:9: -1- AC_SUBST([host_vendor], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`]) -m4trace:configure.in:9: -1- AC_SUBST([host_os], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`]) -m4trace:configure.in:9: -1- AC_PROG_LD -m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -autoconf/general.m4:1331: AC_ARG_WITH is expanded from... -/usr/share/aclocal/libtool.m4:2062: AC_PROG_LD is expanded from... -configure.in:9: AC_PROG_LD is required by... -/usr/share/aclocal/libtool.m4:232: AC_LIBTOOL_SETUP is expanded from... -configure.in:9: AC_LIBTOOL_SETUP is required by... -/usr/share/aclocal/libtool.m4:90: _AC_PROG_LIBTOOL is expanded from... -configure.in:9: _AC_PROG_LIBTOOL is required by... -/usr/share/aclocal/libtool.m4:70: AC_PROG_LIBTOOL is expanded from... -configure.in:9: the top level]) -m4trace:configure.in:9: -1- LT_AC_PROG_SED -m4trace:configure.in:9: -1- AC_PROG_LD_GNU -m4trace:configure.in:9: -1- AC_PROG_EGREP -m4trace:configure.in:9: -1- AC_SUBST([EGREP]) -m4trace:configure.in:9: -1- AC_PROG_LD_RELOAD_FLAG -m4trace:configure.in:9: -1- AC_PROG_NM -m4trace:configure.in:9: -1- AC_PROG_LN_S -m4trace:configure.in:9: -1- AC_SUBST([LN_S], [$as_ln_s]) -m4trace:configure.in:9: -1- AC_DEPLIBS_CHECK_METHOD -m4trace:configure.in:9: -1- AC_LIBTOOL_SYS_MAX_CMD_LEN -m4trace:configure.in:9: -1- AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_no_builtin_flag], []) -m4trace:configure.in:9: -1- AC_LIBTOOL_OBJDIR -m4trace:configure.in:9: -1- _LT_AC_SYS_COMPILER -m4trace:configure.in:9: -1- _LT_AC_PROG_ECHO_BACKSLASH -m4trace:configure.in:9: -1- _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) -]) -m4trace:configure.in:9: -1- AC_SUBST([ECHO]) -m4trace:configure.in:9: -1- AC_SUBST([AR]) -m4trace:configure.in:9: -1- AC_SUBST([ac_ct_AR]) -m4trace:configure.in:9: -1- AC_SUBST([RANLIB]) -m4trace:configure.in:9: -1- AC_SUBST([ac_ct_RANLIB]) -m4trace:configure.in:9: -1- AC_SUBST([STRIP]) -m4trace:configure.in:9: -1- AC_SUBST([ac_ct_STRIP]) -m4trace:configure.in:9: -1- AC_PATH_MAGIC -m4trace:configure.in:9: -1- AC_PATH_TOOL_PREFIX([${ac_tool_prefix}file], [/usr/bin$PATH_SEPARATOR$PATH]) -m4trace:configure.in:9: -1- AC_PATH_TOOL_PREFIX([file], [/usr/bin$PATH_SEPARATOR$PATH]) -m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -autoconf/general.m4:1303: AC_ARG_ENABLE is expanded from... -/usr/share/aclocal/libtool.m4:232: AC_LIBTOOL_SETUP is expanded from... -configure.in:9: AC_LIBTOOL_SETUP is required by... -/usr/share/aclocal/libtool.m4:90: _AC_PROG_LIBTOOL is expanded from... -configure.in:9: _AC_PROG_LIBTOOL is required by... -/usr/share/aclocal/libtool.m4:70: AC_PROG_LIBTOOL is expanded from... -configure.in:9: the top level]) -m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -autoconf/general.m4:1331: AC_ARG_WITH is expanded from... -/usr/share/aclocal/libtool.m4:232: AC_LIBTOOL_SETUP is expanded from... -configure.in:9: AC_LIBTOOL_SETUP is required by... -/usr/share/aclocal/libtool.m4:90: _AC_PROG_LIBTOOL is expanded from... -configure.in:9: _AC_PROG_LIBTOOL is required by... -/usr/share/aclocal/libtool.m4:70: AC_PROG_LIBTOOL is expanded from... -configure.in:9: the top level]) -m4trace:configure.in:9: -1- AC_LIBTOOL_LANG_C_CONFIG -m4trace:configure.in:9: -1- _LT_AC_LANG_C_CONFIG -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([objext], []) -m4trace:configure.in:9: -1- _LT_AC_SYS_COMPILER -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_cc_shlib], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_cc_shlib], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_cc_shlib], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_cc_shlib], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_cc_shlib], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_cc_shlib], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_cc_shlib], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_cc_shlib], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_cv_prog_cc_can_build_shared], []) -m4trace:configure.in:9: -2- _LT_AC_TAGVAR([lt_prog_compiler_static_works], []) -m4trace:configure.in:9: -2- _LT_AC_TAGVAR([lt_prog_compiler_static], []) -m4trace:configure.in:9: -1- AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $_LT_AC_TAGVAR(lt_prog_compiler_static, ) works], [lt_prog_compiler_static_works], [$lt_prog_compiler_static], [], [_LT_AC_TAGVAR(lt_prog_compiler_static, )=]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], []) -m4trace:configure.in:9: -1- AC_LIBTOOL_PROG_COMPILER_NO_RTTI([]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_no_builtin_flag], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_no_builtin_flag], []) -m4trace:configure.in:9: -1- 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, )="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, ) -fno-rtti -fno-exceptions"]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_no_builtin_flag], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_no_builtin_flag], []) -m4trace:configure.in:9: -1- AC_LIBTOOL_PROG_COMPILER_PIC([]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_can_build_shared], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_can_build_shared], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], []) -m4trace:configure.in:9: -2- _LT_AC_TAGVAR([lt_prog_compiler_pic_works], []) -m4trace:configure.in:9: -1- AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, ) works], [lt_prog_compiler_pic_works], [$_LT_AC_TAGVAR(lt_prog_compiler_pic, )ifelse([],[],[ -DPIC],[ifelse([],[CXX],[ -DPIC],[])])], [], [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, ) in - "" | " "*) ;; - *) _LT_AC_TAGVAR(lt_prog_compiler_pic, )=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, )" ;; - esac], [_LT_AC_TAGVAR(lt_prog_compiler_pic, )= - _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, )=no]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_can_build_shared], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], []) -m4trace:configure.in:9: -1- AC_LIBTOOL_PROG_CC_C_O([]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_cv_prog_compiler_c_o], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_cv_prog_compiler_c_o], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_cv_prog_compiler_c_o], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_cv_prog_compiler_c_o], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_cv_prog_compiler_c_o], []) -m4trace:configure.in:9: -1- AC_LIBTOOL_SYS_HARD_LINK_LOCKS([]) -m4trace:configure.in:9: -1- _LT_AC_LOCK -m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -/usr/share/aclocal/libtool.m4:559: _LT_AC_LOCK is expanded from... -configure.in:9: _LT_AC_LOCK is required by... -/usr/share/aclocal/libtool.m4:990: AC_LIBTOOL_SYS_HARD_LINK_LOCKS is expanded from... -/usr/share/aclocal/libtool.m4:2622: _LT_AC_LANG_C_CONFIG is expanded from... -/usr/share/aclocal/libtool.m4:2485: AC_LIBTOOL_LANG_C_CONFIG is expanded from... -/usr/share/aclocal/libtool.m4:232: AC_LIBTOOL_SETUP is expanded from... -configure.in:9: AC_LIBTOOL_SETUP is required by... -/usr/share/aclocal/libtool.m4:90: _AC_PROG_LIBTOOL is expanded from... -configure.in:9: _AC_PROG_LIBTOOL is required by... -/usr/share/aclocal/libtool.m4:70: AC_PROG_LIBTOOL is expanded from... -configure.in:9: the top level]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_cv_prog_compiler_c_o], []) -m4trace:configure.in:9: -1- AC_LIBTOOL_PROG_LD_SHLIBS([]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([enable_shared_with_static_runtimes], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_From_new_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_from_expsyms_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([thread_safe_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec_ld], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([link_all_deplibs], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_automatic], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_expsym_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([always_export_symbols], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_symbols_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([include_expsyms], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([exclude_expsyms], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([always_export_symbols], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([enable_shared_with_static_runtimes], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_symbols_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([always_export_symbols], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_symbols_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_symbols_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([link_all_deplibs], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([always_export_symbols], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], []) -m4trace:configure.in:9: -1- _LT_AC_SYS_LIBPATH_AIX -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_SYS_LIBPATH_AIX -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([no_undefined_flag], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([always_export_symbols], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_From_new_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([enable_shared_with_static_runtimes], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_expsym_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_automatic], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([link_all_deplibs], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec_ld], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec_ld], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([link_all_deplibs], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_From_new_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([no_undefined_flag], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([link_all_deplibs], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([reload_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([no_undefined_flag], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([no_undefined_flag], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], []) -m4trace:configure.in:9: -2- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], []) -m4trace:configure.in:9: -1- AC_LIBTOOL_SYS_DYNAMIC_LINKER([]) -m4trace:configure.in:9: -1- AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_action], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([runpath_var ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_automatic], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_action], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_action], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_action], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_action], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_action], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_action], []) -m4trace:configure.in:9: -1- AC_LIBTOOL_SYS_LIB_STRIP -m4trace:configure.in:9: -1- AC_LIBTOOL_DLOPEN_SELF([]) -m4trace:configure.in:9: -1- _LT_AC_CHECK_DLFCN -m4trace:configure.in:9: -1- AC_CHECK_HEADERS([dlfcn.h]) -m4trace:configure.in:9: -1- AH_OUTPUT([HAVE_DLFCN_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_DLFCN_H]) -m4trace:configure.in:9: -1- AC_HEADER_STDC -m4trace:configure.in:9: -1- AC_PROG_CPP -m4trace:configure.in:9: -1- AC_SUBST([CPP]) -m4trace:configure.in:9: -1- AC_SUBST([CPPFLAGS]) -m4trace:configure.in:9: -1- AC_SUBST([CPP]) -m4trace:configure.in:9: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS]) -m4trace:configure.in:9: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */ -#undef STDC_HEADERS]) -m4trace:configure.in:9: -1- AC_CHECK_HEADERS([sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h], [], [], [$ac_includes_default]) -m4trace:configure.in:9: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_TYPES_H]) -m4trace:configure.in:9: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_STAT_H]) -m4trace:configure.in:9: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_STDLIB_H]) -m4trace:configure.in:9: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_STRING_H]) -m4trace:configure.in:9: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_MEMORY_H]) -m4trace:configure.in:9: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_STRINGS_H]) -m4trace:configure.in:9: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_INTTYPES_H]) -m4trace:configure.in:9: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_STDINT_H]) -m4trace:configure.in:9: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_UNISTD_H]) -m4trace:configure.in:9: -1- 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 - ]) -m4trace:configure.in:9: -1- 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"]) - ]) - ]) - ]) - ]) -m4trace:configure.in:9: -1- 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"]) - ]) - ]) -m4trace:configure.in:9: -1- 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"]) - ]) -m4trace:configure.in:9: -1- AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"]) -m4trace:configure.in:9: -1- _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]) -m4trace:configure.in:9: -1- _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]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_expsym_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_automatic], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([link_all_deplibs], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], []) -m4trace:configure.in:9: -1- AC_LIBTOOL_CONFIG([]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([compiler], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([CC], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([LD], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_no_builtin_flag], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([thread_safe_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([enable_shared_with_static_runtimes], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_from_new_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([predep_objects], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postdep_objects], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([predeps], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postdeps], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([compiler_lib_search_path], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postinstall_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postuninstall_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_from_expsyms_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([no_undefined_flag], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_symbols_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec_ld], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_automatic], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_expsym_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_cv_prog_compiler_c_o], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([exclude_expsyms], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([include_expsyms], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_from_new_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_expsym_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_from_expsyms_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_symbols_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([enable_shared_with_static_runtimes], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([compiler], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([GCC], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([LD], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_cv_prog_compiler_c_o], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_no_builtin_flag], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([thread_safe_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_from_new_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_from_expsyms_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_expsym_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([predep_objects], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postdep_objects], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([predeps], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postdeps], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([compiler_lib_search_path], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([no_undefined_flag], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_action], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec_ld], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_automatic], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([link_all_deplibs], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([fix_srcfile_path], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([always_export_symbols], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_symbols_cmds], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([exclude_expsyms], []) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([include_expsyms], []) -m4trace:configure.in:9: -1- _LT_AC_TAGCONFIG -m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -autoconf/general.m4:1331: AC_ARG_WITH is expanded from... -/usr/share/aclocal/libtool.m4:1741: _LT_AC_TAGCONFIG is expanded from... -/usr/share/aclocal/libtool.m4:232: AC_LIBTOOL_SETUP is expanded from... -configure.in:9: AC_LIBTOOL_SETUP is required by... -/usr/share/aclocal/libtool.m4:90: _AC_PROG_LIBTOOL is expanded from... -configure.in:9: _AC_PROG_LIBTOOL is required by... -/usr/share/aclocal/libtool.m4:70: AC_PROG_LIBTOOL is expanded from... -configure.in:9: the top level]) -m4trace:configure.in:9: -1- _m4_warn([obsolete], [back quotes and double quotes must not be escaped in: $as_me:$LINENO: error: tag name \"$tagname\" already exists], [/usr/share/aclocal/libtool.m4:1741: _LT_AC_TAGCONFIG is expanded from... -/usr/share/aclocal/libtool.m4:232: AC_LIBTOOL_SETUP is expanded from... -configure.in:9: AC_LIBTOOL_SETUP is required by... -/usr/share/aclocal/libtool.m4:90: _AC_PROG_LIBTOOL is expanded from... -configure.in:9: _AC_PROG_LIBTOOL is required by... -/usr/share/aclocal/libtool.m4:70: AC_PROG_LIBTOOL is expanded from... -configure.in:9: the top level]) -m4trace:configure.in:9: -1- _m4_warn([obsolete], [back quotes and double quotes must not be escaped in: $as_me: error: tag name \"$tagname\" already exists], [/usr/share/aclocal/libtool.m4:1741: _LT_AC_TAGCONFIG is expanded from... -/usr/share/aclocal/libtool.m4:232: AC_LIBTOOL_SETUP is expanded from... -configure.in:9: AC_LIBTOOL_SETUP is required by... -/usr/share/aclocal/libtool.m4:90: _AC_PROG_LIBTOOL is expanded from... -configure.in:9: _AC_PROG_LIBTOOL is required by... -/usr/share/aclocal/libtool.m4:70: AC_PROG_LIBTOOL is expanded from... -configure.in:9: the top level]) -m4trace:configure.in:9: -1- AC_LIBTOOL_LANG_CXX_CONFIG -m4trace:configure.in:9: -1- _LT_AC_LANG_CXX_CONFIG([CXX]) -m4trace:configure.in:9: -1- AC_PROG_CXX -m4trace:configure.in:9: -1- AC_SUBST([CXX]) -m4trace:configure.in:9: -1- AC_SUBST([CXXFLAGS]) -m4trace:configure.in:9: -1- AC_SUBST([LDFLAGS]) -m4trace:configure.in:9: -1- AC_SUBST([CPPFLAGS]) -m4trace:configure.in:9: -1- AC_SUBST([CXX]) -m4trace:configure.in:9: -1- AC_SUBST([ac_ct_CXX]) -m4trace:configure.in:9: -1- _AM_DEPENDENCIES([CXX]) -m4trace:configure.in:9: -1- AC_SUBST([CXXDEPMODE], [depmode=$am_cv_CXX_dependencies_compiler_type]) -m4trace:configure.in:9: -1- AM_CONDITIONAL([am__fastdepCXX], [ - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CXX_dependencies_compiler_type" = gcc3]) -m4trace:configure.in:9: -1- AC_SUBST([am__fastdepCXX_TRUE]) -m4trace:configure.in:9: -1- AC_SUBST([am__fastdepCXX_FALSE]) -m4trace:configure.in:9: -1- AC_SUBST([CXXCPP]) -m4trace:configure.in:9: -1- AC_SUBST([CPPFLAGS]) -m4trace:configure.in:9: -1- AC_SUBST([CXXCPP]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([always_export_symbols], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec_ld], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_automatic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_expsym_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([link_all_deplibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([no_undefined_flag], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([enable_shared_with_static_runtimes], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([predep_objects], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postdep_objects], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([predeps], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postdeps], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([compiler_lib_search_path], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([objext], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_SYS_COMPILER -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([compiler], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_no_builtin_flag], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_no_builtin_flag], [CXX]) -m4trace:configure.in:9: -1- AC_PROG_LD -m4trace:configure.in:9: -1- AC_PROG_LD_GNU -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([link_all_deplibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([always_export_symbols], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_SYS_LIBPATH_AIX -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_SYS_LIBPATH_AIX -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([no_undefined_flag], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([always_export_symbols], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([always_export_symbols], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([enable_shared_with_static_runtimes], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_expsym_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_automatic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([link_all_deplibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec_ld], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([link_all_deplibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([no_undefined_flag], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([link_all_deplibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([no_undefined_flag], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([GCC], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([LD], [CXX]) -m4trace:configure.in:9: -1- AC_LIBTOOL_POSTDEP_PREDEP([CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([compiler_lib_search_path], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([compiler_lib_search_path], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([compiler_lib_search_path], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([compiler_lib_search_path], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postdeps], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postdeps], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postdeps], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postdeps], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([predep_objects], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([predep_objects], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([predep_objects], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([predep_objects], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postdep_objects], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postdep_objects], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postdep_objects], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postdep_objects], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postdeps], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], [CXX]) -m4trace:configure.in:9: -1- AC_LIBTOOL_PROG_COMPILER_PIC([CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_can_build_shared], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -2- _LT_AC_TAGVAR([lt_prog_compiler_pic_works], [CXX]) -m4trace:configure.in:9: -1- AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, CXX) works], [lt_prog_compiler_pic_works_CXX], [$_LT_AC_TAGVAR(lt_prog_compiler_pic, CXX)ifelse([CXX],[],[ -DPIC],[ifelse([CXX],[CXX],[ -DPIC],[])])], [], [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, CXX) in - "" | " "*) ;; - *) _LT_AC_TAGVAR(lt_prog_compiler_pic, CXX)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, CXX)" ;; - esac], [_LT_AC_TAGVAR(lt_prog_compiler_pic, CXX)= - _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, CXX)=no]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_can_build_shared], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- AC_LIBTOOL_PROG_CC_C_O([CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_cv_prog_compiler_c_o], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_cv_prog_compiler_c_o], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_cv_prog_compiler_c_o], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_cv_prog_compiler_c_o], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_cv_prog_compiler_c_o], [CXX]) -m4trace:configure.in:9: -1- AC_LIBTOOL_SYS_HARD_LINK_LOCKS([CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_cv_prog_compiler_c_o], [CXX]) -m4trace:configure.in:9: -1- AC_LIBTOOL_PROG_LD_SHLIBS([CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_symbols_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_symbols_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_symbols_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_symbols_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_symbols_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_symbols_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [CXX]) -m4trace:configure.in:9: -2- _LT_AC_TAGVAR([archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], [CXX]) -m4trace:configure.in:9: -1- AC_LIBTOOL_SYS_DYNAMIC_LINKER([CXX]) -m4trace:configure.in:9: -1- AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_action], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([runpath_var CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_automatic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_action], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_action], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_action], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_action], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_action], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_action], [CXX]) -m4trace:configure.in:9: -1- AC_LIBTOOL_SYS_LIB_STRIP -m4trace:configure.in:9: -1- AC_LIBTOOL_DLOPEN_SELF([CXX]) -m4trace:configure.in:9: -1- 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 - ]) -m4trace:configure.in:9: -1- 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"]) - ]) - ]) - ]) - ]) -m4trace:configure.in:9: -1- 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"]) - ]) - ]) -m4trace:configure.in:9: -1- 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"]) - ]) -m4trace:configure.in:9: -1- AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"]) -m4trace:configure.in:9: -1- _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]) -m4trace:configure.in:9: -1- _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]) -m4trace:configure.in:9: -1- AC_LIBTOOL_CONFIG([CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([compiler], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([CC], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([LD], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_no_builtin_flag], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([thread_safe_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([enable_shared_with_static_runtimes], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_from_new_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([predep_objects], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postdep_objects], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([predeps], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postdeps], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([compiler_lib_search_path], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postinstall_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postuninstall_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_from_expsyms_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([no_undefined_flag], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_symbols_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec_ld], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_automatic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_expsym_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_cv_prog_compiler_c_o], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([exclude_expsyms], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([include_expsyms], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_from_new_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_expsym_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_from_expsyms_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_symbols_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([enable_shared_with_static_runtimes], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([compiler], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([GCC], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([LD], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_cv_prog_compiler_c_o], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_no_builtin_flag], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([thread_safe_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_from_new_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_from_expsyms_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_expsym_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([predep_objects], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postdep_objects], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([predeps], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postdeps], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([compiler_lib_search_path], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([no_undefined_flag], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_action], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec_ld], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_automatic], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([link_all_deplibs], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([fix_srcfile_path], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([always_export_symbols], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_symbols_cmds], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([exclude_expsyms], [CXX]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([include_expsyms], [CXX]) -m4trace:configure.in:9: -1- AC_LIBTOOL_LANG_F77_CONFIG -m4trace:configure.in:9: -1- _LT_AC_LANG_F77_CONFIG([F77]) -m4trace:configure.in:9: -1- AC_SUBST([F77]) -m4trace:configure.in:9: -1- AC_SUBST([FFLAGS]) -m4trace:configure.in:9: -1- AC_SUBST([LDFLAGS]) -m4trace:configure.in:9: -1- AC_SUBST([F77]) -m4trace:configure.in:9: -1- AC_SUBST([ac_ct_F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([always_export_symbols], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec_ld], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_automatic], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_expsym_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([link_all_deplibs], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([no_undefined_flag], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([enable_shared_with_static_runtimes], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([objext], [F77]) -m4trace:configure.in:9: -1- _LT_AC_SYS_COMPILER -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([compiler], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([GCC], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([LD], [F77]) -m4trace:configure.in:9: -1- AC_LIBTOOL_PROG_COMPILER_PIC([F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_can_build_shared], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_can_build_shared], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [F77]) -m4trace:configure.in:9: -2- _LT_AC_TAGVAR([lt_prog_compiler_pic_works], [F77]) -m4trace:configure.in:9: -1- AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, F77) works], [lt_prog_compiler_pic_works_F77], [$_LT_AC_TAGVAR(lt_prog_compiler_pic, F77)ifelse([F77],[],[ -DPIC],[ifelse([F77],[CXX],[ -DPIC],[])])], [], [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, F77) in - "" | " "*) ;; - *) _LT_AC_TAGVAR(lt_prog_compiler_pic, F77)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, F77)" ;; - esac], [_LT_AC_TAGVAR(lt_prog_compiler_pic, F77)= - _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, F77)=no]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_can_build_shared], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [F77]) -m4trace:configure.in:9: -1- AC_LIBTOOL_PROG_CC_C_O([F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_cv_prog_compiler_c_o], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_cv_prog_compiler_c_o], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_cv_prog_compiler_c_o], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_cv_prog_compiler_c_o], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_cv_prog_compiler_c_o], [F77]) -m4trace:configure.in:9: -1- AC_LIBTOOL_SYS_HARD_LINK_LOCKS([F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_cv_prog_compiler_c_o], [F77]) -m4trace:configure.in:9: -1- AC_LIBTOOL_PROG_LD_SHLIBS([F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([enable_shared_with_static_runtimes], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_From_new_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_from_expsyms_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([thread_safe_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec_ld], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([link_all_deplibs], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_automatic], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_expsym_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([always_export_symbols], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_symbols_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([include_expsyms], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([exclude_expsyms], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([always_export_symbols], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([enable_shared_with_static_runtimes], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_symbols_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([always_export_symbols], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_symbols_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_symbols_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([link_all_deplibs], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([always_export_symbols], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [F77]) -m4trace:configure.in:9: -1- _LT_AC_SYS_LIBPATH_AIX -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_SYS_LIBPATH_AIX -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([no_undefined_flag], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([always_export_symbols], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_From_new_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([enable_shared_with_static_runtimes], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_expsym_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_automatic], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([link_all_deplibs], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec_ld], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec_ld], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([link_all_deplibs], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_From_new_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([no_undefined_flag], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([link_all_deplibs], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([reload_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([no_undefined_flag], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([no_undefined_flag], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [F77]) -m4trace:configure.in:9: -2- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], [F77]) -m4trace:configure.in:9: -1- AC_LIBTOOL_SYS_DYNAMIC_LINKER([F77]) -m4trace:configure.in:9: -1- AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_action], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([runpath_var F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_automatic], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_action], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_action], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_action], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_action], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_action], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_action], [F77]) -m4trace:configure.in:9: -1- AC_LIBTOOL_SYS_LIB_STRIP -m4trace:configure.in:9: -1- AC_LIBTOOL_CONFIG([F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([compiler], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([CC], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([LD], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_no_builtin_flag], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([thread_safe_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([enable_shared_with_static_runtimes], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_from_new_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([predep_objects], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postdep_objects], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([predeps], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postdeps], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([compiler_lib_search_path], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postinstall_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postuninstall_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_from_expsyms_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([no_undefined_flag], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_symbols_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec_ld], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_automatic], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_expsym_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_cv_prog_compiler_c_o], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([exclude_expsyms], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([include_expsyms], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_from_new_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_expsym_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_from_expsyms_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_symbols_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([enable_shared_with_static_runtimes], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([compiler], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([GCC], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([LD], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_cv_prog_compiler_c_o], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_no_builtin_flag], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([thread_safe_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_from_new_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_from_expsyms_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_expsym_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([predep_objects], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postdep_objects], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([predeps], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postdeps], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([compiler_lib_search_path], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([no_undefined_flag], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_action], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec_ld], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_automatic], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([link_all_deplibs], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([fix_srcfile_path], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([always_export_symbols], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_symbols_cmds], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([exclude_expsyms], [F77]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([include_expsyms], [F77]) -m4trace:configure.in:9: -1- AC_LIBTOOL_LANG_GCJ_CONFIG -m4trace:configure.in:9: -1- _LT_AC_LANG_GCJ_CONFIG([GCJ]) -m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AC_LANG_SAVE' is obsolete. -You should run autoupdate.], [autoconf/lang.m4:166: AC_LANG_SAVE is expanded from... -/usr/share/aclocal/libtool.m4:3807: _LT_AC_LANG_GCJ_CONFIG is expanded from... -/usr/share/aclocal/libtool.m4:3760: AC_LIBTOOL_LANG_GCJ_CONFIG is expanded from... -/usr/share/aclocal/libtool.m4:1741: _LT_AC_TAGCONFIG is expanded from... -/usr/share/aclocal/libtool.m4:232: AC_LIBTOOL_SETUP is expanded from... -configure.in:9: AC_LIBTOOL_SETUP is required by... -/usr/share/aclocal/libtool.m4:90: _AC_PROG_LIBTOOL is expanded from... -configure.in:9: _AC_PROG_LIBTOOL is required by... -/usr/share/aclocal/libtool.m4:70: AC_PROG_LIBTOOL is expanded from... -configure.in:9: the top level]) -m4trace:configure.in:9: -1- _m4_warn([obsolete], [instead of using `AC_LANG', `AC_LANG_SAVE', -and `AC_LANG_RESTORE', you should use `AC_LANG_PUSH' and `AC_LANG_POP'.], [autoconf/lang.m4:166: AC_LANG_SAVE is expanded from... -/usr/share/aclocal/libtool.m4:3807: _LT_AC_LANG_GCJ_CONFIG is expanded from... -/usr/share/aclocal/libtool.m4:3760: AC_LIBTOOL_LANG_GCJ_CONFIG is expanded from... -/usr/share/aclocal/libtool.m4:1741: _LT_AC_TAGCONFIG is expanded from... -/usr/share/aclocal/libtool.m4:232: AC_LIBTOOL_SETUP is expanded from... -configure.in:9: AC_LIBTOOL_SETUP is required by... -/usr/share/aclocal/libtool.m4:90: _AC_PROG_LIBTOOL is expanded from... -configure.in:9: _AC_PROG_LIBTOOL is required by... -/usr/share/aclocal/libtool.m4:70: AC_PROG_LIBTOOL is expanded from... -configure.in:9: the top level]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([objext], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_SYS_COMPILER -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([compiler], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], [GCJ]) -m4trace:configure.in:9: -1- AC_LIBTOOL_PROG_COMPILER_NO_RTTI([GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_no_builtin_flag], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_no_builtin_flag], [GCJ]) -m4trace:configure.in:9: -1- 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, GCJ)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, GCJ) -fno-rtti -fno-exceptions"]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_no_builtin_flag], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_no_builtin_flag], [GCJ]) -m4trace:configure.in:9: -1- AC_LIBTOOL_PROG_COMPILER_PIC([GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_can_build_shared], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_can_build_shared], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [GCJ]) -m4trace:configure.in:9: -2- _LT_AC_TAGVAR([lt_prog_compiler_pic_works], [GCJ]) -m4trace:configure.in:9: -1- AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, GCJ) works], [lt_prog_compiler_pic_works_GCJ], [$_LT_AC_TAGVAR(lt_prog_compiler_pic, GCJ)ifelse([GCJ],[],[ -DPIC],[ifelse([GCJ],[CXX],[ -DPIC],[])])], [], [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, GCJ) in - "" | " "*) ;; - *) _LT_AC_TAGVAR(lt_prog_compiler_pic, GCJ)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, GCJ)" ;; - esac], [_LT_AC_TAGVAR(lt_prog_compiler_pic, GCJ)= - _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, GCJ)=no]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_can_build_shared], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [GCJ]) -m4trace:configure.in:9: -1- AC_LIBTOOL_PROG_CC_C_O([GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_cv_prog_compiler_c_o], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_cv_prog_compiler_c_o], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_cv_prog_compiler_c_o], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_cv_prog_compiler_c_o], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_cv_prog_compiler_c_o], [GCJ]) -m4trace:configure.in:9: -1- AC_LIBTOOL_SYS_HARD_LINK_LOCKS([GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_cv_prog_compiler_c_o], [GCJ]) -m4trace:configure.in:9: -1- AC_LIBTOOL_PROG_LD_SHLIBS([GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([enable_shared_with_static_runtimes], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_From_new_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_from_expsyms_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([thread_safe_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec_ld], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([link_all_deplibs], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_automatic], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_expsym_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([always_export_symbols], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_symbols_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([include_expsyms], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([exclude_expsyms], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([always_export_symbols], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([enable_shared_with_static_runtimes], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_symbols_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([always_export_symbols], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_symbols_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_symbols_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([link_all_deplibs], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([always_export_symbols], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_SYS_LIBPATH_AIX -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_SYS_LIBPATH_AIX -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([no_undefined_flag], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([always_export_symbols], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_From_new_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([enable_shared_with_static_runtimes], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_expsym_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_automatic], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([link_all_deplibs], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec_ld], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec_ld], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([link_all_deplibs], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_From_new_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([no_undefined_flag], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([link_all_deplibs], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([reload_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([no_undefined_flag], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([no_undefined_flag], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([ld_shlibs], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [GCJ]) -m4trace:configure.in:9: -2- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], [GCJ]) -m4trace:configure.in:9: -1- AC_LIBTOOL_SYS_DYNAMIC_LINKER([GCJ]) -m4trace:configure.in:9: -1- AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_action], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([runpath_var GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_automatic], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_action], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_action], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_action], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_action], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_action], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_action], [GCJ]) -m4trace:configure.in:9: -1- AC_LIBTOOL_SYS_LIB_STRIP -m4trace:configure.in:9: -1- AC_LIBTOOL_DLOPEN_SELF([GCJ]) -m4trace:configure.in:9: -1- 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 - ]) -m4trace:configure.in:9: -1- 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"]) - ]) - ]) - ]) - ]) -m4trace:configure.in:9: -1- 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"]) - ]) - ]) -m4trace:configure.in:9: -1- 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"]) - ]) -m4trace:configure.in:9: -1- AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"]) -m4trace:configure.in:9: -1- _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]) -m4trace:configure.in:9: -1- _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]) -m4trace:configure.in:9: -1- AC_LIBTOOL_CONFIG([GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([compiler], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([CC], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([LD], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_no_builtin_flag], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([thread_safe_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([enable_shared_with_static_runtimes], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_from_new_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([predep_objects], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postdep_objects], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([predeps], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postdeps], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([compiler_lib_search_path], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postinstall_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postuninstall_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_from_expsyms_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([no_undefined_flag], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_symbols_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec_ld], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_automatic], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_expsym_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_cv_prog_compiler_c_o], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([exclude_expsyms], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([include_expsyms], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_from_new_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_expsym_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_from_expsyms_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_symbols_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([enable_shared_with_static_runtimes], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([compiler], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([GCC], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([LD], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_cv_prog_compiler_c_o], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_no_builtin_flag], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([thread_safe_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_from_new_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_from_expsyms_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_expsym_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([predep_objects], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postdep_objects], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([predeps], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postdeps], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([compiler_lib_search_path], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([no_undefined_flag], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_action], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec_ld], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_automatic], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([link_all_deplibs], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([fix_srcfile_path], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([always_export_symbols], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_symbols_cmds], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([exclude_expsyms], [GCJ]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([include_expsyms], [GCJ]) -m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AC_LANG_RESTORE' is obsolete. -You should run autoupdate.], [autoconf/lang.m4:172: AC_LANG_RESTORE is expanded from... -/usr/share/aclocal/libtool.m4:3807: _LT_AC_LANG_GCJ_CONFIG is expanded from... -/usr/share/aclocal/libtool.m4:3760: AC_LIBTOOL_LANG_GCJ_CONFIG is expanded from... -/usr/share/aclocal/libtool.m4:1741: _LT_AC_TAGCONFIG is expanded from... -/usr/share/aclocal/libtool.m4:232: AC_LIBTOOL_SETUP is expanded from... -configure.in:9: AC_LIBTOOL_SETUP is required by... -/usr/share/aclocal/libtool.m4:90: _AC_PROG_LIBTOOL is expanded from... -configure.in:9: _AC_PROG_LIBTOOL is required by... -/usr/share/aclocal/libtool.m4:70: AC_PROG_LIBTOOL is expanded from... -configure.in:9: the top level]) -m4trace:configure.in:9: -1- AC_LIBTOOL_LANG_RC_CONFIG -m4trace:configure.in:9: -1- _LT_AC_LANG_RC_CONFIG([RC]) -m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AC_LANG_SAVE' is obsolete. -You should run autoupdate.], [autoconf/lang.m4:166: AC_LANG_SAVE is expanded from... -/usr/share/aclocal/libtool.m4:3846: _LT_AC_LANG_RC_CONFIG is expanded from... -/usr/share/aclocal/libtool.m4:3815: AC_LIBTOOL_LANG_RC_CONFIG is expanded from... -/usr/share/aclocal/libtool.m4:1741: _LT_AC_TAGCONFIG is expanded from... -/usr/share/aclocal/libtool.m4:232: AC_LIBTOOL_SETUP is expanded from... -configure.in:9: AC_LIBTOOL_SETUP is required by... -/usr/share/aclocal/libtool.m4:90: _AC_PROG_LIBTOOL is expanded from... -configure.in:9: _AC_PROG_LIBTOOL is required by... -/usr/share/aclocal/libtool.m4:70: AC_PROG_LIBTOOL is expanded from... -configure.in:9: the top level]) -m4trace:configure.in:9: -1- _m4_warn([obsolete], [instead of using `AC_LANG', `AC_LANG_SAVE', -and `AC_LANG_RESTORE', you should use `AC_LANG_PUSH' and `AC_LANG_POP'.], [autoconf/lang.m4:166: AC_LANG_SAVE is expanded from... -/usr/share/aclocal/libtool.m4:3846: _LT_AC_LANG_RC_CONFIG is expanded from... -/usr/share/aclocal/libtool.m4:3815: AC_LIBTOOL_LANG_RC_CONFIG is expanded from... -/usr/share/aclocal/libtool.m4:1741: _LT_AC_TAGCONFIG is expanded from... -/usr/share/aclocal/libtool.m4:232: AC_LIBTOOL_SETUP is expanded from... -configure.in:9: AC_LIBTOOL_SETUP is required by... -/usr/share/aclocal/libtool.m4:90: _AC_PROG_LIBTOOL is expanded from... -configure.in:9: _AC_PROG_LIBTOOL is required by... -/usr/share/aclocal/libtool.m4:70: AC_PROG_LIBTOOL is expanded from... -configure.in:9: the top level]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([objext], [RC]) -m4trace:configure.in:9: -1- _LT_AC_SYS_COMPILER -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([compiler], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_cv_prog_compiler_c_o], [RC]) -m4trace:configure.in:9: -1- AC_LIBTOOL_CONFIG([RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([compiler], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([CC], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([LD], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_no_builtin_flag], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([thread_safe_flag_spec], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([enable_shared_with_static_runtimes], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_cmds], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_from_new_cmds], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([predep_objects], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postdep_objects], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([predeps], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postdeps], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([compiler_lib_search_path], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postinstall_cmds], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postuninstall_cmds], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_from_expsyms_cmds], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([no_undefined_flag], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_symbols_cmds], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec_ld], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_automatic], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_cmds], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_expsym_cmds], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_cv_prog_compiler_c_o], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([exclude_expsyms], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([include_expsyms], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_cmds], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_from_new_cmds], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_cmds], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_expsym_cmds], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_from_expsyms_cmds], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_symbols_cmds], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds_need_lc], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([enable_shared_with_static_runtimes], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([compiler], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([GCC], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([LD], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_wl], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_pic], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_cv_prog_compiler_c_o], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_static], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([lt_prog_compiler_no_builtin_flag], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_dynamic_flag_spec], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([whole_archive_flag_spec], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([thread_safe_flag_spec], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_cmds], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_from_new_cmds], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([old_archive_from_expsyms_cmds], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_cmds], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([archive_expsym_cmds], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_cmds], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([module_expsym_cmds], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([predep_objects], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postdep_objects], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([predeps], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([postdeps], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([compiler_lib_search_path], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([allow_undefined_flag], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([no_undefined_flag], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_action], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_flag_spec_ld], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_libdir_separator], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_direct], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_minus_L], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_shlibpath_var], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([hardcode_automatic], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([link_all_deplibs], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([fix_srcfile_path], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([always_export_symbols], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([export_symbols_cmds], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([exclude_expsyms], [RC]) -m4trace:configure.in:9: -1- _LT_AC_TAGVAR([include_expsyms], [RC]) -m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AC_LANG_RESTORE' is obsolete. -You should run autoupdate.], [autoconf/lang.m4:172: AC_LANG_RESTORE is expanded from... -/usr/share/aclocal/libtool.m4:3846: _LT_AC_LANG_RC_CONFIG is expanded from... -/usr/share/aclocal/libtool.m4:3815: AC_LIBTOOL_LANG_RC_CONFIG is expanded from... -/usr/share/aclocal/libtool.m4:1741: _LT_AC_TAGCONFIG is expanded from... -/usr/share/aclocal/libtool.m4:232: AC_LIBTOOL_SETUP is expanded from... -configure.in:9: AC_LIBTOOL_SETUP is required by... -/usr/share/aclocal/libtool.m4:90: _AC_PROG_LIBTOOL is expanded from... -configure.in:9: _AC_PROG_LIBTOOL is required by... -/usr/share/aclocal/libtool.m4:70: AC_PROG_LIBTOOL is expanded from... -configure.in:9: the top level]) -m4trace:configure.in:9: -1- AC_SUBST([LIBTOOL]) -m4trace:configure.in:9: -1- AC_LIBTOOL_CXX -m4trace:configure.in:9: -1- _LT_AC_LANG_CXX -m4trace:configure.in:9: -1- _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX]) -m4trace:configure.in:9: -1- AC_LIBTOOL_F77 -m4trace:configure.in:9: -1- _LT_AC_LANG_F77 -m4trace:configure.in:9: -1- _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77]) -m4trace:configure.in:10: -1- AC_PROG_RANLIB -m4trace:configure.in:10: -1- AC_SUBST([RANLIB]) -m4trace:configure.in:10: -1- AC_SUBST([ac_ct_RANLIB]) -m4trace:configure.in:13: -1- AC_CHECK_HEADERS([fcntl.h netinet/in.h stdlib.h string.h sys/ioctl.h sys/socket.h sys/time.h unistd.h math.h]) -m4trace:configure.in:13: -1- AH_OUTPUT([HAVE_FCNTL_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_FCNTL_H]) -m4trace:configure.in:13: -1- AH_OUTPUT([HAVE_NETINET_IN_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_NETINET_IN_H]) -m4trace:configure.in:13: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_STDLIB_H]) -m4trace:configure.in:13: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_STRING_H]) -m4trace:configure.in:13: -1- AH_OUTPUT([HAVE_SYS_IOCTL_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_IOCTL_H]) -m4trace:configure.in:13: -1- AH_OUTPUT([HAVE_SYS_SOCKET_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_SOCKET_H]) -m4trace:configure.in:13: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_TIME_H]) -m4trace:configure.in:13: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_UNISTD_H]) -m4trace:configure.in:13: -1- AH_OUTPUT([HAVE_MATH_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_MATH_H]) -m4trace:configure.in:18: -1- AM_CONDITIONAL([LIBPRI], [test -d "$libpripath" ]) -m4trace:configure.in:18: -1- AC_SUBST([LIBPRI_TRUE]) -m4trace:configure.in:18: -1- AC_SUBST([LIBPRI_FALSE]) -m4trace:configure.in:19: -1- AC_SUBST([libpripath]) -m4trace:configure.in:22: -1- AC_HEADER_TIME -m4trace:configure.in:22: -1- AC_DEFINE_TRACE_LITERAL([TIME_WITH_SYS_TIME]) -m4trace:configure.in:22: -1- AH_OUTPUT([TIME_WITH_SYS_TIME], [/* Define to 1 if you can safely include both and . */ -#undef TIME_WITH_SYS_TIME]) -m4trace:configure.in:25: -1- AC_FUNC_SELECT_ARGTYPES -m4trace:configure.in:25: -1- AC_CHECK_HEADERS([sys/select.h sys/socket.h]) -m4trace:configure.in:25: -1- AH_OUTPUT([HAVE_SYS_SELECT_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_SELECT_H]) -m4trace:configure.in:25: -1- AH_OUTPUT([HAVE_SYS_SOCKET_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_SOCKET_H]) -m4trace:configure.in:25: -1- AC_DEFINE_TRACE_LITERAL([SELECT_TYPE_ARG1]) -m4trace:configure.in:25: -1- AH_OUTPUT([SELECT_TYPE_ARG1], [/* Define to the type of arg 1 for `select\'. */ -#undef SELECT_TYPE_ARG1]) -m4trace:configure.in:25: -1- AC_DEFINE_TRACE_LITERAL([SELECT_TYPE_ARG234]) -m4trace:configure.in:25: -1- AH_OUTPUT([SELECT_TYPE_ARG234], [/* Define to the type of args 2, 3 and 4 for `select\'. */ -#undef SELECT_TYPE_ARG234]) -m4trace:configure.in:25: -1- AC_DEFINE_TRACE_LITERAL([SELECT_TYPE_ARG5]) -m4trace:configure.in:25: -1- AH_OUTPUT([SELECT_TYPE_ARG5], [/* Define to the type of arg 5 for `select\'. */ -#undef SELECT_TYPE_ARG5]) -m4trace:configure.in:26: -1- AC_CHECK_FUNCS([gettimeofday memset select socket]) -m4trace:configure.in:26: -1- AH_OUTPUT([HAVE_GETTIMEOFDAY], [/* Define to 1 if you have the `gettimeofday\' function. */ -#undef HAVE_GETTIMEOFDAY]) -m4trace:configure.in:26: -1- AH_OUTPUT([HAVE_MEMSET], [/* Define to 1 if you have the `memset\' function. */ -#undef HAVE_MEMSET]) -m4trace:configure.in:26: -1- AH_OUTPUT([HAVE_SELECT], [/* Define to 1 if you have the `select\' function. */ -#undef HAVE_SELECT]) -m4trace:configure.in:26: -1- AH_OUTPUT([HAVE_SOCKET], [/* Define to 1 if you have the `socket\' function. */ -#undef HAVE_SOCKET]) -m4trace:configure.in:27: -1- AC_CONFIG_FILES([Makefile]) -m4trace:configure.in:28: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs]) -m4trace:configure.in:28: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs]) -m4trace:configure.in:28: -1- _AM_OUTPUT_DEPENDENCY_COMMANDS diff --git a/api/libsangoma/autom4te.cache/traces.1 b/api/libsangoma/autom4te.cache/traces.1 deleted file mode 100644 index 3374baa..0000000 --- a/api/libsangoma/autom4te.cache/traces.1 +++ /dev/null @@ -1,494 +0,0 @@ -m4trace:configure.in:5: -1- AC_INIT([libsangoma], [1.0.0], [anthmct@yahoo.com]) -m4trace:configure.in:5: -1- m4_pattern_forbid([^_?A[CHUM]_]) -m4trace:configure.in:5: -1- m4_pattern_forbid([_AC_]) -m4trace:configure.in:5: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS']) -m4trace:configure.in:5: -1- m4_pattern_allow([^AS_FLAGS$]) -m4trace:configure.in:5: -1- m4_pattern_forbid([^_?m4_]) -m4trace:configure.in:5: -1- m4_pattern_forbid([^dnl$]) -m4trace:configure.in:5: -1- m4_pattern_forbid([^_?AS_]) -m4trace:configure.in:5: -1- AC_SUBST([SHELL], [${CONFIG_SHELL-/bin/sh}]) -m4trace:configure.in:5: -1- AC_SUBST([PATH_SEPARATOR]) -m4trace:configure.in:5: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])]) -m4trace:configure.in:5: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])]) -m4trace:configure.in:5: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])]) -m4trace:configure.in:5: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])]) -m4trace:configure.in:5: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])]) -m4trace:configure.in:5: -1- AC_SUBST([exec_prefix], [NONE]) -m4trace:configure.in:5: -1- AC_SUBST([prefix], [NONE]) -m4trace:configure.in:5: -1- AC_SUBST([program_transform_name], [s,x,x,]) -m4trace:configure.in:5: -1- AC_SUBST([bindir], ['${exec_prefix}/bin']) -m4trace:configure.in:5: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin']) -m4trace:configure.in:5: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec']) -m4trace:configure.in:5: -1- AC_SUBST([datadir], ['${prefix}/share']) -m4trace:configure.in:5: -1- AC_SUBST([sysconfdir], ['${prefix}/etc']) -m4trace:configure.in:5: -1- AC_SUBST([sharedstatedir], ['${prefix}/com']) -m4trace:configure.in:5: -1- AC_SUBST([localstatedir], ['${prefix}/var']) -m4trace:configure.in:5: -1- AC_SUBST([libdir], ['${exec_prefix}/lib']) -m4trace:configure.in:5: -1- AC_SUBST([includedir], ['${prefix}/include']) -m4trace:configure.in:5: -1- AC_SUBST([oldincludedir], ['/usr/include']) -m4trace:configure.in:5: -1- AC_SUBST([infodir], ['${prefix}/info']) -m4trace:configure.in:5: -1- AC_SUBST([mandir], ['${prefix}/man']) -m4trace:configure.in:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME]) -m4trace:configure.in:5: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */ -#undef PACKAGE_NAME]) -m4trace:configure.in:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME]) -m4trace:configure.in:5: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */ -#undef PACKAGE_TARNAME]) -m4trace:configure.in:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION]) -m4trace:configure.in:5: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */ -#undef PACKAGE_VERSION]) -m4trace:configure.in:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING]) -m4trace:configure.in:5: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */ -#undef PACKAGE_STRING]) -m4trace:configure.in:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT]) -m4trace:configure.in:5: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */ -#undef PACKAGE_BUGREPORT]) -m4trace:configure.in:5: -1- AC_SUBST([build_alias]) -m4trace:configure.in:5: -1- AC_SUBST([host_alias]) -m4trace:configure.in:5: -1- AC_SUBST([target_alias]) -m4trace:configure.in:5: -1- AC_SUBST([DEFS]) -m4trace:configure.in:5: -1- AC_SUBST([ECHO_C]) -m4trace:configure.in:5: -1- AC_SUBST([ECHO_N]) -m4trace:configure.in:5: -1- AC_SUBST([ECHO_T]) -m4trace:configure.in:5: -1- AC_SUBST([LIBS]) -m4trace:configure.in:6: -1- AM_INIT_AUTOMAKE([libsangoma], [1.0.0]) -m4trace:configure.in:6: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$]) -m4trace:configure.in:6: -1- AM_AUTOMAKE_VERSION([1.9.2]) -m4trace:configure.in:6: -1- AC_PROG_INSTALL -m4trace:configure.in:6: -1- AC_SUBST([INSTALL_PROGRAM]) -m4trace:configure.in:6: -1- AC_SUBST([INSTALL_SCRIPT]) -m4trace:configure.in:6: -1- AC_SUBST([INSTALL_DATA]) -m4trace:configure.in:6: -1- AC_SUBST([CYGPATH_W]) -m4trace:configure.in:6: -1- AC_SUBST([PACKAGE], [libsangoma]) -m4trace:configure.in:6: -1- AC_SUBST([VERSION], [1.0.0]) -m4trace:configure.in:6: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE]) -m4trace:configure.in:6: -1- AH_OUTPUT([PACKAGE], [/* Name of package */ -#undef PACKAGE]) -m4trace:configure.in:6: -1- AC_DEFINE_TRACE_LITERAL([VERSION]) -m4trace:configure.in:6: -1- AH_OUTPUT([VERSION], [/* Version number of package */ -#undef VERSION]) -m4trace:configure.in:6: -1- AC_SUBST([ACLOCAL]) -m4trace:configure.in:6: -1- AC_SUBST([AUTOCONF]) -m4trace:configure.in:6: -1- AC_SUBST([AUTOMAKE]) -m4trace:configure.in:6: -1- AC_SUBST([AUTOHEADER]) -m4trace:configure.in:6: -1- AC_SUBST([MAKEINFO]) -m4trace:configure.in:6: -1- AC_SUBST([install_sh]) -m4trace:configure.in:6: -1- AC_SUBST([STRIP]) -m4trace:configure.in:6: -1- AC_SUBST([ac_ct_STRIP]) -m4trace:configure.in:6: -1- AC_SUBST([INSTALL_STRIP_PROGRAM]) -m4trace:configure.in:6: -1- AC_SUBST([mkdir_p]) -m4trace:configure.in:6: -1- AC_PROG_AWK -m4trace:configure.in:6: -1- AC_SUBST([AWK]) -m4trace:configure.in:6: -1- AC_PROG_MAKE_SET -m4trace:configure.in:6: -1- AC_SUBST([SET_MAKE]) -m4trace:configure.in:6: -1- AC_SUBST([am__leading_dot]) -m4trace:configure.in:6: -1- AC_SUBST([AMTAR]) -m4trace:configure.in:6: -1- AC_SUBST([am__tar]) -m4trace:configure.in:6: -1- AC_SUBST([am__untar]) -m4trace:configure.in:8: -1- AC_PROG_CC -m4trace:configure.in:8: -1- AC_SUBST([CC]) -m4trace:configure.in:8: -1- AC_SUBST([CFLAGS]) -m4trace:configure.in:8: -1- AC_SUBST([LDFLAGS]) -m4trace:configure.in:8: -1- AC_SUBST([CPPFLAGS]) -m4trace:configure.in:8: -1- AC_SUBST([CC]) -m4trace:configure.in:8: -1- AC_SUBST([ac_ct_CC]) -m4trace:configure.in:8: -1- AC_SUBST([CC]) -m4trace:configure.in:8: -1- AC_SUBST([ac_ct_CC]) -m4trace:configure.in:8: -1- AC_SUBST([CC]) -m4trace:configure.in:8: -1- AC_SUBST([CC]) -m4trace:configure.in:8: -1- AC_SUBST([ac_ct_CC]) -m4trace:configure.in:8: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext]) -m4trace:configure.in:8: -1- AC_SUBST([OBJEXT], [$ac_cv_objext]) -m4trace:configure.in:8: -1- AC_SUBST([DEPDIR], ["${am__leading_dot}deps"]) -m4trace:configure.in:8: -1- AC_SUBST([am__include]) -m4trace:configure.in:8: -1- AC_SUBST([am__quote]) -m4trace:configure.in:8: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) -m4trace:configure.in:8: -1- AC_SUBST([AMDEP_TRUE]) -m4trace:configure.in:8: -1- AC_SUBST([AMDEP_FALSE]) -m4trace:configure.in:8: -1- AC_SUBST([AMDEPBACKSLASH]) -m4trace:configure.in:8: -1- AC_SUBST([CCDEPMODE], [depmode=$am_cv_CC_dependencies_compiler_type]) -m4trace:configure.in:8: -1- AM_CONDITIONAL([am__fastdepCC], [ - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3]) -m4trace:configure.in:8: -1- AC_SUBST([am__fastdepCC_TRUE]) -m4trace:configure.in:8: -1- AC_SUBST([am__fastdepCC_FALSE]) -m4trace:configure.in:9: -1- AC_PROG_LIBTOOL -m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -autoconf/general.m4:1303: AC_ARG_ENABLE is expanded from... -aclocal.m4:1778: AC_ENABLE_SHARED is expanded from... -configure.in:9: AC_ENABLE_SHARED is required by... -aclocal.m4:223: AC_LIBTOOL_SETUP is expanded from... -configure.in:9: AC_LIBTOOL_SETUP is required by... -aclocal.m4:81: _AC_PROG_LIBTOOL is expanded from... -configure.in:9: _AC_PROG_LIBTOOL is required by... -aclocal.m4:61: AC_PROG_LIBTOOL is expanded from... -configure.in:9: the top level]) -m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -autoconf/general.m4:1303: AC_ARG_ENABLE is expanded from... -aclocal.m4:1817: AC_ENABLE_STATIC is expanded from... -configure.in:9: AC_ENABLE_STATIC is required by... -aclocal.m4:223: AC_LIBTOOL_SETUP is expanded from... -configure.in:9: AC_LIBTOOL_SETUP is required by... -aclocal.m4:81: _AC_PROG_LIBTOOL is expanded from... -configure.in:9: _AC_PROG_LIBTOOL is required by... -aclocal.m4:61: AC_PROG_LIBTOOL is expanded from... -configure.in:9: the top level]) -m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -autoconf/general.m4:1303: AC_ARG_ENABLE is expanded from... -aclocal.m4:1856: AC_ENABLE_FAST_INSTALL is expanded from... -configure.in:9: AC_ENABLE_FAST_INSTALL is required by... -aclocal.m4:223: AC_LIBTOOL_SETUP is expanded from... -configure.in:9: AC_LIBTOOL_SETUP is required by... -aclocal.m4:81: _AC_PROG_LIBTOOL is expanded from... -configure.in:9: _AC_PROG_LIBTOOL is required by... -aclocal.m4:61: AC_PROG_LIBTOOL is expanded from... -configure.in:9: the top level]) -m4trace:configure.in:9: -1- AC_CANONICAL_HOST -m4trace:configure.in:9: -1- AC_CANONICAL_BUILD -m4trace:configure.in:9: -1- AC_SUBST([build], [$ac_cv_build]) -m4trace:configure.in:9: -1- AC_SUBST([build_cpu], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`]) -m4trace:configure.in:9: -1- AC_SUBST([build_vendor], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`]) -m4trace:configure.in:9: -1- AC_SUBST([build_os], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`]) -m4trace:configure.in:9: -1- AC_SUBST([host], [$ac_cv_host]) -m4trace:configure.in:9: -1- AC_SUBST([host_cpu], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`]) -m4trace:configure.in:9: -1- AC_SUBST([host_vendor], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`]) -m4trace:configure.in:9: -1- AC_SUBST([host_os], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`]) -m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -autoconf/general.m4:1331: AC_ARG_WITH is expanded from... -aclocal.m4:2053: AC_PROG_LD is expanded from... -configure.in:9: AC_PROG_LD is required by... -aclocal.m4:223: AC_LIBTOOL_SETUP is expanded from... -configure.in:9: AC_LIBTOOL_SETUP is required by... -aclocal.m4:81: _AC_PROG_LIBTOOL is expanded from... -configure.in:9: _AC_PROG_LIBTOOL is required by... -aclocal.m4:61: AC_PROG_LIBTOOL is expanded from... -configure.in:9: the top level]) -m4trace:configure.in:9: -1- AC_SUBST([EGREP]) -m4trace:configure.in:9: -1- AC_PROG_LN_S -m4trace:configure.in:9: -1- AC_SUBST([LN_S], [$as_ln_s]) -m4trace:configure.in:9: -1- AC_SUBST([ECHO]) -m4trace:configure.in:9: -1- AC_SUBST([AR]) -m4trace:configure.in:9: -1- AC_SUBST([ac_ct_AR]) -m4trace:configure.in:9: -1- AC_SUBST([RANLIB]) -m4trace:configure.in:9: -1- AC_SUBST([ac_ct_RANLIB]) -m4trace:configure.in:9: -1- AC_SUBST([STRIP]) -m4trace:configure.in:9: -1- AC_SUBST([ac_ct_STRIP]) -m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -autoconf/general.m4:1303: AC_ARG_ENABLE is expanded from... -aclocal.m4:223: AC_LIBTOOL_SETUP is expanded from... -configure.in:9: AC_LIBTOOL_SETUP is required by... -aclocal.m4:81: _AC_PROG_LIBTOOL is expanded from... -configure.in:9: _AC_PROG_LIBTOOL is required by... -aclocal.m4:61: AC_PROG_LIBTOOL is expanded from... -configure.in:9: the top level]) -m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -autoconf/general.m4:1331: AC_ARG_WITH is expanded from... -aclocal.m4:223: AC_LIBTOOL_SETUP is expanded from... -configure.in:9: AC_LIBTOOL_SETUP is required by... -aclocal.m4:81: _AC_PROG_LIBTOOL is expanded from... -configure.in:9: _AC_PROG_LIBTOOL is required by... -aclocal.m4:61: AC_PROG_LIBTOOL is expanded from... -configure.in:9: the top level]) -m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. -You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... -autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... -autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... -aclocal.m4:550: _LT_AC_LOCK is expanded from... -configure.in:9: _LT_AC_LOCK is required by... -aclocal.m4:981: AC_LIBTOOL_SYS_HARD_LINK_LOCKS is expanded from... -aclocal.m4:2609: _LT_AC_LANG_C_CONFIG is expanded from... -aclocal.m4:2476: AC_LIBTOOL_LANG_C_CONFIG is expanded from... -aclocal.m4:223: AC_LIBTOOL_SETUP is expanded from... -configure.in:9: AC_LIBTOOL_SETUP is required by... -aclocal.m4:81: _AC_PROG_LIBTOOL is expanded from... -configure.in:9: _AC_PROG_LIBTOOL is required by... -aclocal.m4:61: AC_PROG_LIBTOOL is expanded from... -configure.in:9: the top level]) -m4trace:configure.in:9: -1- AC_CHECK_HEADERS([dlfcn.h]) -m4trace:configure.in:9: -1- AH_OUTPUT([HAVE_DLFCN_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_DLFCN_H]) -m4trace:configure.in:9: -1- AC_HEADER_STDC -m4trace:configure.in:9: -1- AC_PROG_CPP -m4trace:configure.in:9: -1- AC_SUBST([CPP]) -m4trace:configure.in:9: -1- AC_SUBST([CPPFLAGS]) -m4trace:configure.in:9: -1- AC_SUBST([CPP]) -m4trace:configure.in:9: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS]) -m4trace:configure.in:9: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */ -#undef STDC_HEADERS]) -m4trace:configure.in:9: -1- AC_CHECK_HEADERS([sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h], [], [], [$ac_includes_default]) -m4trace:configure.in:9: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_TYPES_H]) -m4trace:configure.in:9: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_STAT_H]) -m4trace:configure.in:9: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_STDLIB_H]) -m4trace:configure.in:9: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_STRING_H]) -m4trace:configure.in:9: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_MEMORY_H]) -m4trace:configure.in:9: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_STRINGS_H]) -m4trace:configure.in:9: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_INTTYPES_H]) -m4trace:configure.in:9: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_STDINT_H]) -m4trace:configure.in:9: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_UNISTD_H]) -m4trace:configure.in:9: -1- 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 - ]) -m4trace:configure.in:9: -1- 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"]) - ]) - ]) - ]) - ]) -m4trace:configure.in:9: -1- 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"]) - ]) - ]) -m4trace:configure.in:9: -1- 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"]) - ]) -m4trace:configure.in:9: -1- AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"]) -m4trace:configure.in:9: -1- _LT_AC_TAGCONFIG -m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete. -You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from... -autoconf/general.m4:1331: AC_ARG_WITH is expanded from... -aclocal.m4:1732: _LT_AC_TAGCONFIG is expanded from... -aclocal.m4:223: AC_LIBTOOL_SETUP is expanded from... -configure.in:9: AC_LIBTOOL_SETUP is required by... -aclocal.m4:81: _AC_PROG_LIBTOOL is expanded from... -configure.in:9: _AC_PROG_LIBTOOL is required by... -aclocal.m4:61: AC_PROG_LIBTOOL is expanded from... -configure.in:9: the top level]) -m4trace:configure.in:9: -1- _m4_warn([obsolete], [back quotes and double quotes must not be escaped in: $as_me:$LINENO: error: tag name \"$tagname\" already exists], [aclocal.m4:1732: _LT_AC_TAGCONFIG is expanded from... -aclocal.m4:223: AC_LIBTOOL_SETUP is expanded from... -configure.in:9: AC_LIBTOOL_SETUP is required by... -aclocal.m4:81: _AC_PROG_LIBTOOL is expanded from... -configure.in:9: _AC_PROG_LIBTOOL is required by... -aclocal.m4:61: AC_PROG_LIBTOOL is expanded from... -configure.in:9: the top level]) -m4trace:configure.in:9: -1- _m4_warn([obsolete], [back quotes and double quotes must not be escaped in: $as_me: error: tag name \"$tagname\" already exists], [aclocal.m4:1732: _LT_AC_TAGCONFIG is expanded from... -aclocal.m4:223: AC_LIBTOOL_SETUP is expanded from... -configure.in:9: AC_LIBTOOL_SETUP is required by... -aclocal.m4:81: _AC_PROG_LIBTOOL is expanded from... -configure.in:9: _AC_PROG_LIBTOOL is required by... -aclocal.m4:61: AC_PROG_LIBTOOL is expanded from... -configure.in:9: the top level]) -m4trace:configure.in:9: -1- AC_PROG_CXX -m4trace:configure.in:9: -1- AC_SUBST([CXX]) -m4trace:configure.in:9: -1- AC_SUBST([CXXFLAGS]) -m4trace:configure.in:9: -1- AC_SUBST([LDFLAGS]) -m4trace:configure.in:9: -1- AC_SUBST([CPPFLAGS]) -m4trace:configure.in:9: -1- AC_SUBST([CXX]) -m4trace:configure.in:9: -1- AC_SUBST([ac_ct_CXX]) -m4trace:configure.in:9: -1- AC_SUBST([CXXDEPMODE], [depmode=$am_cv_CXX_dependencies_compiler_type]) -m4trace:configure.in:9: -1- AM_CONDITIONAL([am__fastdepCXX], [ - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CXX_dependencies_compiler_type" = gcc3]) -m4trace:configure.in:9: -1- AC_SUBST([am__fastdepCXX_TRUE]) -m4trace:configure.in:9: -1- AC_SUBST([am__fastdepCXX_FALSE]) -m4trace:configure.in:9: -1- AC_SUBST([CXXCPP]) -m4trace:configure.in:9: -1- AC_SUBST([CPPFLAGS]) -m4trace:configure.in:9: -1- AC_SUBST([CXXCPP]) -m4trace:configure.in:9: -1- 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 - ]) -m4trace:configure.in:9: -1- 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"]) - ]) - ]) - ]) - ]) -m4trace:configure.in:9: -1- 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"]) - ]) - ]) -m4trace:configure.in:9: -1- 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"]) - ]) -m4trace:configure.in:9: -1- AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"]) -m4trace:configure.in:9: -1- AC_SUBST([F77]) -m4trace:configure.in:9: -1- AC_SUBST([FFLAGS]) -m4trace:configure.in:9: -1- AC_SUBST([LDFLAGS]) -m4trace:configure.in:9: -1- AC_SUBST([F77]) -m4trace:configure.in:9: -1- AC_SUBST([ac_ct_F77]) -m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AC_LANG_SAVE' is obsolete. -You should run autoupdate.], [autoconf/lang.m4:166: AC_LANG_SAVE is expanded from... -aclocal.m4:3786: _LT_AC_LANG_GCJ_CONFIG is expanded from... -aclocal.m4:3743: AC_LIBTOOL_LANG_GCJ_CONFIG is expanded from... -aclocal.m4:1732: _LT_AC_TAGCONFIG is expanded from... -aclocal.m4:223: AC_LIBTOOL_SETUP is expanded from... -configure.in:9: AC_LIBTOOL_SETUP is required by... -aclocal.m4:81: _AC_PROG_LIBTOOL is expanded from... -configure.in:9: _AC_PROG_LIBTOOL is required by... -aclocal.m4:61: AC_PROG_LIBTOOL is expanded from... -configure.in:9: the top level]) -m4trace:configure.in:9: -1- _m4_warn([obsolete], [instead of using `AC_LANG', `AC_LANG_SAVE', -and `AC_LANG_RESTORE', you should use `AC_LANG_PUSH' and `AC_LANG_POP'.], [autoconf/lang.m4:166: AC_LANG_SAVE is expanded from... -aclocal.m4:3786: _LT_AC_LANG_GCJ_CONFIG is expanded from... -aclocal.m4:3743: AC_LIBTOOL_LANG_GCJ_CONFIG is expanded from... -aclocal.m4:1732: _LT_AC_TAGCONFIG is expanded from... -aclocal.m4:223: AC_LIBTOOL_SETUP is expanded from... -configure.in:9: AC_LIBTOOL_SETUP is required by... -aclocal.m4:81: _AC_PROG_LIBTOOL is expanded from... -configure.in:9: _AC_PROG_LIBTOOL is required by... -aclocal.m4:61: AC_PROG_LIBTOOL is expanded from... -configure.in:9: the top level]) -m4trace:configure.in:9: -1- 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 - ]) -m4trace:configure.in:9: -1- 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"]) - ]) - ]) - ]) - ]) -m4trace:configure.in:9: -1- 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"]) - ]) - ]) -m4trace:configure.in:9: -1- 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"]) - ]) -m4trace:configure.in:9: -1- AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"]) -m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AC_LANG_RESTORE' is obsolete. -You should run autoupdate.], [autoconf/lang.m4:172: AC_LANG_RESTORE is expanded from... -aclocal.m4:3786: _LT_AC_LANG_GCJ_CONFIG is expanded from... -aclocal.m4:3743: AC_LIBTOOL_LANG_GCJ_CONFIG is expanded from... -aclocal.m4:1732: _LT_AC_TAGCONFIG is expanded from... -aclocal.m4:223: AC_LIBTOOL_SETUP is expanded from... -configure.in:9: AC_LIBTOOL_SETUP is required by... -aclocal.m4:81: _AC_PROG_LIBTOOL is expanded from... -configure.in:9: _AC_PROG_LIBTOOL is required by... -aclocal.m4:61: AC_PROG_LIBTOOL is expanded from... -configure.in:9: the top level]) -m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AC_LANG_SAVE' is obsolete. -You should run autoupdate.], [autoconf/lang.m4:166: AC_LANG_SAVE is expanded from... -aclocal.m4:3825: _LT_AC_LANG_RC_CONFIG is expanded from... -aclocal.m4:3794: AC_LIBTOOL_LANG_RC_CONFIG is expanded from... -aclocal.m4:1732: _LT_AC_TAGCONFIG is expanded from... -aclocal.m4:223: AC_LIBTOOL_SETUP is expanded from... -configure.in:9: AC_LIBTOOL_SETUP is required by... -aclocal.m4:81: _AC_PROG_LIBTOOL is expanded from... -configure.in:9: _AC_PROG_LIBTOOL is required by... -aclocal.m4:61: AC_PROG_LIBTOOL is expanded from... -configure.in:9: the top level]) -m4trace:configure.in:9: -1- _m4_warn([obsolete], [instead of using `AC_LANG', `AC_LANG_SAVE', -and `AC_LANG_RESTORE', you should use `AC_LANG_PUSH' and `AC_LANG_POP'.], [autoconf/lang.m4:166: AC_LANG_SAVE is expanded from... -aclocal.m4:3825: _LT_AC_LANG_RC_CONFIG is expanded from... -aclocal.m4:3794: AC_LIBTOOL_LANG_RC_CONFIG is expanded from... -aclocal.m4:1732: _LT_AC_TAGCONFIG is expanded from... -aclocal.m4:223: AC_LIBTOOL_SETUP is expanded from... -configure.in:9: AC_LIBTOOL_SETUP is required by... -aclocal.m4:81: _AC_PROG_LIBTOOL is expanded from... -configure.in:9: _AC_PROG_LIBTOOL is required by... -aclocal.m4:61: AC_PROG_LIBTOOL is expanded from... -configure.in:9: the top level]) -m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AC_LANG_RESTORE' is obsolete. -You should run autoupdate.], [autoconf/lang.m4:172: AC_LANG_RESTORE is expanded from... -aclocal.m4:3825: _LT_AC_LANG_RC_CONFIG is expanded from... -aclocal.m4:3794: AC_LIBTOOL_LANG_RC_CONFIG is expanded from... -aclocal.m4:1732: _LT_AC_TAGCONFIG is expanded from... -aclocal.m4:223: AC_LIBTOOL_SETUP is expanded from... -configure.in:9: AC_LIBTOOL_SETUP is required by... -aclocal.m4:81: _AC_PROG_LIBTOOL is expanded from... -configure.in:9: _AC_PROG_LIBTOOL is required by... -aclocal.m4:61: AC_PROG_LIBTOOL is expanded from... -configure.in:9: the top level]) -m4trace:configure.in:9: -1- AC_SUBST([LIBTOOL]) -m4trace:configure.in:10: -1- AC_PROG_RANLIB -m4trace:configure.in:10: -1- AC_SUBST([RANLIB]) -m4trace:configure.in:10: -1- AC_SUBST([ac_ct_RANLIB]) -m4trace:configure.in:13: -1- AC_CHECK_HEADERS([fcntl.h netinet/in.h stdlib.h string.h sys/ioctl.h sys/socket.h sys/time.h unistd.h math.h]) -m4trace:configure.in:13: -1- AH_OUTPUT([HAVE_FCNTL_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_FCNTL_H]) -m4trace:configure.in:13: -1- AH_OUTPUT([HAVE_NETINET_IN_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_NETINET_IN_H]) -m4trace:configure.in:13: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_STDLIB_H]) -m4trace:configure.in:13: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_STRING_H]) -m4trace:configure.in:13: -1- AH_OUTPUT([HAVE_SYS_IOCTL_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_IOCTL_H]) -m4trace:configure.in:13: -1- AH_OUTPUT([HAVE_SYS_SOCKET_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_SOCKET_H]) -m4trace:configure.in:13: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_TIME_H]) -m4trace:configure.in:13: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_UNISTD_H]) -m4trace:configure.in:13: -1- AH_OUTPUT([HAVE_MATH_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_MATH_H]) -m4trace:configure.in:18: -1- AM_CONDITIONAL([LIBPRI], [test -d "$libpripath" ]) -m4trace:configure.in:18: -1- AC_SUBST([LIBPRI_TRUE]) -m4trace:configure.in:18: -1- AC_SUBST([LIBPRI_FALSE]) -m4trace:configure.in:19: -1- AC_SUBST([libpripath]) -m4trace:configure.in:22: -1- AC_HEADER_TIME -m4trace:configure.in:22: -1- AC_DEFINE_TRACE_LITERAL([TIME_WITH_SYS_TIME]) -m4trace:configure.in:22: -1- AH_OUTPUT([TIME_WITH_SYS_TIME], [/* Define to 1 if you can safely include both and . */ -#undef TIME_WITH_SYS_TIME]) -m4trace:configure.in:25: -1- AC_FUNC_SELECT_ARGTYPES -m4trace:configure.in:25: -1- AC_CHECK_HEADERS([sys/select.h sys/socket.h]) -m4trace:configure.in:25: -1- AH_OUTPUT([HAVE_SYS_SELECT_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_SELECT_H]) -m4trace:configure.in:25: -1- AH_OUTPUT([HAVE_SYS_SOCKET_H], [/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_SOCKET_H]) -m4trace:configure.in:25: -1- AC_DEFINE_TRACE_LITERAL([SELECT_TYPE_ARG1]) -m4trace:configure.in:25: -1- AH_OUTPUT([SELECT_TYPE_ARG1], [/* Define to the type of arg 1 for `select\'. */ -#undef SELECT_TYPE_ARG1]) -m4trace:configure.in:25: -1- AC_DEFINE_TRACE_LITERAL([SELECT_TYPE_ARG234]) -m4trace:configure.in:25: -1- AH_OUTPUT([SELECT_TYPE_ARG234], [/* Define to the type of args 2, 3 and 4 for `select\'. */ -#undef SELECT_TYPE_ARG234]) -m4trace:configure.in:25: -1- AC_DEFINE_TRACE_LITERAL([SELECT_TYPE_ARG5]) -m4trace:configure.in:25: -1- AH_OUTPUT([SELECT_TYPE_ARG5], [/* Define to the type of arg 5 for `select\'. */ -#undef SELECT_TYPE_ARG5]) -m4trace:configure.in:26: -1- AC_CHECK_FUNCS([gettimeofday memset select socket]) -m4trace:configure.in:26: -1- AH_OUTPUT([HAVE_GETTIMEOFDAY], [/* Define to 1 if you have the `gettimeofday\' function. */ -#undef HAVE_GETTIMEOFDAY]) -m4trace:configure.in:26: -1- AH_OUTPUT([HAVE_MEMSET], [/* Define to 1 if you have the `memset\' function. */ -#undef HAVE_MEMSET]) -m4trace:configure.in:26: -1- AH_OUTPUT([HAVE_SELECT], [/* Define to 1 if you have the `select\' function. */ -#undef HAVE_SELECT]) -m4trace:configure.in:26: -1- AH_OUTPUT([HAVE_SOCKET], [/* Define to 1 if you have the `socket\' function. */ -#undef HAVE_SOCKET]) -m4trace:configure.in:27: -1- AC_CONFIG_FILES([Makefile]) -m4trace:configure.in:28: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs]) -m4trace:configure.in:28: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs]) diff --git a/api/libsangoma/config.log b/api/libsangoma/config.log index 8a53d36..9f91331 100644 --- a/api/libsangoma/config.log +++ b/api/libsangoma/config.log @@ -4,17 +4,17 @@ running configure, to aid debugging if configure makes a mistake. It was created by libsangoma configure 1.0.0, which was generated by GNU Autoconf 2.59. Invocation command line was - $ ./configure --prefix=/usr/include + $ ./configure --prefix=/root/3.1.X/wanpipe/rpmbuild/usr/include ## --------- ## ## Platform. ## ## --------- ## -hostname = tesla +hostname = tesla.localdomain uname -m = i686 -uname -r = 2.6.18-8.el5 +uname -r = 2.6.9-5.0.3.ELsmp uname -s = Linux -uname -v = #1 SMP Thu Mar 15 19:57:35 EDT 2007 +uname -v = #1 SMP Tue Oct 11 12:02:02 EDT 2005 /usr/bin/uname -p = unknown /bin/uname -X = unknown @@ -27,7 +27,6 @@ hostinfo = unknown /usr/bin/oslevel = unknown /bin/universe = unknown -PATH: /usr/lib/qt-3.3/bin PATH: /usr/kerberos/sbin PATH: /usr/kerberos/bin PATH: /usr/local/sbin @@ -44,6 +43,10 @@ PATH: /bin PATH: /sbin PATH: /usr/bin PATH: /usr/sbin +PATH: /bin +PATH: /sbin +PATH: /usr/bin +PATH: /usr/sbin ## ----------- ## @@ -64,21 +67,20 @@ configure:2012: found /usr/bin/gcc configure:2022: result: gcc configure:2266: checking for C compiler version configure:2269: gcc --version &5 -gcc (GCC) 4.1.1 20070105 (Red Hat 4.1.1-52) -Copyright (C) 2006 Free Software Foundation, Inc. +gcc (GCC) 3.4.3 20041212 (Red Hat 3.4.3-9.EL4) +Copyright (C) 2004 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. configure:2272: $? = 0 configure:2274: gcc -v &5 -Using built-in specs. -Target: i386-redhat-linux -Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --enable-plugin --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic --host=i386-redhat-linux +Reading specs from /usr/lib/gcc/i386-redhat-linux/3.4.3/specs +Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-java-awt=gtk --host=i386-redhat-linux Thread model: posix -gcc version 4.1.1 20070105 (Red Hat 4.1.1-52) +gcc version 3.4.3 20041212 (Red Hat 3.4.3-9.EL4) configure:2277: $? = 0 configure:2279: gcc -V &5 -gcc: '-V' option must have argument +gcc: `-V' option must have argument configure:2282: $? = 1 configure:2305: checking for C compiler default output file name configure:2308: gcc conftest.c >&5 @@ -126,7 +128,7 @@ configure:2702: test -s conftest.o configure:2705: $? = 0 configure:2723: result: none needed configure:2741: gcc -c -g -O2 conftest.c >&5 -conftest.c:2: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'me' +conftest.c:2: error: syntax error before "me" configure:2747: $? = 1 configure: failed program was: | #ifndef __cplusplus @@ -160,7 +162,7 @@ configure:3829: checking how to run the C preprocessor configure:3864: gcc -E conftest.c configure:3870: $? = 0 configure:3902: gcc -E conftest.c -conftest.c:11:28: error: ac_nonexistent.h: No such file or directory +conftest.c:11:28: ac_nonexistent.h: No such file or directory configure:3908: $? = 1 configure: failed program was: | /* confdefs.h. */ @@ -178,7 +180,7 @@ configure:3947: result: gcc -E configure:3971: gcc -E conftest.c configure:3977: $? = 0 configure:4009: gcc -E conftest.c -conftest.c:11:28: error: ac_nonexistent.h: No such file or directory +conftest.c:11:28: ac_nonexistent.h: No such file or directory configure:4015: $? = 1 configure: failed program was: | /* confdefs.h. */ @@ -201,8 +203,6 @@ configure:4097: $? = 0 configure:4100: test -s conftest.o configure:4103: $? = 0 configure:4192: gcc -o conftest -g -O2 conftest.c >&5 -conftest.c: In function 'main': -conftest.c:28: warning: incompatible implicit declaration of built-in function 'exit' configure:4195: $? = 0 configure:4197: ./conftest configure:4200: $? = 0 @@ -308,21 +308,20 @@ configure:4515: found /usr/bin/g++ configure:4525: result: g++ configure:4541: checking for C++ compiler version configure:4544: g++ --version &5 -g++ (GCC) 4.1.1 20070105 (Red Hat 4.1.1-52) -Copyright (C) 2006 Free Software Foundation, Inc. +g++ (GCC) 3.4.3 20041212 (Red Hat 3.4.3-9.EL4) +Copyright (C) 2004 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. configure:4547: $? = 0 configure:4549: g++ -v &5 -Using built-in specs. -Target: i386-redhat-linux -Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --enable-plugin --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic --host=i386-redhat-linux +Reading specs from /usr/lib/gcc/i386-redhat-linux/3.4.3/specs +Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-java-awt=gtk --host=i386-redhat-linux Thread model: posix -gcc version 4.1.1 20070105 (Red Hat 4.1.1-52) +gcc version 3.4.3 20041212 (Red Hat 3.4.3-9.EL4) configure:4552: $? = 0 configure:4554: g++ -V &5 -g++: '-V' option must have argument +g++: `-V' option must have argument configure:4557: $? = 1 configure:4560: checking whether we are using the GNU C++ compiler configure:4584: g++ -c conftest.cc >&5 @@ -350,8 +349,9 @@ configure:4728: $? = 0 configure:4731: test -s conftest.o configure:4734: $? = 0 configure:4760: g++ -c -g -O2 conftest.cc >&5 -conftest.cc: In function 'int main()': -conftest.cc:26: error: 'exit' was not declared in this scope +conftest.cc: In function `int main()': +conftest.cc:26: error: `exit' undeclared (first use this function) +conftest.cc:26: error: (Each undeclared identifier is reported only once for each function it appears in.) configure:4766: $? = 1 configure: failed program was: | /* confdefs.h. */ @@ -403,7 +403,7 @@ configure:4916: checking how to run the C++ preprocessor configure:4947: g++ -E conftest.cc configure:4953: $? = 0 configure:4985: g++ -E conftest.cc -conftest.cc:25:28: error: ac_nonexistent.h: No such file or directory +conftest.cc:25:28: ac_nonexistent.h: No such file or directory configure:4991: $? = 1 configure: failed program was: | /* confdefs.h. */ @@ -435,7 +435,7 @@ configure:5030: result: g++ -E configure:5054: g++ -E conftest.cc configure:5060: $? = 0 configure:5092: g++ -E conftest.cc -conftest.cc:25:28: error: ac_nonexistent.h: No such file or directory +conftest.cc:25:28: ac_nonexistent.h: No such file or directory configure:5098: $? = 1 configure: failed program was: | /* confdefs.h. */ @@ -464,55 +464,30 @@ configure: failed program was: | /* end confdefs.h. */ | #include configure:5193: checking for g77 -configure:5222: result: no -configure:5193: checking for f77 -configure:5222: result: no -configure:5193: checking for xlf -configure:5222: result: no -configure:5193: checking for frt -configure:5222: result: no -configure:5193: checking for pgf77 -configure:5222: result: no -configure:5193: checking for fort77 -configure:5222: result: no -configure:5193: checking for fl32 -configure:5222: result: no -configure:5193: checking for af77 -configure:5222: result: no -configure:5193: checking for f90 -configure:5222: result: no -configure:5193: checking for xlf90 -configure:5222: result: no -configure:5193: checking for pgf90 -configure:5222: result: no -configure:5193: checking for epcf90 -configure:5222: result: no -configure:5193: checking for f95 -configure:5209: found /usr/bin/f95 -configure:5219: result: f95 +configure:5209: found /usr/bin/g77 +configure:5219: result: g77 configure:5234: checking for Fortran 77 compiler version -configure:5237: f95 --version &5 -GNU Fortran 95 (GCC) 4.1.1 20070105 (Red Hat 4.1.1-52) -Copyright (C) 2006 Free Software Foundation, Inc. +configure:5237: g77 --version &5 +GNU Fortran (GCC) 3.4.3 20041212 (Red Hat 3.4.3-9.EL4) +Copyright (C) 2004 Free Software Foundation, Inc. GNU Fortran comes with NO WARRANTY, to the extent permitted by law. You may redistribute copies of GNU Fortran under the terms of the GNU General Public License. For more information about these matters, see the file named COPYING - +or type the command `info -f g77 Copying'. configure:5240: $? = 0 -configure:5242: f95 -v &5 -Using built-in specs. -Target: i386-redhat-linux -Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --enable-plugin --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic --host=i386-redhat-linux +configure:5242: g77 -v &5 +Reading specs from /usr/lib/gcc/i386-redhat-linux/3.4.3/specs +Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-java-awt=gtk --host=i386-redhat-linux Thread model: posix -gcc version 4.1.1 20070105 (Red Hat 4.1.1-52) +gcc version 3.4.3 20041212 (Red Hat 3.4.3-9.EL4) configure:5245: $? = 0 -configure:5247: f95 -V &5 -f95: '-V' option must have argument +configure:5247: g77 -V &5 +g77: `-V' option must have argument configure:5250: $? = 1 configure:5258: checking whether we are using the GNU Fortran 77 compiler -configure:5272: f95 -c conftest.F >&5 +configure:5272: g77 -c conftest.F >&5 configure:5278: $? = 0 configure:5282: test -z || test ! -s conftest.err @@ -520,8 +495,8 @@ configure:5285: $? = 0 configure:5288: test -s conftest.o configure:5291: $? = 0 configure:5304: result: yes -configure:5310: checking whether f95 accepts -g -configure:5322: f95 -c -g conftest.f >&5 +configure:5310: checking whether g77 accepts -g +configure:5322: g77 -c -g conftest.f >&5 configure:5328: $? = 0 configure:5332: test -z || test ! -s conftest.err @@ -620,17 +595,17 @@ configure:13170: checking whether to build shared libraries configure:13188: result: yes configure:13191: checking whether to build static libraries configure:13195: result: yes -configure:13207: checking for f95 option to produce PIC +configure:13207: checking for g77 option to produce PIC configure:13384: result: -fPIC -configure:13392: checking if f95 PIC flag -fPIC works -configure:13410: f95 -c -g -O2 -fPIC conftest.f >&5 +configure:13392: checking if g77 PIC flag -fPIC works +configure:13410: g77 -c -g -O2 -fPIC conftest.f >&5 configure:13414: $? = 0 configure:13425: result: yes -configure:13449: checking if f95 supports -c -o file.o -configure:13470: f95 -c -g -O2 -o out/conftest2.o conftest.f >&5 +configure:13449: checking if g77 supports -c -o file.o +configure:13470: g77 -c -g -O2 -o out/conftest2.o conftest.f >&5 configure:13474: $? = 0 configure:13494: result: yes -configure:13520: checking whether the f95 linker (/usr/bin/ld) supports shared libraries +configure:13520: checking whether the g77 linker (/usr/bin/ld) supports shared libraries configure:14348: result: yes configure:14419: checking dynamic linker characteristics configure:14980: result: GNU/Linux ld.so @@ -823,7 +798,7 @@ generated by GNU Autoconf 2.59. Invocation command line was CONFIG_COMMANDS = $ ./config.status -on tesla +on tesla.localdomain config.status:709: creating Makefile config.status:892: executing depfiles commands @@ -898,7 +873,7 @@ ac_cv_prog_CXXCPP='g++ -E' ac_cv_prog_ac_ct_AR=ar ac_cv_prog_ac_ct_CC=gcc ac_cv_prog_ac_ct_CXX=g++ -ac_cv_prog_ac_ct_F77=f95 +ac_cv_prog_ac_ct_F77=g77 ac_cv_prog_ac_ct_RANLIB=ranlib ac_cv_prog_ac_ct_STRIP=strip ac_cv_prog_cc_g=yes @@ -911,7 +886,7 @@ am_cv_CC_dependencies_compiler_type=gcc3 am_cv_CXX_dependencies_compiler_type=gcc3 lt_cv_deplibs_check_method=pass_all lt_cv_file_magic_cmd='$MAGIC_CMD' -lt_cv_file_magic_test_file='/lib/libc.so.6 /lib/libc-2.5.so' +lt_cv_file_magic_test_file='/lib/libc.so.6 /lib/libc-2.3.4.so' lt_cv_ld_reload_flag=-r lt_cv_objdir=.libs lt_cv_path_LD=/usr/bin/ld @@ -939,15 +914,15 @@ lt_lt_cv_sys_global_symbol_to_cdecl='"sed -n -e '\''s/^. .* \\(.*\\)\$/extern in ## Output variables. ## ## ----------------- ## -ACLOCAL='${SHELL} /root/2.3.4/wanpipe/api/libsangoma/missing --run aclocal-1.9' +ACLOCAL='${SHELL} /root/3.1.X/wanpipe/api/libsangoma/missing --run aclocal-1.9' AMDEPBACKSLASH='\' AMDEP_FALSE='#' AMDEP_TRUE='' -AMTAR='${SHELL} /root/2.3.4/wanpipe/api/libsangoma/missing --run tar' +AMTAR='${SHELL} /root/3.1.X/wanpipe/api/libsangoma/missing --run tar' AR='ar' -AUTOCONF='${SHELL} /root/2.3.4/wanpipe/api/libsangoma/missing --run autoconf' -AUTOHEADER='${SHELL} /root/2.3.4/wanpipe/api/libsangoma/missing --run autoheader' -AUTOMAKE='${SHELL} /root/2.3.4/wanpipe/api/libsangoma/missing --run automake-1.9' +AUTOCONF='${SHELL} /root/3.1.X/wanpipe/api/libsangoma/missing --run autoconf' +AUTOHEADER='${SHELL} /root/3.1.X/wanpipe/api/libsangoma/missing --run autoheader' +AUTOMAKE='${SHELL} /root/3.1.X/wanpipe/api/libsangoma/missing --run automake-1.9' AWK='gawk' CC='gcc' CCDEPMODE='depmode=gcc3' @@ -967,7 +942,7 @@ ECHO_N='-n' ECHO_T='' EGREP='grep -E' EXEEXT='' -F77='f95' +F77='g77' FFLAGS='-g -O2' INSTALL_DATA='${INSTALL} -m 644' INSTALL_PROGRAM='${INSTALL}' @@ -981,7 +956,7 @@ LIBS='' LIBTOOL='$(SHELL) $(top_builddir)/libtool' LN_S='ln -s' LTLIBOBJS='' -MAKEINFO='${SHELL} /root/2.3.4/wanpipe/api/libsangoma/missing --run makeinfo' +MAKEINFO='${SHELL} /root/3.1.X/wanpipe/api/libsangoma/missing --run makeinfo' OBJEXT='o' PACKAGE='libsangoma' PACKAGE_BUGREPORT='anthmct@yahoo.com' @@ -998,7 +973,7 @@ VERSION='1.0.0' ac_ct_AR='ar' ac_ct_CC='gcc' ac_ct_CXX='g++' -ac_ct_F77='f95' +ac_ct_F77='g77' ac_ct_RANLIB='ranlib' ac_ct_STRIP='strip' am__fastdepCC_FALSE='#' @@ -1025,7 +1000,7 @@ host_os='linux-gnu' host_vendor='pc' includedir='${prefix}/include' infodir='${prefix}/info' -install_sh='/root/2.3.4/wanpipe/api/libsangoma/install-sh' +install_sh='/root/3.1.X/wanpipe/api/libsangoma/install-sh' libdir='${exec_prefix}/lib' libexecdir='${exec_prefix}/libexec' libpripath='' @@ -1033,7 +1008,7 @@ localstatedir='${prefix}/var' mandir='${prefix}/man' mkdir_p='mkdir -p --' oldincludedir='/usr/include' -prefix='/usr/include' +prefix='/root/3.1.X/wanpipe/rpmbuild/usr/include' program_transform_name='s,x,x,' sbindir='${exec_prefix}/sbin' sharedstatedir='${prefix}/com' diff --git a/api/libsangoma/config.status b/api/libsangoma/config.status index 2c9936d..f71f2ec 100755 --- a/api/libsangoma/config.status +++ b/api/libsangoma/config.status @@ -298,7 +298,7 @@ Report bugs to ." ac_cs_version="\ libsangoma config.status 1.0.0 configured by ./configure, generated by GNU Autoconf 2.59, - with options \"'--prefix=/usr/include'\" + with options \"'--prefix=/root/3.1.X/wanpipe/rpmbuild/usr/include'\" Copyright (C) 2003 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation @@ -377,8 +377,8 @@ if $ac_cs_silent; then fi if $ac_cs_recheck; then - echo "running /bin/sh ./configure " '--prefix=/usr/include' $ac_configure_extra_args " --no-create --no-recursion" >&6 - exec /bin/sh ./configure '--prefix=/usr/include' $ac_configure_extra_args --no-create --no-recursion + echo "running /bin/sh ./configure " '--prefix=/root/3.1.X/wanpipe/rpmbuild/usr/include' $ac_configure_extra_args " --no-create --no-recursion" >&6 + exec /bin/sh ./configure '--prefix=/root/3.1.X/wanpipe/rpmbuild/usr/include' $ac_configure_extra_args --no-create --no-recursion fi # @@ -452,7 +452,7 @@ s,@PACKAGE_VERSION@,1.0.0,;t t s,@PACKAGE_STRING@,libsangoma 1.0.0,;t t s,@PACKAGE_BUGREPORT@,anthmct@yahoo.com,;t t s,@exec_prefix@,${prefix},;t t -s,@prefix@,/usr/include,;t t +s,@prefix@,/root/3.1.X/wanpipe/rpmbuild/usr/include,;t t s,@program_transform_name@,s,x,x,,;t t s,@bindir@,${exec_prefix}/bin,;t t s,@sbindir@,${exec_prefix}/sbin,;t t @@ -480,12 +480,12 @@ s,@INSTALL_DATA@,${INSTALL} -m 644,;t t s,@CYGPATH_W@,echo,;t t s,@PACKAGE@,libsangoma,;t t s,@VERSION@,1.0.0,;t t -s,@ACLOCAL@,${SHELL} /root/2.3.4/wanpipe/api/libsangoma/missing --run aclocal-1.9,;t t -s,@AUTOCONF@,${SHELL} /root/2.3.4/wanpipe/api/libsangoma/missing --run autoconf,;t t -s,@AUTOMAKE@,${SHELL} /root/2.3.4/wanpipe/api/libsangoma/missing --run automake-1.9,;t t -s,@AUTOHEADER@,${SHELL} /root/2.3.4/wanpipe/api/libsangoma/missing --run autoheader,;t t -s,@MAKEINFO@,${SHELL} /root/2.3.4/wanpipe/api/libsangoma/missing --run makeinfo,;t t -s,@install_sh@,/root/2.3.4/wanpipe/api/libsangoma/install-sh,;t t +s,@ACLOCAL@,${SHELL} /root/3.1.X/wanpipe/api/libsangoma/missing --run aclocal-1.9,;t t +s,@AUTOCONF@,${SHELL} /root/3.1.X/wanpipe/api/libsangoma/missing --run autoconf,;t t +s,@AUTOMAKE@,${SHELL} /root/3.1.X/wanpipe/api/libsangoma/missing --run automake-1.9,;t t +s,@AUTOHEADER@,${SHELL} /root/3.1.X/wanpipe/api/libsangoma/missing --run autoheader,;t t +s,@MAKEINFO@,${SHELL} /root/3.1.X/wanpipe/api/libsangoma/missing --run makeinfo,;t t +s,@install_sh@,/root/3.1.X/wanpipe/api/libsangoma/install-sh,;t t s,@STRIP@,strip,;t t s,@ac_ct_STRIP@,strip,;t t s,@INSTALL_STRIP_PROGRAM@,${SHELL} $(install_sh) -c -s,;t t @@ -493,7 +493,7 @@ s,@mkdir_p@,mkdir -p --,;t t s,@AWK@,gawk,;t t s,@SET_MAKE@,,;t t s,@am__leading_dot@,.,;t t -s,@AMTAR@,${SHELL} /root/2.3.4/wanpipe/api/libsangoma/missing --run tar,;t t +s,@AMTAR@,${SHELL} /root/3.1.X/wanpipe/api/libsangoma/missing --run tar,;t t s,@am__tar@,${AMTAR} chof - "$$tardir",;t t s,@am__untar@,${AMTAR} xf -,;t t s,@CC@,gcc,;t t @@ -535,9 +535,9 @@ s,@CXXDEPMODE@,depmode=gcc3,;t t s,@am__fastdepCXX_TRUE@,,;t t s,@am__fastdepCXX_FALSE@,#,;t t s,@CXXCPP@,g++ -E,;t t -s,@F77@,f95,;t t +s,@F77@,g77,;t t s,@FFLAGS@,-g -O2,;t t -s,@ac_ct_F77@,f95,;t t +s,@ac_ct_F77@,g77,;t t s,@LIBTOOL@,$(SHELL) $(top_builddir)/libtool,;t t s,@LIBPRI_TRUE@,#,;t t s,@LIBPRI_FALSE@,,;t t diff --git a/api/libsangoma/diff b/api/libsangoma/diff deleted file mode 100644 index 80bf010..0000000 --- a/api/libsangoma/diff +++ /dev/null @@ -1,61 +0,0 @@ -Index: libsangoma.c -=================================================================== ---- libsangoma.c (revision 229) -+++ libsangoma.c (working copy) -@@ -912,6 +912,33 @@ - return 0; - } - -+int sangoma_tdm_enable_hwec(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) -+{ -+ int err; -+ -+ tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_ENABLE_HWEC; -+ err=sangoma_tdm_cmd_exec(fd,tdm_api); -+ if (err){ -+ return err; -+ } -+ -+ return 0; -+} -+ -+int sangoma_tdm_disable_hwec(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) -+{ -+ int err; -+ -+ tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_DISABLE_HWEC; -+ err=sangoma_tdm_cmd_exec(fd,tdm_api); -+ if (err){ -+ return err; -+ } -+ -+ return 0; -+} -+ -+ - int sangoma_tdm_disable_rxhook_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) - { - int err; -Index: libsangoma.h -=================================================================== ---- libsangoma.h (revision 229) -+++ libsangoma.h (working copy) -@@ -176,11 +176,18 @@ - - int sangoma_tdm_get_fe_alarms(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); - -+<<<<<<< .mine -+int sangoma_tdm_enable_hwec(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); -+int sangoma_tdm_disable_hwec(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); -+ -+ -+======= - int sangoma_tdm_txsig_onhook(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); - int sangoma_tdm_txsig_offhook(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); - int sangoma_tdm_txsig_start(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); - int sangoma_tdm_txsig_kewl(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); - -+>>>>>>> .r229 - #ifndef LIBSANGOMA_GET_HWCODING - #define LIBSANGOMA_GET_HWCODING 1 - #endif diff --git a/api/libsangoma/examples/.svn/README.txt b/api/libsangoma/examples/.svn/README.txt new file mode 100644 index 0000000..271a8ce --- /dev/null +++ b/api/libsangoma/examples/.svn/README.txt @@ -0,0 +1,2 @@ +This is a Subversion working copy administrative directory. +Visit http://subversion.tigris.org/ for more information. diff --git a/patches/kdrivers/d2utmprLeAaI b/api/libsangoma/examples/.svn/empty-file old mode 100755 new mode 100644 similarity index 100% rename from patches/kdrivers/d2utmprLeAaI rename to api/libsangoma/examples/.svn/empty-file diff --git a/api/libsangoma/examples/.svn/entries b/api/libsangoma/examples/.svn/entries index 2470a5b..f4998ee 100644 --- a/api/libsangoma/examples/.svn/entries +++ b/api/libsangoma/examples/.svn/entries @@ -1,89 +1,59 @@ -8 - -dir -229 -svn://sangoma.freeswitch.org/libsangoma/trunk/examples -svn://sangoma.freeswitch.org - - - -2007-05-29T18:03:36.038276Z -206 -ncorbic - - -svn:special svn:externals svn:needs-lock - - - - - - - - - - - -2028fedf-720c-0410-83b8-d54a3e729fb0 - -sound.raw -file - - - - -2007-03-21T22:07:06.000000Z -da36acc78b83d5047481df0cca63d969 -2006-03-23T23:03:41.659017Z -26 -mikej -has-props - -priserver.c -file - - - - -2007-04-18T19:53:48.000000Z -9f83030c20158d91b7ec6bb7a9392dcb -2006-03-23T23:54:12.054610Z -27 -ncorbic - -librc -file - - - - -2007-03-21T22:07:06.000000Z -5c222b74d68b1c7df3f937a9d6321d40 -2006-03-23T23:03:41.659017Z -26 -mikej - -Makefile -file - - - - -2007-07-24T22:46:01.000000Z -b58ee42eeb2d5e921bdab940a9fda738 -2007-05-29T18:03:36.038276Z -206 -ncorbic - -README -file - - - - -2007-03-21T22:07:06.000000Z -40538792592cd766e4941d9b37dbaf56 -2006-03-23T23:03:41.659017Z -26 -mikej - + + + + + + + + + diff --git a/api/libsangoma/examples/.svn/format b/api/libsangoma/examples/.svn/format index 45a4fb7..b8626c4 100644 --- a/api/libsangoma/examples/.svn/format +++ b/api/libsangoma/examples/.svn/format @@ -1 +1 @@ -8 +4 diff --git a/api/libsangoma/examples/.svn/prop-base/Makefile.svn-base b/api/libsangoma/examples/.svn/prop-base/Makefile.svn-base new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/examples/.svn/prop-base/Makefile.svn-base @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/examples/.svn/prop-base/README.svn-base b/api/libsangoma/examples/.svn/prop-base/README.svn-base new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/examples/.svn/prop-base/README.svn-base @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/examples/.svn/prop-base/librc.svn-base b/api/libsangoma/examples/.svn/prop-base/librc.svn-base new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/examples/.svn/prop-base/librc.svn-base @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/examples/.svn/prop-base/priserver.c.svn-base b/api/libsangoma/examples/.svn/prop-base/priserver.c.svn-base new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/examples/.svn/prop-base/priserver.c.svn-base @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/examples/.svn/props/Makefile.svn-work b/api/libsangoma/examples/.svn/props/Makefile.svn-work new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/examples/.svn/props/Makefile.svn-work @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/examples/.svn/props/README.svn-work b/api/libsangoma/examples/.svn/props/README.svn-work new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/examples/.svn/props/README.svn-work @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/examples/.svn/props/librc.svn-work b/api/libsangoma/examples/.svn/props/librc.svn-work new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/examples/.svn/props/librc.svn-work @@ -0,0 +1 @@ +END diff --git a/api/libsangoma/examples/.svn/props/priserver.c.svn-work b/api/libsangoma/examples/.svn/props/priserver.c.svn-work new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/api/libsangoma/examples/.svn/props/priserver.c.svn-work @@ -0,0 +1 @@ +END diff --git a/ssmg/sangoma_mgd.trunk/lib/libteletone/.libs/.svn/prop-base/libteletone.a.svn-base b/api/libsangoma/examples/.svn/props/sound.raw.svn-work similarity index 100% rename from ssmg/sangoma_mgd.trunk/lib/libteletone/.libs/.svn/prop-base/libteletone.a.svn-base rename to api/libsangoma/examples/.svn/props/sound.raw.svn-work diff --git a/api/libsangoma/examples/.svn/text-base/Makefile.svn-base b/api/libsangoma/examples/.svn/text-base/Makefile.svn-base index 63c5b3e..14c792c 100644 --- a/api/libsangoma/examples/.svn/text-base/Makefile.svn-base +++ b/api/libsangoma/examples/.svn/text-base/Makefile.svn-base @@ -1,7 +1,5 @@ CC=gcc -LINUXINC=/lib/modules/$(shell uname -r)/build/include -WANINC=../../../patches/kdrivers/include -INCLUDES=-I/usr/include -I/usr/src/libpri -I$(WANINC) -I. -I/usr/local/include +INCLUDES=-I/usr/include -I/usr/src/libpri -I/usr/src/linux/include -I. -I/usr/local/include CFLAGS=-D__LINUX__ -D_REENTRANT -D_GNU_SOURCE -O6 -march=i686 -DAFT_A104 CCFLAGS=-Wall -Wstrict-prototypes -Wmissing-prototypes -g diff --git a/api/libsangoma/examples/Makefile b/api/libsangoma/examples/Makefile index 63c5b3e..14c792c 100644 --- a/api/libsangoma/examples/Makefile +++ b/api/libsangoma/examples/Makefile @@ -1,7 +1,5 @@ CC=gcc -LINUXINC=/lib/modules/$(shell uname -r)/build/include -WANINC=../../../patches/kdrivers/include -INCLUDES=-I/usr/include -I/usr/src/libpri -I$(WANINC) -I. -I/usr/local/include +INCLUDES=-I/usr/include -I/usr/src/libpri -I/usr/src/linux/include -I. -I/usr/local/include CFLAGS=-D__LINUX__ -D_REENTRANT -D_GNU_SOURCE -O6 -march=i686 -DAFT_A104 CCFLAGS=-Wall -Wstrict-prototypes -Wmissing-prototypes -g diff --git a/api/libsangoma/libsangoma.c b/api/libsangoma/libsangoma.c index 73453f2..d3dceb0 100644 --- a/api/libsangoma/libsangoma.c +++ b/api/libsangoma/libsangoma.c @@ -27,11 +27,6 @@ #warning "Warning: TDM FE ALARM not supported by driver" #endif -#ifndef WP_TDM_EVENT_TDM_API_EVENTS -#warning "Warning: TDM EVENTS not supported by driver" -#endif - - #if defined(WIN32) //extern int verbose; @@ -262,7 +257,7 @@ sng_fd_t sangoma_open_tdmapi_span(int span) }//for() #else - char fname[FNAME_LEN]; + unsigned char fname[FNAME_LEN]; int fd=0; for (i=1;i<32;i++){ sprintf(fname,"/dev/wptdm_s%dc%d",span,i); @@ -763,10 +758,7 @@ int sangoma_tdm_write_rbs(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api, unsigned char int sangoma_tdm_read_event(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { - -#ifdef WP_TDM_EVENT_TDM_API_EVENTS - - wp_tdm_api_event_t *rx_event; + wp_tdm_api_rx_hdr_t *rx_event; #if defined(WIN32) rx_event = &last_tdm_api_event_buffer; @@ -785,15 +777,15 @@ int sangoma_tdm_read_event(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) switch (rx_event->wp_tdm_api_event_type){ - case WP_TDMAPI_EVENT_RBS: + case WP_TDM_EVENT_RBS: printf("%d: GOT RBS EVENT %p\n",(int)fd,tdm_api->wp_tdm_event.wp_rbs_event); if (tdm_api->wp_tdm_event.wp_rbs_event) { - tdm_api->wp_tdm_event.wp_rbs_event(fd,rx_event->wp_tdm_api_event_rbs_bits); + tdm_api->wp_tdm_event.wp_rbs_event(fd,rx_event->wp_tdm_api_event_rbs_rx_bits); } break; - case WP_TDMAPI_EVENT_DTMF: + case WP_TDM_EVENT_DTMF: printf("%d: GOT DTMF EVENT\n",(int)fd); if (tdm_api->wp_tdm_event.wp_dtmf_event) { tdm_api->wp_tdm_event.wp_dtmf_event(fd, @@ -803,32 +795,32 @@ int sangoma_tdm_read_event(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) } break; - case WP_TDMAPI_EVENT_RXHOOK: + case WP_TDM_EVENT_RXHOOK: printf("%d: GOT RXHOOK EVENT\n",(int)fd); if (tdm_api->wp_tdm_event.wp_rxhook_event) { tdm_api->wp_tdm_event.wp_rxhook_event(fd, - rx_event->wp_tdm_api_event_hook_state); + rx_event->wp_tdm_api_event_rxhook_state); } break; - case WP_TDMAPI_EVENT_RING_DETECT: + case WP_TDM_EVENT_RING_DETECT: printf("%d: GOT RXRING EVENT\n",(int)fd); - if (tdm_api->wp_tdm_event.wp_ring_detect_event) { - tdm_api->wp_tdm_event.wp_ring_detect_event(fd, + if (tdm_api->wp_tdm_event.wp_rxring_event) { + tdm_api->wp_tdm_event.wp_rxring_event(fd, rx_event->wp_tdm_api_event_ring_state); } break; - case WP_TDMAPI_EVENT_RING_TRIP_DETECT: + case WP_TDM_EVENT_RING_TRIP: printf("%d: GOT RING TRIP EVENT\n",(int)fd); - if (tdm_api->wp_tdm_event.wp_ring_trip_detect_event) { - tdm_api->wp_tdm_event.wp_ring_trip_detect_event(fd, + if (tdm_api->wp_tdm_event.wp_ringtrip_event) { + tdm_api->wp_tdm_event.wp_ringtrip_event(fd, rx_event->wp_tdm_api_event_ring_state); } break; #ifdef WP_TDM_EVENT_FE_ALARM - case WP_TDMAPI_EVENT_FE_ALARM: + case WP_TDM_EVENT_FE_ALARM: printf("%d: GOT FE ALARMS EVENT %i\n",(int)fd, rx_event->wp_tdm_api_event_fe_alarm); if (tdm_api->wp_tdm_event.wp_fe_alarm_event) { @@ -843,21 +835,13 @@ int sangoma_tdm_read_event(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) } return 0; -#else - return -EINVAL; -#endif } - -#ifdef WP_TDM_EVENT_TDM_API_EVENTS - int sangoma_tdm_enable_dtmf_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { int err; - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_DTMF; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_ENABLE; + tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_ENABLE_DTMF_EVENTS; err=sangoma_tdm_cmd_exec(fd,tdm_api); if (err){ return err; @@ -870,9 +854,7 @@ int sangoma_tdm_disable_dtmf_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { int err; - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_DTMF; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_DISABLE; + tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_DISABLE_DTMF_EVENTS; err=sangoma_tdm_cmd_exec(fd,tdm_api); if (err){ return err; @@ -885,9 +867,7 @@ int sangoma_tdm_enable_rm_dtmf_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { int err; - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_RM_DTMF; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_ENABLE; + tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_ENABLE_RM_DTMF_EVENTS; err=sangoma_tdm_cmd_exec(fd,tdm_api); if (err){ return err; @@ -900,9 +880,7 @@ int sangoma_tdm_disable_rm_dtmf_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { int err; - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_RM_DTMF; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_DISABLE; + tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_DISABLE_RM_DTMF_EVENTS; err=sangoma_tdm_cmd_exec(fd,tdm_api); if (err){ return err; @@ -915,9 +893,7 @@ int sangoma_tdm_enable_rxhook_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { int err; - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_RXHOOK; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_ENABLE; + tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_ENABLE_RXHOOK_EVENTS; err=sangoma_tdm_cmd_exec(fd,tdm_api); if (err){ return err; @@ -926,40 +902,11 @@ int sangoma_tdm_enable_rxhook_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) return 0; } -int sangoma_tdm_enable_hwec(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) -{ - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_ENABLE_HWEC; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return 0; -} - -int sangoma_tdm_disable_hwec(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) -{ - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_DISABLE_HWEC; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return 0; -} - - int sangoma_tdm_disable_rxhook_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { int err; - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_RXHOOK; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_DISABLE; + tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_DISABLE_RXHOOK_EVENTS; err=sangoma_tdm_cmd_exec(fd,tdm_api); if (err){ return err; @@ -968,195 +915,6 @@ int sangoma_tdm_disable_rxhook_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) return 0; } -int sangoma_tdm_enable_ring_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_RING; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_ENABLE; - - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return tdm_api->wp_tdm_cmd.rbs_poll; -} - - -int sangoma_tdm_disable_ring_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_RING; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_DISABLE; - - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return 0; -} - -int sangoma_tdm_enable_ring_detect_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_RING_DETECT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_ENABLE; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return tdm_api->wp_tdm_cmd.rbs_poll; -} - - -int sangoma_tdm_disable_ring_detect_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_RING_DETECT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_DISABLE; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return 0; -} - -int sangoma_tdm_enable_ring_trip_detect_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_RING_TRIP_DETECT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_ENABLE; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return tdm_api->wp_tdm_cmd.rbs_poll; -} - - -int sangoma_tdm_disable_ring_trip_detect_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_RING_DETECT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_DISABLE; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return 0; -} - -int sangoma_tdm_txsig_kewl(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_TXSIG_KEWL; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_ENABLE; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return 0; -} - -int sangoma_tdm_txsig_start(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_TXSIG_START; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_ENABLE; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return 0; -} - -int sangoma_tdm_txsig_onhook(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_TXSIG_ONHOOK; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_ENABLE; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return 0; -} - -int sangoma_tdm_txsig_offhook(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_TXSIG_OFFHOOK; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_ENABLE; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return 0; -} - - -int sangoma_tdm_enable_tone_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api, int tone_id) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_TONE; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_ENABLE; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_tone_type = tone_id; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return tdm_api->wp_tdm_cmd.rbs_poll; -} - -int sangoma_tdm_disable_tone_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) { - - int err; - - tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_EVENT; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_type = WP_TDMAPI_EVENT_TONE; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_mode = WP_TDMAPI_EVENT_DISABLE; - tdm_api->wp_tdm_cmd.event.wp_tdm_api_event_tone_type = 0x00; - err=sangoma_tdm_cmd_exec(fd,tdm_api); - if (err){ - return err; - } - - return tdm_api->wp_tdm_cmd.rbs_poll; -} -#endif - /*======================================================== * GET Front End Alarms * diff --git a/api/libsangoma/libsangoma.h b/api/libsangoma/libsangoma.h index 438307a..29d153e 100644 --- a/api/libsangoma/libsangoma.h +++ b/api/libsangoma/libsangoma.h @@ -26,7 +26,7 @@ #include #include #include -iinclude //for offsetof() +#include //for offsetof() typedef unsigned __int16 u_int16_t; typedef unsigned __int32 u_int32_t; #include //for 'wan_udp_hdr_t' @@ -158,33 +158,8 @@ int sangoma_tdm_disable_rm_dtmf_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); int sangoma_tdm_enable_rxhook_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); int sangoma_tdm_disable_rxhook_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); -/* Enable/Disable Ring events on A200 (Analog) card */ -int sangoma_tdm_enable_ring_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); -int sangoma_tdm_disable_ring_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); - -/* Enable/Disable Ring Detect events on A200 (Analog) card */ -int sangoma_tdm_enable_ring_detect_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); -int sangoma_tdm_disable_ring_detect_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); - -/* Enable/Disable Ring Trip events on A200 (Analog) card */ -int sangoma_tdm_enable_ring_trip_detect_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); -int sangoma_tdm_disable_ring_trip_detect_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); - -/* Enable/Disable tone events on A200 (Analog) card */ -int sangoma_tdm_enable_tone_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api, int tone_id); -int sangoma_tdm_disable_tone_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); - int sangoma_tdm_get_fe_alarms(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); -int sangoma_tdm_enable_hwec(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); -int sangoma_tdm_disable_hwec(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); - - -int sangoma_tdm_txsig_onhook(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); -int sangoma_tdm_txsig_offhook(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); -int sangoma_tdm_txsig_start(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); -int sangoma_tdm_txsig_kewl(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api); - #ifndef LIBSANGOMA_GET_HWCODING #define LIBSANGOMA_GET_HWCODING 1 #endif diff --git a/api/libsangoma/libtool b/api/libsangoma/libtool index 852fd0e..7ca7e5d 100755 --- a/api/libsangoma/libtool +++ b/api/libsangoma/libtool @@ -44,7 +44,7 @@ available_tags=" CXX F77" # ### BEGIN LIBTOOL CONFIG -# Libtool was configured on host tesla: +# Libtool was configured on host tesla.localdomain: # Shell to use when invoking shell scripts. SHELL="/bin/sh" @@ -316,10 +316,10 @@ variables_saved_for_relink="PATH LD_RUN_PATH GCC_EXEC_PREFIX COMPILER_PATH LIBR link_all_deplibs=unknown # Compile-time system search path for libraries -sys_lib_search_path_spec=" /usr/lib/gcc/i386-redhat-linux/4.1.1/ /usr/lib/gcc/i386-redhat-linux/4.1.1/ /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../../i386-redhat-linux/lib/i386-redhat-linux/4.1.1/ /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../../i386-redhat-linux/lib/ /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../i386-redhat-linux/4.1.1/ /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../ /lib/i386-redhat-linux/4.1.1/ /lib/ /usr/lib/i386-redhat-linux/4.1.1/ /usr/lib/" +sys_lib_search_path_spec=" /usr/lib/gcc/i386-redhat-linux/3.4.3/ /usr/lib/gcc/i386-redhat-linux/3.4.3/ /usr/lib/gcc/i386-redhat-linux/3.4.3/../../../../i386-redhat-linux/lib/i386-redhat-linux/3.4.3/ /usr/lib/gcc/i386-redhat-linux/3.4.3/../../../../i386-redhat-linux/lib/ /usr/lib/gcc/i386-redhat-linux/3.4.3/../../../i386-redhat-linux/3.4.3/ /usr/lib/gcc/i386-redhat-linux/3.4.3/../../../ /lib/i386-redhat-linux/3.4.3/ /lib/ /usr/lib/i386-redhat-linux/3.4.3/ /usr/lib/" # Run-time system search path for libraries -sys_lib_dlsearch_path_spec="/lib /usr/lib include ld.so.conf.d/*.conf " +sys_lib_dlsearch_path_spec="/lib /usr/lib include ld.so.conf.d/*.conf /usr/X11R6/lib " # Fix the shell variable $srcfile for the compiler. fix_srcfile_path="" @@ -6745,7 +6745,7 @@ build_old_libs=`case $build_libtool_libs in yes) $echo no;; *) $echo yes;; esac` # End: # ### BEGIN LIBTOOL TAG CONFIG: CXX -# Libtool was configured on host tesla: +# Libtool was configured on host tesla.localdomain: # Shell to use when invoking shell scripts. SHELL="/bin/sh" @@ -6918,11 +6918,11 @@ striplib="strip --strip-unneeded" # Dependencies to place before the objects being linked to create a # shared library. -predep_objects="/usr/lib/gcc/i386-redhat-linux/4.1.1/../../../crti.o /usr/lib/gcc/i386-redhat-linux/4.1.1/crtbeginS.o" +predep_objects="/usr/lib/gcc/i386-redhat-linux/3.4.3/../../../crti.o /usr/lib/gcc/i386-redhat-linux/3.4.3/crtbeginS.o" # Dependencies to place after the objects being linked to create a # shared library. -postdep_objects="/usr/lib/gcc/i386-redhat-linux/4.1.1/crtendS.o /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../crtn.o" +postdep_objects="/usr/lib/gcc/i386-redhat-linux/3.4.3/crtendS.o /usr/lib/gcc/i386-redhat-linux/3.4.3/../../../crtn.o" # Dependencies to place before the objects being linked to create a # shared library. @@ -6934,7 +6934,7 @@ postdeps="-lstdc++ -lm -lgcc_s -lc -lgcc_s" # The library search path used internally by the compiler when linking # a shared library. -compiler_lib_search_path="-L/usr/lib/gcc/i386-redhat-linux/4.1.1 -L/usr/lib/gcc/i386-redhat-linux/4.1.1 -L/usr/lib/gcc/i386-redhat-linux/4.1.1/../../.." +compiler_lib_search_path="-L/usr/lib/gcc/i386-redhat-linux/3.4.3 -L/usr/lib/gcc/i386-redhat-linux/3.4.3 -L/usr/lib/gcc/i386-redhat-linux/3.4.3/../../.." # Method to check whether dependent libraries are shared objects. deplibs_check_method="pass_all" @@ -7014,10 +7014,10 @@ variables_saved_for_relink="PATH LD_LIBRARY_PATH LD_RUN_PATH GCC_EXEC_PREFIX COM link_all_deplibs=unknown # Compile-time system search path for libraries -sys_lib_search_path_spec=" /usr/lib/gcc/i386-redhat-linux/4.1.1/ /usr/lib/gcc/i386-redhat-linux/4.1.1/ /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../../i386-redhat-linux/lib/i386-redhat-linux/4.1.1/ /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../../i386-redhat-linux/lib/ /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../i386-redhat-linux/4.1.1/ /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../ /lib/i386-redhat-linux/4.1.1/ /lib/ /usr/lib/i386-redhat-linux/4.1.1/ /usr/lib/" +sys_lib_search_path_spec=" /usr/lib/gcc/i386-redhat-linux/3.4.3/ /usr/lib/gcc/i386-redhat-linux/3.4.3/ /usr/lib/gcc/i386-redhat-linux/3.4.3/../../../../i386-redhat-linux/lib/i386-redhat-linux/3.4.3/ /usr/lib/gcc/i386-redhat-linux/3.4.3/../../../../i386-redhat-linux/lib/ /usr/lib/gcc/i386-redhat-linux/3.4.3/../../../i386-redhat-linux/3.4.3/ /usr/lib/gcc/i386-redhat-linux/3.4.3/../../../ /lib/i386-redhat-linux/3.4.3/ /lib/ /usr/lib/i386-redhat-linux/3.4.3/ /usr/lib/" # Run-time system search path for libraries -sys_lib_dlsearch_path_spec="/lib /usr/lib include ld.so.conf.d/*.conf " +sys_lib_dlsearch_path_spec="/lib /usr/lib include ld.so.conf.d/*.conf /usr/X11R6/lib " # Fix the shell variable $srcfile for the compiler. fix_srcfile_path="" @@ -7041,7 +7041,7 @@ include_expsyms="" # ### BEGIN LIBTOOL TAG CONFIG: F77 -# Libtool was configured on host tesla: +# Libtool was configured on host tesla.localdomain: # Shell to use when invoking shell scripts. SHELL="/bin/sh" @@ -7076,7 +7076,7 @@ AR_FLAGS="cru" LTCC="gcc" # A language-specific compiler. -CC="f95" +CC="g77" # Is the compiler the GNU C compiler? with_gcc=yes @@ -7313,10 +7313,10 @@ variables_saved_for_relink="PATH LD_LIBRARY_PATH LD_RUN_PATH GCC_EXEC_PREFIX COM link_all_deplibs=unknown # Compile-time system search path for libraries -sys_lib_search_path_spec=" /usr/lib/gcc/i386-redhat-linux/4.1.1/ /usr/lib/gcc/i386-redhat-linux/4.1.1/ /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../../i386-redhat-linux/lib/i386-redhat-linux/4.1.1/ /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../../i386-redhat-linux/lib/ /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../i386-redhat-linux/4.1.1/ /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../ /lib/i386-redhat-linux/4.1.1/ /lib/ /usr/lib/i386-redhat-linux/4.1.1/ /usr/lib/" +sys_lib_search_path_spec=" /usr/lib/gcc/i386-redhat-linux/3.4.3/ /usr/lib/gcc/i386-redhat-linux/3.4.3/ /usr/lib/gcc/i386-redhat-linux/3.4.3/../../../../i386-redhat-linux/lib/i386-redhat-linux/3.4.3/ /usr/lib/gcc/i386-redhat-linux/3.4.3/../../../../i386-redhat-linux/lib/ /usr/lib/gcc/i386-redhat-linux/3.4.3/../../../i386-redhat-linux/3.4.3/ /usr/lib/gcc/i386-redhat-linux/3.4.3/../../../ /lib/i386-redhat-linux/3.4.3/ /lib/ /usr/lib/i386-redhat-linux/3.4.3/ /usr/lib/" # Run-time system search path for libraries -sys_lib_dlsearch_path_spec="/lib /usr/lib include ld.so.conf.d/*.conf " +sys_lib_dlsearch_path_spec="/lib /usr/lib include ld.so.conf.d/*.conf /usr/X11R6/lib " # Fix the shell variable $srcfile for the compiler. fix_srcfile_path="" diff --git a/ssmg/sangoma_mgd.trunk/svn-commit.tmp b/api/libsangoma/svn-commit.tmp similarity index 51% rename from ssmg/sangoma_mgd.trunk/svn-commit.tmp rename to api/libsangoma/svn-commit.tmp index 4f6722f..d2cd19d 100644 --- a/ssmg/sangoma_mgd.trunk/svn-commit.tmp +++ b/api/libsangoma/svn-commit.tmp @@ -1,4 +1,4 @@ -Added a udp resync timeout + --This line, and those below, will be ignored-- -M sangoma_mgd.c +A libsangoma.so.conf diff --git a/api/tdm_api/README b/api/tdm_api/README deleted file mode 100644 index 655ffe0..0000000 --- a/api/tdm_api/README +++ /dev/null @@ -1,33 +0,0 @@ -TDM API Sample Code -==================== - -1. aft_tdm_voice_api - - - read/write data per span/chan - - Usage: - ./aft_tdm_voice_api -c -i -r - ./aft_tdm_voice_api -c -i -r -verbose - -1. aft_tdm_voice_api_rbs - - - read/write data per span/chan - - read/write rbs data per span/chan - - setup a rbs event so driver calls the app on each rbs change. - - Usage: - ./aft_tdm_voice_api_rbs -c -i -r - ./aft_tdm_voice_api_rbs -c -i -r -verbose - - -3. aft_tdm_hdlc_test - - - Used to test each span/chan for data corruption, using an HDLC engine. - - This test will run over voice and DCHAN HW HDLC devices. - - Usage: - ./tdm_hdlc_test.sh #Run HDLC engines on all chans in a span - ./tdm_hdlc_test.sh #Run HDLC engine on single span chan - - - diff --git a/api/tdm_api/Makefile b/api/tdmapi/Makefile similarity index 72% rename from api/tdm_api/Makefile rename to api/tdmapi/Makefile index bbf74dd..b7d16e5 100644 --- a/api/tdm_api/Makefile +++ b/api/tdmapi/Makefile @@ -12,7 +12,7 @@ DEBUG = 2 SYSINC=$(shell if [ -f ../../.sysinclude ]; then cat ../../.sysinclude; else echo ""; fi) ifeq "$(SYSINC)" "" -SYSINC=/usr/src/linux/include +SYSINC=/lib/modules/$(shell uname -r)/build/include endif VPATH = $(SYSINC) @@ -20,8 +20,11 @@ VPATH = $(SYSINC) CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I../lib/hdlc -I../lib -I$(SYSINC) TARGETS = aft_tdm_voice_api -TARGETS += aft_tdm_voice_api_rbs TARGETS += aft_tdm_hdlc_test +TARGETS += aft_tdm_voice_api_rbs +TARGETS += aft_tdm_voice_api_dtmf +TARGETS += aft_tdm_voice_api_rm_dtmf +TARGETS += aft_tdm_voice_api_rxhook ####### RULES ################################################################ @@ -31,11 +34,20 @@ all: $(TARGETS) aft_tdm_voice_api: aft_tdm_voice_api.c ../lib/lib_api.c $(CC) $(CFLAGS) -o $@ $^ -lsangoma -lm -aft_tdm_voice_api_rbs: aft_tdm_voice_api_rbs.c ../lib/lib_api.c - $(CC) $(CFLAGS) -o $@ $^ -lsangoma -lm - aft_tdm_hdlc_test: aft_tdm_hdlc_test.c ../lib/hdlc/wanpipe_hdlc.c $(CC) $(CFLAGS) -o $@ $^ -lsangoma -lm +aft_tdm_voice_api_rbs: aft_tdm_voice_api_rbs.c ../lib/lib_api.c + $(CC) $(CFLAGS) -o $@ $^ -lsangoma -lm + +aft_tdm_voice_api_dtmf: aft_tdm_voice_api_dtmf.c ../lib/lib_api.c + $(CC) $(CFLAGS) -o $@ $^ -lsangoma -lm + +aft_tdm_voice_api_rm_dtmf: aft_tdm_voice_api_rm_dtmf.c ../lib/lib_api.c + $(CC) $(CFLAGS) -o $@ $^ -lsangoma -lm + +aft_tdm_voice_api_rxhook: aft_tdm_voice_api_rxhook.c ../lib/lib_api.c + $(CC) $(CFLAGS) -o $@ $^ -lsangoma -lm + clean: rm -f $(TARGETS) diff --git a/api/tdmapi/aft_tdm_hdlc_test b/api/tdmapi/aft_tdm_hdlc_test new file mode 100755 index 0000000..9b8d37b Binary files /dev/null and b/api/tdmapi/aft_tdm_hdlc_test differ diff --git a/api/tdm_api/aft_tdm_hdlc_test.c b/api/tdmapi/aft_tdm_hdlc_test.c similarity index 94% rename from api/tdm_api/aft_tdm_hdlc_test.c rename to api/tdmapi/aft_tdm_hdlc_test.c index 7efa6ef..ddb5dd4 100644 --- a/api/tdm_api/aft_tdm_hdlc_test.c +++ b/api/tdmapi/aft_tdm_hdlc_test.c @@ -128,11 +128,16 @@ int MakeConnection(timeslot_t *slot, char *router_name ) sangoma_span_chan_fromif(slot->if_name,&span,&chan); if (span > 0 && chan > 0) { + wanpipe_tdm_api_t tdm_api; slot->sock = sangoma_open_tdmapi_span_chan(span,chan); if( slot->sock < 0 ) { perror("Open Span Chan: "); return( FALSE ); } + + sangoma_tdm_set_codec(slot->sock,&tdm_api,WP_NONE); + + printf("Socket bound to Span=%i Chan=%i\n\n",span,chan); return (TRUE); } @@ -140,6 +145,30 @@ int MakeConnection(timeslot_t *slot, char *router_name ) return(FALSE); } +int api_tdm_fe_alarms_callback(int fd, unsigned char alarm) +{ + int fd_found=0; + int i; + for (i=0;i max_fd){ max_fd=tslot_array[i].sock; } @@ -217,7 +250,7 @@ void process_con_rx(void) * for all active sockets. */ slots=0; - if((serr=select(max_fd + 1, &ready, NULL, NULL, &tv))){ + if((serr=select(max_fd + 1, &ready, NULL, &oob, &tv))){ for (i=0;isock,&oob)){ + sangoma_tdm_read_event(slot->sock,&tdm_api); + } /* Check for rx packets */ @@ -270,7 +307,8 @@ void process_con_rx(void) error_crc+=slot->hdlc_eng->decoder.stats.crc; error_abort+=slot->hdlc_eng->decoder.stats.abort; error_frm+=slot->hdlc_eng->decoder.stats.frame_overflow; - + +#if 0 if (wanpipe_get_rx_hdlc_errors(slot->hdlc_eng) != slot->last_error){ slot->last_error = wanpipe_get_rx_hdlc_errors(slot->hdlc_eng); if (slot->last_error > 1){ @@ -294,6 +332,7 @@ void process_con_rx(void) slot->hdlc_eng->decoder.stats.frame_overflow); sangoma_get_full_cfg(slot->sock, &tdm_api); } +#endif #if 0 printf("%s: Received packet %i, length = %i : %s\n", slot->if_name,++Rx_count, err, @@ -506,7 +545,7 @@ void process_con_tx(timeslot_t *slot) * tx packet, and try resending it again * later. */ } - + }else{ printf("Error Tx nothing IFFSET\n"); } diff --git a/api/tdmapi/aft_tdm_voice_api b/api/tdmapi/aft_tdm_voice_api new file mode 100755 index 0000000..bc238c9 Binary files /dev/null and b/api/tdmapi/aft_tdm_voice_api differ diff --git a/api/tdm_api/aft_tdm_voice_api.c b/api/tdmapi/aft_tdm_voice_api.c similarity index 100% rename from api/tdm_api/aft_tdm_voice_api.c rename to api/tdmapi/aft_tdm_voice_api.c diff --git a/api/tdmapi/aft_tdm_voice_api_dtmf b/api/tdmapi/aft_tdm_voice_api_dtmf new file mode 100755 index 0000000..3ff0382 Binary files /dev/null and b/api/tdmapi/aft_tdm_voice_api_dtmf differ diff --git a/api/tdmapi/aft_tdm_voice_api_dtmf.c b/api/tdmapi/aft_tdm_voice_api_dtmf.c new file mode 100644 index 0000000..492db3f --- /dev/null +++ b/api/tdmapi/aft_tdm_voice_api_dtmf.c @@ -0,0 +1,254 @@ +/***************************************************************************** +* aft_api.c AFT T1/E1: HDLC API Sample Code +* +* Author(s): Nenad Corbic +* +* Copyright: (c) 2003-2004 Sangoma Technologies 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 of the License, or (at your option) any later version. +* ============================================================================ +*/ + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "lib_api.h" + +#define MAX_TX_DATA 5000 /* Size of tx data */ +#define MAX_FRAMES 5000 /* Number of frames to transmit */ + +#define MAX_RX_DATA 5000 + +unsigned short Rx_lgth; + +unsigned char Rx_data[MAX_RX_DATA]; +unsigned char Tx_data[MAX_TX_DATA + sizeof(wp_tdm_api_rx_hdr_t)]; + +/* Prototypes */ +int MakeConnection(void); +void handle_span_chan( void); +void sig_end(int sigid); + +int dev_fd; +FILE *tx_fd=NULL,*rx_fd=NULL; +wanpipe_tdm_api_t tdm_api; + + +/*************************************************** +* HANDLE SOCKET +* +* o Read a socket +* o Cast data received to api_rx_element_t data type +* o The received packet contains 16 bytes header +* +* ------------------------------------------ +* | 16 bytes | X bytes ... +* ------------------------------------------ +* Header Data +* +* o Data structures: +* ------------------ +* typedef struct { +* union { +* struct { +* unsigned char _event_type; +* unsigned char _rbs_rx_bits; +* unsigned int _time_stamp; +* }wp_event; +* struct { +* unsigned char _rbs_rx_bits; +* unsigned int _time_stamp; +* }wp_rx; +* unsigned char reserved[16]; +* }wp_rx_hdr_u; +* #define wp_api_event_type wp_rx_hdr_u.wp_event._event_type +* #define wp_api_event_rbs_rx_bits wp_rx_hdr_u.wp_event._rbs_rx_bits +* #define wp_api_event_time_stamp wp_rx_hdr_u.wp_event._time_stamp +* } wp_tdm_api_rx_hdr_t; +* +* typedef struct { +* wp_tdm_api_rx_hdr_t hdr; +* unsigned char data[1]; +* } wp_tdm_api_rx_element_t; +* +* typedef struct { +* union { +* struct { +* unsigned char _rbs_rx_bits; +* unsigned int _time_stamp; +* }wp_tx; +* unsigned char reserved[16]; +* }wp_tx_hdr_u; +* #define wp_api_time_stamp wp_tx_hdr_u.wp_tx._time_stamp +* } wp_tdm_api_tx_hdr_t; +* +* typedef struct { +* wp_tdm_api_tx_hdr_t hdr; +* unsigned char data[1]; +* } wp_tdm_api_tx_element_t; +* +* #define WPTDM_A_BIT 0x08 +* #define WPTDM_B_BIT 0x04 +* #define WPTDM_C_BIT 0x02 +* #define WPTDM_D_BIT 0x01 +* +*/ + +void handle_span_chan(void) +{ + unsigned int Rx_count,Tx_count,Tx_length; + int err; + +#if 0 + int rlen; + int stream_sync=0; +#endif + + Rx_count = 0; + Tx_count = 0; + + if (tdm_api.wp_tdm_cmd.hdlc) { + Tx_length = tx_size; + } else { + Tx_length = tdm_api.wp_tdm_cmd.usr_mtu_mru; + } + + printf("\n\nSocket Handler: Rx=%d Tx=%i TxCnt=%i TxLen=%i TxDelay=%i\n", + read_enable,write_enable,tx_cnt,tx_size,tx_delay); + + sangoma_tdm_enable_dtmf_events(dev_fd, &tdm_api); + + /* Main Rx Tx OOB routine */ + for(;;) { + + err = sangoma_socket_waitfor(dev_fd, 1000, POLLPRI); + printf("ret:%d\n", err); + if (err){ + err=sangoma_tdm_read_event(dev_fd,&tdm_api); + if(err < 0 ) { + printf("Failed to receive EVENT %d\n", err); + break; + } + + printf("GOT OOB EXCEPTION CMD Exiting\n"); + } + + if (++Rx_count >= rx_cnt){ + break; + } + + } + + sangoma_tdm_disable_dtmf_events(dev_fd, &tdm_api); + if (tx_fd){ + fclose(tx_fd); + } + if (rx_fd){ + fclose(rx_fd); + } + close (dev_fd); + + return; +} + +int dtmf_event (int fd, unsigned char digit, unsigned char type, unsigned char port) +{ + printf("%d: DTMV Event: %c (%s:%s)!\n", + fd, + digit, + (port == WAN_EC_CHANNEL_PORT_ROUT)?"ROUT":"SOUT", + (type == WAN_EC_TONE_PRESENT)?"PRESET":"STOP"); + return 0; +} + + +/*************************************************************** + * Main: + * + * o Make a socket connection to the driver. + * o Call handle_span_chan() to read the socket + * + **************************************************************/ + + +int main(int argc, char* argv[]) +{ + int proceed; + + proceed=init_args(argc,argv); + if (proceed != WAN_TRUE){ + usage(argv[0]); + return -1; + } + + signal(SIGINT,&sig_end); + memset(&tdm_api,0,sizeof(tdm_api)); + tdm_api.wp_tdm_event.wp_dtmf_event = &dtmf_event; + + printf("TDM DTMF PTR = %p\n",tdm_api.wp_tdm_event.wp_dtmf_event); + + dev_fd =-1; + + dev_fd = sangoma_open_tdmapi_span_chan(atoi(card_name),atoi(if_name)); + if( dev_fd < 0){ + printf("Failed to open span chan(%s:%d,%s:%d)\n", + card_name,atoi(card_name),if_name,atoi(if_name)); + exit (1); + } + printf("HANDLING SPAN %i CHAN %i FD=%i\n", + atoi(card_name),atoi(if_name),dev_fd); + + sangoma_tdm_set_codec(dev_fd,&tdm_api,WP_NONE); + sangoma_get_full_cfg(dev_fd, &tdm_api); + + handle_span_chan(); + close(dev_fd); + return 0; + + return 0; +}; + + +void sig_end(int sigid) +{ + + printf("Got Signal %i\n",sigid); + + sangoma_tdm_disable_dtmf_events(dev_fd, &tdm_api); + + if (tx_fd){ + fclose(tx_fd); + } + if (rx_fd){ + fclose(rx_fd); + } + + if (dev_fd){ + close (dev_fd); + } + + exit(1); +} + + + diff --git a/api/tdmapi/aft_tdm_voice_api_rbs b/api/tdmapi/aft_tdm_voice_api_rbs new file mode 100755 index 0000000..d81f68c Binary files /dev/null and b/api/tdmapi/aft_tdm_voice_api_rbs differ diff --git a/api/tdm_api/aft_tdm_voice_api_rbs.c b/api/tdmapi/aft_tdm_voice_api_rbs.c similarity index 100% rename from api/tdm_api/aft_tdm_voice_api_rbs.c rename to api/tdmapi/aft_tdm_voice_api_rbs.c diff --git a/api/tdmapi/aft_tdm_voice_api_rm_dtmf b/api/tdmapi/aft_tdm_voice_api_rm_dtmf new file mode 100755 index 0000000..8163761 Binary files /dev/null and b/api/tdmapi/aft_tdm_voice_api_rm_dtmf differ diff --git a/api/tdmapi/aft_tdm_voice_api_rm_dtmf.c b/api/tdmapi/aft_tdm_voice_api_rm_dtmf.c new file mode 100644 index 0000000..872947a --- /dev/null +++ b/api/tdmapi/aft_tdm_voice_api_rm_dtmf.c @@ -0,0 +1,445 @@ +/***************************************************************************** +* aft_api.c AFT T1/E1: HDLC API Sample Code +* +* Author(s): Nenad Corbic +* +* Copyright: (c) 2003-2004 Sangoma Technologies 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 of the License, or (at your option) any later version. +* ============================================================================ +*/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "lib_api.h" + +#define MAX_TX_DATA 5000 /* Size of tx data */ +#define MAX_FRAMES 5000 /* Number of frames to transmit */ + +#define MAX_RX_DATA 5000 + +unsigned short Rx_lgth; + +unsigned char Rx_data[MAX_RX_DATA]; +unsigned char Tx_data[MAX_TX_DATA + sizeof(wp_tdm_api_rx_hdr_t)]; + +/* Prototypes */ +int MakeConnection(void); +void handle_span_chan( void); +void sig_end(int sigid); + +int dev_fd; +FILE *tx_fd=NULL,*rx_fd=NULL; +wanpipe_tdm_api_t tdm_api; + + +/*************************************************** +* HANDLE SOCKET +* +* o Read a socket +* o Cast data received to api_rx_element_t data type +* o The received packet contains 16 bytes header +* +* ------------------------------------------ +* | 16 bytes | X bytes ... +* ------------------------------------------ +* Header Data +* +* o Data structures: +* ------------------ +* typedef struct { +* union { +* struct { +* unsigned char _event_type; +* unsigned char _rbs_rx_bits; +* unsigned int _time_stamp; +* }wp_event; +* struct { +* unsigned char _rbs_rx_bits; +* unsigned int _time_stamp; +* }wp_rx; +* unsigned char reserved[16]; +* }wp_rx_hdr_u; +* #define wp_api_event_type wp_rx_hdr_u.wp_event._event_type +* #define wp_api_event_rbs_rx_bits wp_rx_hdr_u.wp_event._rbs_rx_bits +* #define wp_api_event_time_stamp wp_rx_hdr_u.wp_event._time_stamp +* } wp_tdm_api_rx_hdr_t; +* +* typedef struct { +* wp_tdm_api_rx_hdr_t hdr; +* unsigned char data[1]; +* } wp_tdm_api_rx_element_t; +* +* typedef struct { +* union { +* struct { +* unsigned char _rbs_rx_bits; +* unsigned int _time_stamp; +* }wp_tx; +* unsigned char reserved[16]; +* }wp_tx_hdr_u; +* #define wp_api_time_stamp wp_tx_hdr_u.wp_tx._time_stamp +* } wp_tdm_api_tx_hdr_t; +* +* typedef struct { +* wp_tdm_api_tx_hdr_t hdr; +* unsigned char data[1]; +* } wp_tdm_api_tx_element_t; +* +* #define WPTDM_A_BIT 0x08 +* #define WPTDM_B_BIT 0x04 +* #define WPTDM_C_BIT 0x02 +* #define WPTDM_D_BIT 0x01 +* +*/ + +void handle_span_chan(void) +{ + unsigned int Rx_count,Tx_count,Tx_length; + wp_tdm_api_rx_element_t* api_rx_el; + wp_tdm_api_tx_element_t * api_tx_el; + fd_set ready,write,oob; + int err,i; + +#if 0 + int rlen; + int stream_sync=0; +#endif + + Rx_count = 0; + Tx_count = 0; + + if (tdm_api.wp_tdm_cmd.hdlc) { + Tx_length = tx_size; + } else { + Tx_length = tdm_api.wp_tdm_cmd.usr_mtu_mru; + } + + printf("\n\nSocket Handler: Rx=%d Tx=%i TxCnt=%i TxLen=%i TxDelay=%i\n", + read_enable,write_enable,tx_cnt,tx_size,tx_delay); + + /* Initialize the Tx Data buffer */ + memset(&Tx_data[0],0,MAX_TX_DATA + sizeof(wp_tdm_api_rx_hdr_t)); + + /* Cast the Tx data packet with the tx element + * structure. We must insert a 16 byte + * driver header, which driver will remove + * before passing packet out the physical port */ + api_tx_el = (wp_tdm_api_tx_element_t*)&Tx_data[0]; + + + /* Create a Tx packet based on user info, or + * by deafult incrementing number starting from 0 */ + for (i=0;idata[i] = (unsigned char)i; + }else{ +#if 0 + api_tx_el->data[i] = (unsigned char)tx_data+(i%4); +#else + api_tx_el->data[i] = (unsigned char)tx_data; +#endif + } + } + + sangoma_tdm_enable_rm_dtmf_events(dev_fd, &tdm_api); + + /* Main Rx Tx OOB routine */ + for(;;) { + + /* Initialize all select() descriptors */ + FD_ZERO(&ready); + FD_ZERO(&write); + FD_ZERO(&oob); + FD_SET(dev_fd,&oob); + FD_SET(dev_fd,&ready); + + if (write_enable){ + FD_SET(dev_fd,&write); + } + + /* Select will block, until: + * 1: OOB event, link level change + * 2: Rx data available + * 3: Interface able to Tx */ + + if(select(dev_fd + 1,&ready, &write, &oob, NULL)){ + + fflush(stdout); + if (FD_ISSET(dev_fd,&oob)){ + + /* An OOB event is pending, usually indicating + * a link level change */ + + err=sangoma_tdm_read_event(dev_fd,&tdm_api); + + if(err < 0 ) { + printf("Failed to receive OOB %i , %i\n", Rx_count, err); + err = ioctl(dev_fd,SIOC_WANPIPE_SOCK_STATE,0); + printf("Sock state is %s\n", + (err == 0) ? "CONNECTED" : + (err == 1) ? "DISCONNECTED" : + "CONNECTING"); + break; + } + + printf("GOT OOB EXCEPTION CMD Exiting\n"); + } + + + if (FD_ISSET(dev_fd,&ready)){ + + /* An Rx packet is pending + * 1: Read the rx packet into the Rx_data + * buffer. Confirm len > 0 + * + * 2: Cast Rx_data to the api_rx_element. + * Thus, removing a 16 byte header + * attached by the driver. + * + * 3. Check error_flag: + * CRC,Abort..etc + */ + + memset(Rx_data, 0, sizeof(Rx_data)); + + err = sangoma_readmsg_tdm(dev_fd, + Rx_data, + sizeof(wp_tdm_api_rx_hdr_t), + &Rx_data[sizeof(wp_tdm_api_rx_hdr_t)], + MAX_RX_DATA, 0); + + + if (!read_enable){ + goto bitstrm_skip_read; + } + + /* err indicates bytes received */ + if(err <= 0) { + printf("\nError receiving data\n"); + break; + } + + api_rx_el = (wp_tdm_api_rx_element_t*)&Rx_data[0]; + + /* Check the packet length */ + Rx_lgth = err; + if(Rx_lgth<=0) { + printf("\nShort frame received (%d)\n", + Rx_lgth); + return; + } + +#if 0 + if (api_rx_el->data[0] == tx_data && api_rx_el->data[1] == (tx_data+1)){ + if (!stream_sync){ + printf("GOT SYNC %x\n",api_rx_el->data[0]); + } + stream_sync=1; + }else{ + if (stream_sync){ + printf("OUT OF SYNC: %x\n",api_rx_el->data[0]); + } + } +#endif + + ++Rx_count; + + if (verbose){ + printf("Received %i Length = %i\n", + Rx_count,Rx_lgth); +#if 1 + printf("Data: "); + for(i=0;idata[i]); + } + printf("\n"); +#endif + }else{ + //putchar('R'); + } + + +#if 0 + switch(api_rx_el->hdr.wp_api_event_type){ + case WP_TDM_EVENT_DTMF: + printf("DTMV Event: %c (%s:%s)!\n", + api_rx_el->hdr.wp_api_event_dtmf_digit, + (api_rx_el->hdr.wp_api_event_dtmf_type&WP_TDM_EVENT_DTMF_ROUT)?"ROUT":"SOUT", + (api_rx_el->hdr.wp_api_event_dtmf_type&WP_TDM_EVENT_DTMF_PRESET)?"PRESET":"STOP"); + break; + case WP_TDM_EVENT_RXHOOK: + printf("RXHOOK Event: %s!\n", + (api_rx_el->hdr.wp_api_event_rxhook_state&WP_TDM_EVENT_RXHOOK_OFF)?"OFF-HOOK":"ON-HOOK"); + break; + case WP_TDM_EVENT_RING: + printf("RING Event: %s!\n", + (api_rx_el->hdr.wp_api_event_ring_state&WP_TDM_EVENT_RING_PRESENT)?"PRESENT":"STOP"); + break; + } +#endif + if (rx_cnt > 0 && Rx_count >= rx_cnt){ + break; + } +bitstrm_skip_read: +; + } + + if (FD_ISSET(dev_fd,&write)){ + + + err = sangoma_writemsg_tdm(dev_fd, + Tx_data,16, + &Tx_data[16], Tx_length, + 0); + if (err <= 0){ + if (errno == EBUSY){ + if (verbose){ + printf("Sock busy try again!\n"); + } + /* Socket busy try sending again !*/ + }else{ + printf("Faild to send %i \n",errno); + perror("Send: "); + break; + } + }else{ + + ++Tx_count; + + if (verbose){ + printf("Packet sent: Sent %i : %i\n", + err,Tx_count); + }else{ + //putchar('T'); + } + } + } + + if (tx_delay){ + usleep(tx_delay); + } + + if (tx_cnt && tx_size && Tx_count >= tx_cnt && !(files_used & TX_FILE_USED)){ + + write_enable=0; + if (rx_cnt > 0){ + /* Dont break let rx finish */ + }else{ + break; + } + } + } + } + + sangoma_tdm_disable_rm_dtmf_events(dev_fd, &tdm_api); + if (tx_fd){ + fclose(tx_fd); + } + if (rx_fd){ + fclose(rx_fd); + } + close (dev_fd); + + return; +} + +int dtmf_event (int fd, unsigned char digit, unsigned char type, unsigned char port) +{ + printf("%d: DTMV Event: %c (%s:%s)!\n", + fd, + digit, + (port == WAN_EC_CHANNEL_PORT_ROUT)?"ROUT":"SOUT", + (type == WAN_EC_TONE_PRESENT)?"PRESET":"STOP"); + return 0; +} + +/*************************************************************** + * Main: + * + * o Make a socket connection to the driver. + * o Call handle_span_chan() to read the socket + * + **************************************************************/ + + +int main(int argc, char* argv[]) +{ + int proceed; + + proceed=init_args(argc,argv); + if (proceed != WAN_TRUE){ + usage(argv[0]); + return -1; + } + + signal(SIGINT,&sig_end); + memset(&tdm_api,0,sizeof(tdm_api)); + tdm_api.wp_tdm_event.wp_dtmf_event = &dtmf_event; + + printf("TDM DTMF PTR = %p\n",tdm_api.wp_tdm_event.wp_dtmf_event); + + dev_fd =-1; + + dev_fd = sangoma_open_tdmapi_span_chan(1,1/*atoi(card_name),atoi(if_name)*/); + if( dev_fd < 0){ + printf("Failed to open span chan:%s:%s\n",card_name,if_name); + exit (1); + } + printf("HANDLING SPAN %i CHAN %i FD=%i\n", + atoi(card_name),atoi(if_name),dev_fd); + + sangoma_tdm_set_codec(dev_fd,&tdm_api,WP_NONE); + sangoma_get_full_cfg(dev_fd, &tdm_api); + + handle_span_chan(); + close(dev_fd); + return 0; + + return 0; +}; + + +void sig_end(int sigid) +{ + + printf("Got Signal %i\n",sigid); + + sangoma_tdm_disable_rm_dtmf_events(dev_fd, &tdm_api); + + if (tx_fd){ + fclose(tx_fd); + } + if (rx_fd){ + fclose(rx_fd); + } + + if (dev_fd){ + close (dev_fd); + } + + exit(1); +} + + + diff --git a/api/tdmapi/aft_tdm_voice_api_rxhook b/api/tdmapi/aft_tdm_voice_api_rxhook new file mode 100755 index 0000000..817dddc Binary files /dev/null and b/api/tdmapi/aft_tdm_voice_api_rxhook differ diff --git a/api/tdmapi/aft_tdm_voice_api_rxhook.c b/api/tdmapi/aft_tdm_voice_api_rxhook.c new file mode 100644 index 0000000..949ee42 --- /dev/null +++ b/api/tdmapi/aft_tdm_voice_api_rxhook.c @@ -0,0 +1,448 @@ +/***************************************************************************** +* aft_api.c AFT T1/E1: HDLC API Sample Code +* +* Author(s): Nenad Corbic +* +* Copyright: (c) 2003-2004 Sangoma Technologies 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 of the License, or (at your option) any later version. +* ============================================================================ +*/ + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "lib_api.h" + +#define MAX_TX_DATA 5000 /* Size of tx data */ +#define MAX_FRAMES 5000 /* Number of frames to transmit */ + +#define MAX_RX_DATA 5000 + +unsigned short Rx_lgth; + +unsigned char Rx_data[MAX_RX_DATA]; +unsigned char Tx_data[MAX_TX_DATA + sizeof(wp_tdm_api_rx_hdr_t)]; + +/* Prototypes */ +int MakeConnection(void); +void handle_span_chan( void); +void sig_end(int sigid); + +int dev_fd; +FILE *tx_fd=NULL,*rx_fd=NULL; +wanpipe_tdm_api_t tdm_api; + + +/*************************************************** +* HANDLE SOCKET +* +* o Read a socket +* o Cast data received to api_rx_element_t data type +* o The received packet contains 16 bytes header +* +* ------------------------------------------ +* | 16 bytes | X bytes ... +* ------------------------------------------ +* Header Data +* +* o Data structures: +* ------------------ +* typedef struct { +* union { +* struct { +* unsigned char _event_type; +* unsigned char _rbs_rx_bits; +* unsigned int _time_stamp; +* }wp_event; +* struct { +* unsigned char _rbs_rx_bits; +* unsigned int _time_stamp; +* }wp_rx; +* unsigned char reserved[16]; +* }wp_rx_hdr_u; +* #define wp_api_event_type wp_rx_hdr_u.wp_event._event_type +* #define wp_api_event_rbs_rx_bits wp_rx_hdr_u.wp_event._rbs_rx_bits +* #define wp_api_event_time_stamp wp_rx_hdr_u.wp_event._time_stamp +* } wp_tdm_api_rx_hdr_t; +* +* typedef struct { +* wp_tdm_api_rx_hdr_t hdr; +* unsigned char data[1]; +* } wp_tdm_api_rx_element_t; +* +* typedef struct { +* union { +* struct { +* unsigned char _rbs_rx_bits; +* unsigned int _time_stamp; +* }wp_tx; +* unsigned char reserved[16]; +* }wp_tx_hdr_u; +* #define wp_api_time_stamp wp_tx_hdr_u.wp_tx._time_stamp +* } wp_tdm_api_tx_hdr_t; +* +* typedef struct { +* wp_tdm_api_tx_hdr_t hdr; +* unsigned char data[1]; +* } wp_tdm_api_tx_element_t; +* +* #define WPTDM_A_BIT 0x08 +* #define WPTDM_B_BIT 0x04 +* #define WPTDM_C_BIT 0x02 +* #define WPTDM_D_BIT 0x01 +* +*/ + +void handle_span_chan(void) +{ + unsigned int Rx_count,Tx_count,Tx_length; + wp_tdm_api_rx_element_t* api_rx_el; + wp_tdm_api_tx_element_t * api_tx_el; + fd_set ready,write,oob; + int err,i; + +#if 0 + int rlen; + int stream_sync=0; +#endif + + Rx_count = 0; + Tx_count = 0; + + if (tdm_api.wp_tdm_cmd.hdlc) { + Tx_length = tx_size; + } else { + Tx_length = tdm_api.wp_tdm_cmd.usr_mtu_mru; + } + + printf("\n\nSocket Handler: Rx=%d Tx=%i TxCnt=%i TxLen=%i TxDelay=%i\n", + read_enable,write_enable,tx_cnt,tx_size,tx_delay); + + /* Initialize the Tx Data buffer */ + memset(&Tx_data[0],0,MAX_TX_DATA + sizeof(wp_tdm_api_rx_hdr_t)); + + /* Cast the Tx data packet with the tx element + * structure. We must insert a 16 byte + * driver header, which driver will remove + * before passing packet out the physical port */ + api_tx_el = (wp_tdm_api_tx_element_t*)&Tx_data[0]; + + + /* Create a Tx packet based on user info, or + * by deafult incrementing number starting from 0 */ + for (i=0;idata[i] = (unsigned char)i; + }else{ +#if 0 + api_tx_el->data[i] = (unsigned char)tx_data+(i%4); +#else + api_tx_el->data[i] = (unsigned char)tx_data; +#endif + } + } + + sangoma_tdm_enable_rxhook_events(dev_fd, &tdm_api); + + /* Main Rx Tx OOB routine */ + for(;;) { + + /* Initialize all select() descriptors */ + FD_ZERO(&ready); + FD_ZERO(&write); + FD_ZERO(&oob); + FD_SET(dev_fd,&oob); + FD_SET(dev_fd,&ready); + + if (write_enable){ + FD_SET(dev_fd,&write); + } + + /* Select will block, until: + * 1: OOB event, link level change + * 2: Rx data available + * 3: Interface able to Tx */ + + if(select(dev_fd + 1,&ready, &write, &oob, NULL)){ + + fflush(stdout); + if (FD_ISSET(dev_fd,&oob)){ + + /* An OOB event is pending, usually indicating + * a link level change */ + + err=sangoma_tdm_read_event(dev_fd,&tdm_api); + + if(err < 0 ) { + printf("Failed to receive OOB %i , %i\n", Rx_count, err); + err = ioctl(dev_fd,SIOC_WANPIPE_SOCK_STATE,0); + printf("Sock state is %s\n", + (err == 0) ? "CONNECTED" : + (err == 1) ? "DISCONNECTED" : + "CONNECTING"); + break; + } + + printf("GOT OOB EXCEPTION CMD Exiting\n"); + } + + + if (FD_ISSET(dev_fd,&ready)){ + + /* An Rx packet is pending + * 1: Read the rx packet into the Rx_data + * buffer. Confirm len > 0 + * + * 2: Cast Rx_data to the api_rx_element. + * Thus, removing a 16 byte header + * attached by the driver. + * + * 3. Check error_flag: + * CRC,Abort..etc + */ + + memset(Rx_data, 0, sizeof(Rx_data)); + + err = sangoma_readmsg_tdm(dev_fd, + Rx_data, + sizeof(wp_tdm_api_rx_hdr_t), + &Rx_data[sizeof(wp_tdm_api_rx_hdr_t)], + MAX_RX_DATA, 0); + + + if (!read_enable){ + goto bitstrm_skip_read; + } + + /* err indicates bytes received */ + if(err <= 0) { + printf("\nError receiving data\n"); + break; + } + + api_rx_el = (wp_tdm_api_rx_element_t*)&Rx_data[0]; + + /* Check the packet length */ + Rx_lgth = err; + if(Rx_lgth<=0) { + printf("\nShort frame received (%d)\n", + Rx_lgth); + return; + } + +#if 0 + if (api_rx_el->data[0] == tx_data && api_rx_el->data[1] == (tx_data+1)){ + if (!stream_sync){ + printf("GOT SYNC %x\n",api_rx_el->data[0]); + } + stream_sync=1; + }else{ + if (stream_sync){ + printf("OUT OF SYNC: %x\n",api_rx_el->data[0]); + } + } +#endif + + ++Rx_count; + + if (verbose){ +#if 0 + printf("Received %i Length = %i\n", + Rx_count,Rx_lgth); + + printf("Data: "); + for(i=0;idata[i]); + } + printf("\n"); +#endif + }else{ + //putchar('R'); + } + + +#if 0 + switch(api_rx_el->hdr.wp_api_event_type){ + case WP_TDM_EVENT_DTMF: + printf("DTMV Event: %c (%s:%s)!\n", + api_rx_el->hdr.wp_api_event_dtmf_digit, + (api_rx_el->hdr.wp_api_event_dtmf_type&WP_TDM_EVENT_DTMF_ROUT)?"ROUT":"SOUT", + (api_rx_el->hdr.wp_api_event_dtmf_type&WP_TDM_EVENT_DTMF_PRESET)?"PRESET":"STOP"); + break; + case WP_TDM_EVENT_RXHOOK: + printf("RXHOOK Event: %s!\n", + (api_rx_el->hdr.wp_api_event_rxhook_state&WP_TDM_EVENT_RXHOOK_OFF)?"OFF-HOOK":"ON-HOOK"); + break; + case WP_TDM_EVENT_RING: + printf("RING Event: %s!\n", + (api_rx_el->hdr.wp_api_event_ring_state&WP_TDM_EVENT_RING_PRESENT)?"PRESENT":"STOP"); + break; + } +#endif + + if (rx_cnt > 0 && Rx_count >= rx_cnt){ + break; + } +bitstrm_skip_read: +; + } + + if (FD_ISSET(dev_fd,&write)){ + + + err = sangoma_writemsg_tdm(dev_fd, + Tx_data,16, + &Tx_data[16], Tx_length, + 0); + if (err <= 0){ + if (errno == EBUSY){ + if (verbose){ + printf("Sock busy try again!\n"); + } + /* Socket busy try sending again !*/ + }else{ + printf("Faild to send %i \n",errno); + perror("Send: "); + break; + } + }else{ + + ++Tx_count; + + if (verbose){ + //printf("Packet sent: Sent %i : %i\n", + // err,Tx_count); + }else{ + //putchar('T'); + } + } + } + + if (tx_delay){ + usleep(tx_delay); + } + + if (tx_cnt && tx_size && Tx_count >= tx_cnt && !(files_used & TX_FILE_USED)){ + + write_enable=0; + if (rx_cnt > 0){ + /* Dont break let rx finish */ + }else{ + break; + } + } + } + } + + sangoma_tdm_disable_rxhook_events(dev_fd, &tdm_api); + if (tx_fd){ + fclose(tx_fd); + } + if (rx_fd){ + fclose(rx_fd); + } + close (dev_fd); + return; + +} + +int rxhook_event (int fd, unsigned char state) +{ + printf("%d: RXHOOK Event: %s!\n", + fd, (state & WAN_EVENT_RXHOOK_OFF)?"OFF-HOOK":"ON-HOOK"); + return 0; +} + +/*************************************************************** + * Main: + * + * o Make a socket connection to the driver. + * o Call handle_span_chan() to read the socket + * + **************************************************************/ + + +int main(int argc, char* argv[]) +{ + int proceed; + + proceed=init_args(argc,argv); + if (proceed != WAN_TRUE){ + usage(argv[0]); + return -1; + } + + signal(SIGINT,&sig_end); + memset(&tdm_api,0,sizeof(tdm_api)); + tdm_api.wp_tdm_event.wp_rxhook_event = &rxhook_event; + + printf("TDM RXHOOK PTR = %p\n",tdm_api.wp_tdm_event.wp_rxhook_event); + + dev_fd =-1; + + dev_fd = sangoma_open_tdmapi_span_chan(atoi(card_name),atoi(if_name)); + if( dev_fd < 0){ + printf("Failed to open span chan (%s:%s:%d:%d)\n", + card_name, if_name, + atoi(card_name),atoi(if_name)); + exit (1); + } + printf("HANDLING SPAN %i CHAN %i FD=%i\n", + atoi(card_name),atoi(if_name),dev_fd); + + sangoma_tdm_set_codec(dev_fd,&tdm_api,WP_NONE); + sangoma_get_full_cfg(dev_fd, &tdm_api); + + handle_span_chan(); + close(dev_fd); + return 0; + + return 0; +}; + + +void sig_end(int sigid) +{ + + printf("Got Signal %i\n",sigid); + + sangoma_tdm_disable_rxhook_events(dev_fd, &tdm_api); + + if (tx_fd){ + fclose(tx_fd); + } + if (rx_fd){ + fclose(rx_fd); + } + + if (dev_fd){ + close (dev_fd); + } + + + exit(1); +} + + + diff --git a/api/tdm_api/tdm_hdlc_test.sh b/api/tdmapi/tdm_hdlc_test.sh similarity index 100% rename from api/tdm_api/tdm_hdlc_test.sh rename to api/tdmapi/tdm_hdlc_test.sh diff --git a/deb_control/wanpipe.deb b/deb_control/wanpipe.deb index 86ac9a3..a952020 100644 --- a/deb_control/wanpipe.deb +++ b/deb_control/wanpipe.deb @@ -1,5 +1,5 @@ Package: wanpipe -Version: 2.3.4-16 +Version: 3.1.0-0 Section: networking Priority: optional Architecture: all diff --git a/diff b/diff deleted file mode 100644 index 4389f48..0000000 --- a/diff +++ /dev/null @@ -1,180 +0,0 @@ ---- Setup 2007-10-29 16:38:54.000000000 -0400 -+++ /root/3.2/wanpipe/Setup 2007-10-29 16:34:04.000000000 -0400 -@@ -9,6 +9,7 @@ - # as published by the Free Software Foundation; either version - # 2 of the License, or (at your option) any later version. - # ---------------------------------------------------------------------------- -+# Oct 26, 2007 Konrad Hammel Updated minor start script bug - # Nov 27, 2005 David Rokhvarg Added Echo Debugging option - # Mar 18, 2002 Nenad Corbic Added BSCSTRM protocol - # Mar 01, 2002 Nenad Corbic Added option to split rpm build into -@@ -1642,8 +1643,8 @@ - getyn "Would you like to auto-execute ztcfg after wanrouter start?" || return 0 - if [ ! -d $WAN_CONF_DIR/scripts ]; then - eval "\mkdir -p $WAN_CONF_DIR/scripts >/dev/null 2>/dev/null" -- fi -- eval "\cp -f $PROD_HOME/samples/wanpipe_zaptel_start $WAN_CONF_DIR/scripts/start >/dev/null 2>/dev/null" -+ fi -+ eval "\cp -f $PROD_HOME/samples/wanpipe_zaptel_start $WAN_CONF_DIR/scripts/start > /dev/null 2> /dev/null" - if [ ! -f $WAN_CONF_DIR/scripts/start ]; then - echo "Error: Could not copy auto-ztcfg script" - fi -@@ -2502,7 +2503,7 @@ - Default for: Asterisk SS7 + PRI - - 6. TDM API -- Protocols: TDM API, Q921 on AFT adapters: -+ Protocols: TDM API on AFT adapters: - Default for: FreeSwitch, Yate, Sunrise - Custom voice development - -@@ -2546,7 +2547,6 @@ - - elif [ "$response" -eq 6 ]; then - enable_protocols "AFT_TE1" -- enable_protocols "LIPAPI" - - elif [ "$response" -eq 7 ]; then - enable_custom_protocols -@@ -4979,6 +4979,21 @@ - fi - fi - -+ eval "cat Makefile |sed 's/^SUBDIR_MODULES:=.*//g'>$TEMP 2>/dev/null " -+ if [ $? -ne 0 ]; then -+ echo " Failed to remove wct4xxp from Makefile" -+ exit 1 -+ else -+ eval "\mv -f $TEMP Makefile" -+ if [ $? -ne 0 ]; then -+ echo " Failed to overwrite existing Makefile" -+ exit 1 -+ else -+ echo " wct4xxp module removed from Makefile successfully" -+ zaptel_modified=1 -+ fi -+ fi -+ - if [ -f Makefile.kernel26 ]; then - eval "cat Makefile.kernel26 | sed 's/^obj-m.*+=.*wct4xx.*//g'>$TEMP 2>/dev/null " - if [ $? -ne 0 ]; then -@@ -5357,10 +5372,10 @@ - local zapdir_manual=0 - local zapdirs=$1 - -+ echo -+ echo "Looking for zaptel directory in /usr/src ..." -+ echo "-------------------------------------------" - if [ "$zapdirs" = "" ]; then -- echo -- echo "Looking for zaptel directory in /usr/src ..." -- echo "-------------------------------------------" - zapdirs=`find /usr/src -maxdepth 2 -name 'zaptel*' | xargs ` - fi - -@@ -5419,7 +5434,12 @@ - # echo "d4: Download Latest 1.4" - echo "(ctrl-c to Exit)" - echo -n "Please select working zaptel directory [1-9][m]: " -+ -+ response=1 -+ -+ if [ -z $NONINTERACTIVE ] || [ $zaptel_auto_install = "YES" ]; then - read response -+ fi - - if [ "$response" = "" ]; then - find_zap_dirs_invalid "$zapdirs" -@@ -5830,6 +5850,7 @@ - - exit 1 - else -+ echo - - if [ $TDM_PROT != YES ]; then - echo "Enabling the TDM Voice Asterisk Support" -@@ -5838,6 +5859,15 @@ - WANCFG_ZAPTEL_CFG=YES - fi - -+ -+ eval "grep ZT_DCHAN_TX_V2 $ZAPTEL_INSTALL_DIR/* 2> /dev/null > /dev/null" -+ if [ $? -eq 0 ]; then -+ TDM_DCHAN="(DCHAN)" -+ PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_TDM_VOICE_DCHAN" -+ echo "Sangoma DCHAN Patch detected in zaptel" -+ fi -+ -+ - if [ "$TDM_DCHAN" = "" ]; then - echo - echo -@@ -5932,6 +5962,7 @@ - TDM_PROT=YES - zaptel_modified=1; - if [ $zaptel_modified ] && [ $zaptel_modified -eq 1 ] && [ "$ZAPTEL_COMPILE_DISABLE" = "NO" ]; then -+ echo - getyn "Recompile/reinstall Zaptel (recommended) ?" - if [ $? -eq 0 ]; then - tdmv_compile_zaptel -@@ -6266,11 +6297,11 @@ - PKG_NAME=wanpipe - DISTR_NAME="WANPIPE" - PROD=wanrouter --PROD_VER=2.3.4-15 -+PROD_VER=3.2.1 - PROD_HOME=`pwd` --META_CONF=$PROD_HOME/$PROD.rc -+WAN_CONF_DIR=/etc/wanpipe -+META_CONF=$WAN_CONF_DIR/$PROD.rc - WAN_INTR_DIR=$PROD_HOME/interfaces --WAN_CONF_DIR=$PROD_HOME - PROD_CONF=$WAN_CONF_DIR/wanpipe1.conf - PROD_PATCH=$PROD_HOME/patches - PROD_INIT=/usr/sbin/ -@@ -6521,6 +6552,9 @@ - EXTRA_ARGS=" --protocol=TDM --silent " - fi - -+if [ "$setup_cmd" = "buildrpm" ]; then -+ EXTRA_ARGS=" --no-zaptel-compile " -+fi - - if [ "$PKG_NAME" != "wanpipe-lite" ]; then - -@@ -6590,6 +6624,10 @@ - PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DWANPIPE_64BIT_4G_DMA " - ;; - -+ --hwec_noise_reduction*) -+ PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DWANEC_ENABLE_NOISE_REDUCTION " -+ ;; -+ - --with-linux*) - SOURCEDIR=`echo $arg | cut -d'=' -f2`; - if [ "$SOURCEDIR" = "" ]; then -@@ -6856,9 +6894,13 @@ - 5. Wan Protocols : $PROTS - - 6. Build Directory : $PROD_HOME/$build_dir -- - " - -+ if [ $TDM_PROT = "YES" ]; then -+echo " 7. Zaptel Build Dir : $ZAPTEL_INSTALL_DIR " -+ fi -+ echo -+ echo - if [ $KERNEL_UNAME != $KERNEL_VERSION ]; then - - echo " -@@ -7059,8 +7101,8 @@ - prepare || exit 1 - apply_patches || exit 1 - compile_drivers || exit 1 -+install_config || exit 1 - install_init || exit 1 --install_config || exit 1 - compile_src || exit 1 - install_all - install_ssmg diff --git a/doc/README.katm b/doc/README.katm new file mode 100644 index 0000000..3053903 --- /dev/null +++ b/doc/README.katm @@ -0,0 +1,34 @@ +Wanpipe for Linux Kernel ATM Stack +================================== + +Author: Nenad Corbic + +Release: wanpipe-3.1.0.p12.tgz or greater + + +1. Untar wanpipe release + +2. Change directory to newly created wanpipe directory + cd wanpipe/ + +3. Install wanpipe + ./Setup install --protocols=DEF-KATM + | + ->Select all default. + +4. Configure for Kernel ATM mode. + Copy wanpipe1.katm into /etc/wanpipe + + cp samples/wanpipe1.katm /etc/wanpipe/wanpipe1.conf + +5. Start wanpipe + wanrouter start wanpipe1 + +6. Confirm that wanpipe device exists in kernel atm + cat /proc/net/atm/devices + + +That is it. + +Nenad + diff --git a/lxdialog_output b/lxdialog_output deleted file mode 100644 index 72699c3..0000000 --- a/lxdialog_output +++ /dev/null @@ -1 +0,0 @@ -AFT-A301-SH SLOT=1 BUS=3 IRQ=233 CPU=A PORT=1 V=07 diff --git a/patches/kdrivers/include/aft_a104.h b/patches/kdrivers/include/aft_a104.h index c6a44ed..3b0ed31 100644 --- a/patches/kdrivers/include/aft_a104.h +++ b/patches/kdrivers/include/aft_a104.h @@ -58,19 +58,17 @@ int a56k_write_fe (void *pcard, ...); unsigned char __a56k_read_fe (void *pcard, ...); unsigned char a56k_read_fe (void *pcard, ...); -int aft_te1_write_cpld(sdla_t *card, unsigned short off,unsigned char data); +int aft_te1_write_cpld(sdla_t *card, unsigned short off, u_int16_t data); unsigned char aft_te1_read_cpld(sdla_t *card, unsigned short cpld_off); -int aft_56k_write_cpld(sdla_t *card, unsigned short off, unsigned char data); +int aft_56k_write_cpld(sdla_t *card, unsigned short off, u_int16_t data); unsigned char aft_56k_read_cpld(sdla_t *card, unsigned short cpld_off); -int a108m_write_cpld(sdla_t *card, unsigned short off,unsigned char data); +int a108m_write_cpld(sdla_t *card, unsigned short off, u_int16_t data); unsigned char a108m_read_cpld(sdla_t *card, unsigned short cpld_off); void a104_fifo_adjust(sdla_t *card,u32 level); - - #endif #endif diff --git a/patches/kdrivers/include/aft_analog.h b/patches/kdrivers/include/aft_analog.h index aa6784c..1cadc6d 100644 --- a/patches/kdrivers/include/aft_analog.h +++ b/patches/kdrivers/include/aft_analog.h @@ -19,15 +19,6 @@ #ifdef WAN_KERNEL -#if 0 -#define A200_SECURITY_16_ECCHAN 0x00 -#define A200_SECURITY_32_ECCHAN 0x01 -#define A200_SECURITY_0_ECCHAN 0x05 -#define A200_ECCHAN(val) \ - ((val) == A200_SECURITY_16_ECCHAN) ? 16 : \ - ((val) == A200_SECURITY_32_ECCHAN) ? 32 : 0 -#endif - int aft_analog_global_chip_config(sdla_t *card); int aft_analog_global_chip_unconfig(sdla_t *card); int aft_analog_chip_config(sdla_t *card); @@ -43,7 +34,7 @@ int aft_analog_write_fe (void* card, ...); unsigned char __aft_analog_read_fe (void* card, ...); unsigned char aft_analog_read_fe (void* card, ...); -int aft_analog_write_cpld(sdla_t *card, unsigned short off,unsigned char data); +int aft_analog_write_cpld(sdla_t *card, unsigned short off,u_int16_t data); unsigned char aft_analog_read_cpld(sdla_t *card, unsigned short cpld_off); void aft_analog_fifo_adjust(sdla_t *card,u32 level); diff --git a/patches/kdrivers/include/sdla_56k.h b/patches/kdrivers/include/sdla_56k.h index 34852ef..b4522d1 100644 --- a/patches/kdrivers/include/sdla_56k.h +++ b/patches/kdrivers/include/sdla_56k.h @@ -55,17 +55,19 @@ #define BIT_DEV_CTRL_DDS_PRI 0x00 #define BIT_DEV_CTRL_SCT_E_OUT 0x10 #define BIT_DEV_CTRL_XTALI_INT 0x40 + #define BIT_INT_EN_STAT_ACTIVE 0x01 #define BIT_INT_EN_STAT_RX_CODE 0x20 #define BIT_INT_EN_STAT_IDEL 0x40 + #define BIT_EIA_CTRL_RTS_ACTIVE 0x01 #define BIT_EIA_CTRL_DTR_ACTIVE 0x02 #define BIT_EIA_CTRL_DTE_ENABLE 0x04 #define BIT_DEV_STAT_IL_44_dB 0x08 #define BIT_DEV_STAT_RLOS 0x80 -#define BIT_RX_CTRL_DSU_LOOP 0x80 -#define BIT_RX_CTRL_CSU_LOOP 0x20 +#define BIT_RX_CTRL_DSU_LOOP 0x80 +#define BIT_RX_CTRL_CSU_LOOP 0x20 #define BIT_RX_CODES_UNMTCH 0x01 #define BIT_RX_CODES_UMC 0x02 @@ -101,7 +103,7 @@ typedef struct { } sdla_56k_param_t; extern int sdla_56k_default_cfg(void* arg1, void* p56k_cfg); -extern int sdla_56k_iface_init(void* pfe, void *p_fe_iface); +extern int sdla_56k_iface_init(void* pfe); #endif /* WAN_KERNEL */ diff --git a/patches/kdrivers/include/sdla_adccp.h b/patches/kdrivers/include/sdla_adccp.h index 1f801ac..4b89704 100644 --- a/patches/kdrivers/include/sdla_adccp.h +++ b/patches/kdrivers/include/sdla_adccp.h @@ -26,9 +26,9 @@ * */ -#pragma pack(1) - - +#ifndef PACKED +# define PACKED __attribute__((packed)) +#endif /* PACKED */ /****** CONSTANTS DEFINITIONS ***********************************************/ @@ -57,16 +57,16 @@ */ typedef struct X25Cmd { - unsigned char command ; /* command code */ - unsigned short length ; /* transfer data length */ - unsigned char result ; /* return code */ - unsigned char pf ; /* P/F bit */ - unsigned short lcn ; /* logical channel */ - unsigned char qdm ; /* Q/D/M bits */ - unsigned char cause ; /* cause field */ - unsigned char diagn ; /* diagnostics */ - unsigned char pktType ; /* packet type */ - unsigned char resrv[4] ; /* reserved */ + unsigned char command PACKED; /* command code */ + unsigned short length PACKED; /* transfer data length */ + unsigned char result PACKED; /* return code */ + unsigned char pf PACKED; /* P/F bit */ + unsigned short lcn PACKED; /* logical channel */ + unsigned char qdm PACKED; /* Q/D/M bits */ + unsigned char cause PACKED; /* cause field */ + unsigned char diagn PACKED; /* diagnostics */ + unsigned char pktType PACKED; /* packet type */ + unsigned char resrv[4] PACKED; /* reserved */ } TX25Cmd; /* @@ -229,9 +229,9 @@ typedef struct X25Cmd */ typedef struct X25Mbox { - unsigned char opflag ; /* 00h: execution flag */ - TX25Cmd cmd ; /* 01h: command block */ - unsigned char data[1] ; /* 10h: data buffer */ + unsigned char opflag PACKED; /* 00h: execution flag */ + TX25Cmd cmd PACKED; /* 01h: command block */ + unsigned char data[1] PACKED; /* 10h: data buffer */ } TX25Mbox; /*---------------------------------------------------------------------------- @@ -239,11 +239,11 @@ typedef struct X25Mbox */ typedef struct X25TimeStamp { - unsigned char month ; - unsigned char date ; - unsigned char sec ; - unsigned char min ; - unsigned char hour ; + unsigned char month PACKED; + unsigned char date PACKED; + unsigned char sec PACKED; + unsigned char min PACKED; + unsigned char hour PACKED; } TX25TimeStamp; /*---------------------------------------------------------------------------- @@ -253,11 +253,11 @@ typedef struct X25TimeStamp */ typedef struct X25Status { - TX25TimeStamp tstamp ; /* 08h: timestamp (BCD) */ - unsigned char iflags ; /* 0Dh: interrupt flags */ - unsigned char imask ; /* 0Eh: interrupt mask */ - unsigned char hdlc_status ; /* 10h: misc. HDLC/X25 flags */ - unsigned char ghdlc_status ; /* channel status bytes */ + TX25TimeStamp tstamp PACKED; /* 08h: timestamp (BCD) */ + unsigned char iflags PACKED; /* 0Dh: interrupt flags */ + unsigned char imask PACKED; /* 0Eh: interrupt mask */ + unsigned char hdlc_status PACKED; /* 10h: misc. HDLC/X25 flags */ + unsigned char ghdlc_status PACKED; /* channel status bytes */ } TX25Status; /* @@ -295,9 +295,9 @@ typedef struct X25Status */ typedef struct X25GlobalVars { - unsigned char resrv ; /* 00h: reserved */ - unsigned char dtrCtl ; /* 01h: DTR control code */ - unsigned char resErr ; /* 01h: '1' - reset modem error */ + unsigned char resrv PACKED; /* 00h: reserved */ + unsigned char dtrCtl PACKED; /* 01h: DTR control code */ + unsigned char resErr PACKED; /* 01h: '1' - reset modem error */ } TX25GlobalVars; /* @@ -311,7 +311,7 @@ typedef struct X25GlobalVars */ typedef struct X25ModemStatus { - unsigned char status ; /* 00h: modem status */ + unsigned char status PACKED; /* 00h: modem status */ } TX25ModemStatus; /* @@ -325,11 +325,11 @@ typedef struct X25ModemStatus */ typedef struct X25LinkStatus { - unsigned char txQueued ; /* 00h: queued Tx I-frames*/ - unsigned char rxQueued ; /* 01h: queued Rx I-frames*/ - unsigned char station ; /* 02h: DTE/DCE config. */ - unsigned char reserved ; /* 03h: reserved */ - unsigned char sfTally ; /* 04h: supervisory frame tally */ + unsigned char txQueued PACKED; /* 00h: queued Tx I-frames*/ + unsigned char rxQueued PACKED; /* 01h: queued Rx I-frames*/ + unsigned char station PACKED; /* 02h: DTE/DCE config. */ + unsigned char reserved PACKED; /* 03h: reserved */ + unsigned char sfTally PACKED; /* 04h: supervisory frame tally */ } TX25LinkStatus; /* @@ -343,23 +343,23 @@ typedef struct X25LinkStatus */ typedef struct HdlcStats { /* a number of ... */ - unsigned short rxIFrames ; /* 00h: ready Rx I-frames */ - unsigned short rxNoseq ; /* 02h: frms out-of-sequence */ - unsigned short rxNodata ; /* 04h: I-frms without data */ - unsigned short rxDiscarded ; /* 06h: discarded frames */ - unsigned short rxTooLong ; /* 08h: frames too long */ - unsigned short rxBadAddr ; /* 0Ah: frms with inval.addr*/ - unsigned short txAcked ; /* 0Ch: acknowledged I-frms */ - unsigned short txRetransm ; /* 0Eh: re-transmit. I-frms */ - unsigned short t1Timeout ; /* 10h: T1 timeouts */ - unsigned short rxSABM ; /* 12h: received SABM frames */ - unsigned short rxDISC ; /* 14h: received DISC frames */ - unsigned short rxDM ; /* 16h: received DM frames */ - unsigned short rxFRMR ; /* 18h: FRMR frames received */ - unsigned short txSABM ; /* 1Ah: transm. SABM frames*/ - unsigned short txDISC ; /* 1Ch: transm. DISC frames*/ - unsigned short txDM ; /* 1Eh: transm. DM frames */ - unsigned short txFRMR ; /* 20h: transm. FRMR frames*/ + unsigned short rxIFrames PACKED; /* 00h: ready Rx I-frames */ + unsigned short rxNoseq PACKED; /* 02h: frms out-of-sequence */ + unsigned short rxNodata PACKED; /* 04h: I-frms without data */ + unsigned short rxDiscarded PACKED; /* 06h: discarded frames */ + unsigned short rxTooLong PACKED; /* 08h: frames too long */ + unsigned short rxBadAddr PACKED; /* 0Ah: frms with inval.addr*/ + unsigned short txAcked PACKED; /* 0Ch: acknowledged I-frms */ + unsigned short txRetransm PACKED; /* 0Eh: re-transmit. I-frms */ + unsigned short t1Timeout PACKED; /* 10h: T1 timeouts */ + unsigned short rxSABM PACKED; /* 12h: received SABM frames */ + unsigned short rxDISC PACKED; /* 14h: received DISC frames */ + unsigned short rxDM PACKED; /* 16h: received DM frames */ + unsigned short rxFRMR PACKED; /* 18h: FRMR frames received */ + unsigned short txSABM PACKED; /* 1Ah: transm. SABM frames*/ + unsigned short txDISC PACKED; /* 1Ch: transm. DISC frames*/ + unsigned short txDM PACKED; /* 1Eh: transm. DM frames */ + unsigned short txFRMR PACKED; /* 20h: transm. FRMR frames*/ } THdlcStats; /* --------------------------------------------------------------------------- @@ -367,16 +367,16 @@ typedef struct HdlcStats */ typedef struct HdlcCommErr { /* a number of ... */ - unsigned char rxOverrun ; /* 00h: Rx overrun errors */ - unsigned char rxBadCrc ; /* 01h: Rx CRC errors */ - unsigned char rxAborted ; /* 02h: Rx aborted frames */ - unsigned char rxDropped ; /* 03h: frames lost */ - unsigned char txAborted ; /* 04h: Tx aborted frames */ - unsigned char txUnderrun ; /* 05h: Tx underrun errors */ - unsigned char txMissIntr ; /* 06h: missed underrun ints */ - unsigned char reserved ; /* 07h: reserved */ - unsigned char droppedDCD ; /* 08h: times DCD dropped */ - unsigned char droppedCTS ; /* 09h: times CTS dropped */ + unsigned char rxOverrun PACKED; /* 00h: Rx overrun errors */ + unsigned char rxBadCrc PACKED; /* 01h: Rx CRC errors */ + unsigned char rxAborted PACKED; /* 02h: Rx aborted frames */ + unsigned char rxDropped PACKED; /* 03h: frames lost */ + unsigned char txAborted PACKED; /* 04h: Tx aborted frames */ + unsigned char txUnderrun PACKED; /* 05h: Tx underrun errors */ + unsigned char txMissIntr PACKED; /* 06h: missed underrun ints */ + unsigned char reserved PACKED; /* 07h: reserved */ + unsigned char droppedDCD PACKED; /* 08h: times DCD dropped */ + unsigned char droppedCTS PACKED; /* 09h: times CTS dropped */ } THdlcCommErr; /* --------------------------------------------------------------------------- @@ -384,47 +384,47 @@ typedef struct HdlcCommErr */ typedef struct X25Config { - unsigned char baudRate ; /* 00h: */ - unsigned char t1 ; /* 01h: */ - unsigned char t2 ; /* 02h: */ - unsigned char n2 ; /* 03h: */ - unsigned short hdlcMTU ; /* 04h: */ - unsigned char hdlcWindow ; /* 06h: */ - unsigned char t4 ; /* 07h: */ - unsigned char autoModem ; /* 08h: */ - unsigned char autoHdlc ; /* 09h: */ - unsigned char hdlcOptions ; /* 0Ah: */ - unsigned char station ; /* 0Bh: */ - unsigned char local_station_address ; + unsigned char baudRate PACKED; /* 00h: */ + unsigned char t1 PACKED; /* 01h: */ + unsigned char t2 PACKED; /* 02h: */ + unsigned char n2 PACKED; /* 03h: */ + unsigned short hdlcMTU PACKED; /* 04h: */ + unsigned char hdlcWindow PACKED; /* 06h: */ + unsigned char t4 PACKED; /* 07h: */ + unsigned char autoModem PACKED; /* 08h: */ + unsigned char autoHdlc PACKED; /* 09h: */ + unsigned char hdlcOptions PACKED; /* 0Ah: */ + unsigned char station PACKED; /* 0Bh: */ + unsigned char local_station_address PACKED; #if 0 - unsigned char pktWindow ; /* 0Ch: */ - unsigned short defPktSize ; /* 0Dh: */ - unsigned short pktMTU ; /* 0Fh: */ - unsigned short loPVC ; /* 11h: */ - unsigned short hiPVC ; /* 13h: */ - unsigned short loIncommingSVC ; /* 15h: */ - unsigned short hiIncommingSVC ; /* 17h: */ - unsigned short loTwoWaySVC ; /* 19h: */ - unsigned short hiTwoWaySVC ; /* 1Bh: */ - unsigned short loOutgoingSVC ; /* 1Dh: */ - unsigned short hiOutgoingSVC ; /* 1Fh: */ - unsigned short options ; /* 21h: */ - unsigned char responseOpt ; /* 23h: */ - unsigned short facil1 ; /* 24h: */ - unsigned short facil2 ; /* 26h: */ - unsigned short ccittFacil ; /* 28h: */ - unsigned short otherFacil ; /* 2Ah: */ - unsigned short ccittCompat ; /* 2Ch: */ - unsigned char t10t20 ; /* 2Eh: */ - unsigned char t11t21 ; /* 2Fh: */ - unsigned char t12t22 ; /* 30h: */ - unsigned char t13t23 ; /* 31h: */ - unsigned char t16t26 ; /* 32H: */ - unsigned char t28 ; /* 33h: */ - unsigned char r10r20 ; /* 34h: */ - unsigned char r12r22 ; /* 35h: */ - unsigned char r13r23 ; /* 36h: */ + unsigned char pktWindow PACKED; /* 0Ch: */ + unsigned short defPktSize PACKED; /* 0Dh: */ + unsigned short pktMTU PACKED; /* 0Fh: */ + unsigned short loPVC PACKED; /* 11h: */ + unsigned short hiPVC PACKED; /* 13h: */ + unsigned short loIncommingSVC PACKED; /* 15h: */ + unsigned short hiIncommingSVC PACKED; /* 17h: */ + unsigned short loTwoWaySVC PACKED; /* 19h: */ + unsigned short hiTwoWaySVC PACKED; /* 1Bh: */ + unsigned short loOutgoingSVC PACKED; /* 1Dh: */ + unsigned short hiOutgoingSVC PACKED; /* 1Fh: */ + unsigned short options PACKED; /* 21h: */ + unsigned char responseOpt PACKED; /* 23h: */ + unsigned short facil1 PACKED; /* 24h: */ + unsigned short facil2 PACKED; /* 26h: */ + unsigned short ccittFacil PACKED; /* 28h: */ + unsigned short otherFacil PACKED; /* 2Ah: */ + unsigned short ccittCompat PACKED; /* 2Ch: */ + unsigned char t10t20 PACKED; /* 2Eh: */ + unsigned char t11t21 PACKED; /* 2Fh: */ + unsigned char t12t22 PACKED; /* 30h: */ + unsigned char t13t23 PACKED; /* 31h: */ + unsigned char t16t26 PACKED; /* 32H: */ + unsigned char t28 PACKED; /* 33h: */ + unsigned char r10r20 PACKED; /* 34h: */ + unsigned char r12r22 PACKED; /* 35h: */ + unsigned char r13r23 PACKED; /* 36h: */ #endif } TX25Config; @@ -434,21 +434,21 @@ typedef struct X25Config */ typedef struct X25ChanAlloc /*----- Channel allocation -*/ { - unsigned short loPVC ; /* 00h: lowest PVC number */ - unsigned short hiPVC ; /* 02h: highest PVC number */ - unsigned short loIncommingSVC ; /* 04h: lowest incoming SVC */ - unsigned short hiIncommingSVC ; /* 06h: highest incoming SVC */ - unsigned short loTwoWaySVC ; /* 08h: lowest two-way SVC */ - unsigned short hiTwoWaySVC ; /* 0Ah: highest two-way SVC */ - unsigned short loOutgoingSVC ; /* 0Ch: lowest outgoing SVC */ - unsigned short hiOutgoingSVC ; /* 0Eh: highest outgoing SVC */ + unsigned short loPVC PACKED; /* 00h: lowest PVC number */ + unsigned short hiPVC PACKED; /* 02h: highest PVC number */ + unsigned short loIncommingSVC PACKED; /* 04h: lowest incoming SVC */ + unsigned short hiIncommingSVC PACKED; /* 06h: highest incoming SVC */ + unsigned short loTwoWaySVC PACKED; /* 08h: lowest two-way SVC */ + unsigned short hiTwoWaySVC PACKED; /* 0Ah: highest two-way SVC */ + unsigned short loOutgoingSVC PACKED; /* 0Ch: lowest outgoing SVC */ + unsigned short hiOutgoingSVC PACKED; /* 0Eh: highest outgoing SVC */ } TX25ChanAlloc; typedef struct X25ChanCfg /*------ Channel configuration -----*/ { - unsigned char type ; /* 00h: channel type */ - unsigned char txConf ; /* 01h: Tx packet and window sizes */ - unsigned char rxConf ; /* 01h: Rx packet and window sizes */ + unsigned char type PACKED; /* 00h: channel type */ + unsigned char txConf PACKED; /* 01h: Tx packet and window sizes */ + unsigned char rxConf PACKED; /* 01h: Rx packet and window sizes */ } TX25ChanCfg; /* @@ -464,38 +464,38 @@ typedef struct X25ChanCfg /*------ Channel configuration -----*/ */ typedef struct X25Stats { /* number of packets Tx/Rx'ed */ - unsigned short txRestartRqst ; /* 00h: Restart Request */ - unsigned short rxRestartRqst ; /* 02h: Restart Request */ - unsigned short txRestartConf ; /* 04h: Restart Confirmation */ - unsigned short rxRestartConf ; /* 06h: Restart Confirmation */ - unsigned short txResetRqst ; /* 08h: Reset Request */ - unsigned short rxResetRqst ; /* 0Ah: Reset Request */ - unsigned short txResetConf ; /* 0Ch: Reset Confirmation */ - unsigned short rxResetConf ; /* 0Eh: Reset Confirmation */ - unsigned short txCallRequest ; /* 10h: Call Request */ - unsigned short rxCallRequest ; /* 12h: Call Request */ - unsigned short txCallAccept ; /* 14h: Call Accept */ - unsigned short rxCallAccept ; /* 16h: Call Accept */ - unsigned short txClearRqst ; /* 18h: Clear Request */ - unsigned short rxClearRqst ; /* 1Ah: Clear Request */ - unsigned short txClearConf ; /* 1Ch: Clear Confirmation */ - unsigned short rxClearConf ; /* 1Eh: Clear Confirmation */ - unsigned short txDiagnostic ; /* 20h: Diagnostic */ - unsigned short rxDiagnostic ; /* 22h: Diagnostic */ - unsigned short txRegRqst ; /* 24h: Registration Request */ - unsigned short rxRegRqst ; /* 26h: Registration Request */ - unsigned short txRegConf ; /* 28h: Registration Confirm.*/ - unsigned short rxRegConf ; /* 2Ah: Registration Confirm.*/ - unsigned short txInterrupt ; /* 2Ch: Interrupt */ - unsigned short rxInterrupt ; /* 2Eh: Interrupt */ - unsigned short txIntrConf ; /* 30h: Interrupt Confirm. */ - unsigned short rxIntrConf ; /* 32h: Interrupt Confirm. */ - unsigned short txData ; /* 34h: Data */ - unsigned short rxData ; /* 36h: Data */ - unsigned short txRR ; /* 38h: RR */ - unsigned short rxRR ; /* 3Ah: RR */ - unsigned short txRNR ; /* 3Ch: RNR */ - unsigned short rxRNR ; /* 3Eh: RNR */ + unsigned short txRestartRqst PACKED; /* 00h: Restart Request */ + unsigned short rxRestartRqst PACKED; /* 02h: Restart Request */ + unsigned short txRestartConf PACKED; /* 04h: Restart Confirmation */ + unsigned short rxRestartConf PACKED; /* 06h: Restart Confirmation */ + unsigned short txResetRqst PACKED; /* 08h: Reset Request */ + unsigned short rxResetRqst PACKED; /* 0Ah: Reset Request */ + unsigned short txResetConf PACKED; /* 0Ch: Reset Confirmation */ + unsigned short rxResetConf PACKED; /* 0Eh: Reset Confirmation */ + unsigned short txCallRequest PACKED; /* 10h: Call Request */ + unsigned short rxCallRequest PACKED; /* 12h: Call Request */ + unsigned short txCallAccept PACKED; /* 14h: Call Accept */ + unsigned short rxCallAccept PACKED; /* 16h: Call Accept */ + unsigned short txClearRqst PACKED; /* 18h: Clear Request */ + unsigned short rxClearRqst PACKED; /* 1Ah: Clear Request */ + unsigned short txClearConf PACKED; /* 1Ch: Clear Confirmation */ + unsigned short rxClearConf PACKED; /* 1Eh: Clear Confirmation */ + unsigned short txDiagnostic PACKED; /* 20h: Diagnostic */ + unsigned short rxDiagnostic PACKED; /* 22h: Diagnostic */ + unsigned short txRegRqst PACKED; /* 24h: Registration Request */ + unsigned short rxRegRqst PACKED; /* 26h: Registration Request */ + unsigned short txRegConf PACKED; /* 28h: Registration Confirm.*/ + unsigned short rxRegConf PACKED; /* 2Ah: Registration Confirm.*/ + unsigned short txInterrupt PACKED; /* 2Ch: Interrupt */ + unsigned short rxInterrupt PACKED; /* 2Eh: Interrupt */ + unsigned short txIntrConf PACKED; /* 30h: Interrupt Confirm. */ + unsigned short rxIntrConf PACKED; /* 32h: Interrupt Confirm. */ + unsigned short txData PACKED; /* 34h: Data */ + unsigned short rxData PACKED; /* 36h: Data */ + unsigned short txRR PACKED; /* 38h: RR */ + unsigned short rxRR PACKED; /* 3Ah: RR */ + unsigned short txRNR PACKED; /* 3Ch: RNR */ + unsigned short rxRNR PACKED; /* 3Eh: RNR */ } TX25Stats; /*---------------------------------------------------------------------------- @@ -503,12 +503,12 @@ typedef struct X25Stats */ typedef struct X25EventLog { - unsigned char type ; /* 00h: transaction type */ - unsigned short lcn ; /* 01h: logical channel num */ - unsigned char packet ; /* 03h: async packet type */ - unsigned char cause ; /* 04h: X.25 cause field */ - unsigned char diag ; /* 05h: X.25 diag field */ - TX25TimeStamp ts ; /* 06h: time stamp */ + unsigned char type PACKED; /* 00h: transaction type */ + unsigned short lcn PACKED; /* 01h: logical channel num */ + unsigned char packet PACKED; /* 03h: async packet type */ + unsigned char cause PACKED; /* 04h: X.25 cause field */ + unsigned char diag PACKED; /* 05h: X.25 diag field */ + TX25TimeStamp ts PACKED; /* 06h: time stamp */ } TX25EventLog; /* @@ -541,8 +541,8 @@ typedef struct X25EventLog */ typedef struct X25TraceCfg { - unsigned char flags ; /* 00h: trace configuration flags */ - unsigned char timeout ; /* 01h: timeout for trace delay mode*/ + unsigned char flags PACKED; /* 00h: trace configuration flags */ + unsigned char timeout PACKED; /* 01h: timeout for trace delay mode*/ } TX25TraceCfg; /* @@ -562,12 +562,12 @@ typedef struct X25TraceCfg */ typedef struct X25Trace /*----- Trace data structure -------*/ { - unsigned short length ; /* 00h: trace data length */ - unsigned char type ; /* 02h: trace type */ - unsigned char lost_cnt ; /* 03h: N of traces lost */ - TX25TimeStamp tstamp ; /* 04h: mon/date/sec/min/hour */ - unsigned short millisec ; /* 09h: ms time stamp */ - unsigned char data[0] ; /* 0Bh: traced frame */ + unsigned short length PACKED; /* 00h: trace data length */ + unsigned char type PACKED; /* 02h: trace type */ + unsigned char lost_cnt PACKED; /* 03h: N of traces lost */ + TX25TimeStamp tstamp PACKED; /* 04h: mon/date/sec/min/hour */ + unsigned short millisec PACKED; /* 09h: ms time stamp */ + unsigned char data[0] PACKED; /* 0Bh: traced frame */ } TX25Trace; /* @@ -592,17 +592,17 @@ typedef struct X25Trace /*----- Trace data structure -------*/ typedef struct HDLCFrame /*----- DHLC Frame Format ----------*/ { - unsigned char addr ; /* address field */ - unsigned char cntl ; /* control field */ - unsigned char data[0] ; + unsigned char addr PACKED; /* address field */ + unsigned char cntl PACKED; /* control field */ + unsigned char data[0] PACKED; } THDLCFrame; typedef struct X25Pkt /*----- X.25 Paket Format ----------*/ { - unsigned char lcn_hi ; /* 4 MSB of Logical Channel Number */ - unsigned char lcn_lo ; /* 8 LSB of Logical Channel Number */ - unsigned char type ; - unsigned char data[0] ; + unsigned char lcn_hi PACKED; /* 4 MSB of Logical Channel Number */ + unsigned char lcn_lo PACKED; /* 8 LSB of Logical Channel Number */ + unsigned char type PACKED; + unsigned char data[0] PACKED; } TX25Pkt; /* @@ -636,27 +636,27 @@ typedef struct X25Pkt /*----- X.25 Paket Format ----------*/ typedef struct { - TX25Cmd cmd ; - char data[X25_MAX_DATA] ; + TX25Cmd cmd PACKED; + char data[X25_MAX_DATA] PACKED; } mbox_cmd_t; #if 0 typedef struct { - unsigned char qdm ; /* Q/D/M bits */ - unsigned char cause ; /* cause field */ - unsigned char diagn ; /* diagnostics */ - unsigned char pktType ; - unsigned short length ; - unsigned char result ; - unsigned short lcn ; - char reserved[7] ; + unsigned char qdm PACKED; /* Q/D/M bits */ + unsigned char cause PACKED; /* cause field */ + unsigned char diagn PACKED; /* diagnostics */ + unsigned char pktType PACKED; + unsigned short length PACKED; + unsigned char result PACKED; + unsigned short lcn PACKED; + char reserved[7] PACKED; }x25api_hdr_t; typedef struct { - x25api_hdr_t hdr ; - char data[X25_MAX_DATA] ; + x25api_hdr_t hdr PACKED; + char data[X25_MAX_DATA] PACKED; }x25api_t; #endif @@ -676,68 +676,68 @@ typedef struct { #if 0 typedef struct { - unsigned char opp_flag ; /* the opp flag */ - unsigned char command ; /* command code */ - unsigned short length ; /* transfer data length */ - unsigned char result ; /* return code */ - unsigned char pf ; /* P/F bit */ - unsigned short lcn ; /* logical channel */ - unsigned char qdm ; /* Q/D/M bits */ - unsigned char cause ; /* cause field */ - unsigned char diagn ; /* diagnostics */ - unsigned char pktType ; /* packet type */ - unsigned char resrv[4] ; /* reserved */ + unsigned char opp_flag PACKED; /* the opp flag */ + unsigned char command PACKED; /* command code */ + unsigned short length PACKED; /* transfer data length */ + unsigned char result PACKED; /* return code */ + unsigned char pf PACKED; /* P/F bit */ + unsigned short lcn PACKED; /* logical channel */ + unsigned char qdm PACKED; /* Q/D/M bits */ + unsigned char cause PACKED; /* cause field */ + unsigned char diagn PACKED; /* diagnostics */ + unsigned char pktType PACKED; /* packet type */ + unsigned char resrv[4] PACKED; /* reserved */ } cblock_t; typedef struct { - ip_pkt_t ip_pkt ; - udp_pkt_t udp_pkt ; - wp_mgmt_t wp_mgmt ; - cblock_t cblock ; - unsigned char data[4080] ; + ip_pkt_t ip_pkt PACKED; + udp_pkt_t udp_pkt PACKED; + wp_mgmt_t wp_mgmt PACKED; + cblock_t cblock PACKED; + unsigned char data[4080] PACKED; } x25_udp_pkt_t; #endif typedef struct read_hdlc_stat { - unsigned short inf_frames_rx_ok ; - unsigned short inf_frames_rx_out_of_seq ; - unsigned short inf_frames_rx_no_data ; - unsigned short inf_frames_rx_dropped ; - unsigned short inf_frames_rx_data_too_long ; - unsigned short inf_frames_rx_invalid_addr ; - unsigned short inf_frames_tx_ok ; - unsigned short inf_frames_tx_retransmit ; - unsigned short T1_timeouts ; - unsigned short SABM_frames_rx ; - unsigned short DISC_frames_rx ; - unsigned short DM_frames_rx ; - unsigned short FRMR_frames_rx ; - unsigned short SABM_frames_tx ; - unsigned short DISC_frames_tx ; - unsigned short DM_frames_tx ; - unsigned short FRMR_frames_tx ; + unsigned short inf_frames_rx_ok PACKED; + unsigned short inf_frames_rx_out_of_seq PACKED; + unsigned short inf_frames_rx_no_data PACKED; + unsigned short inf_frames_rx_dropped PACKED; + unsigned short inf_frames_rx_data_too_long PACKED; + unsigned short inf_frames_rx_invalid_addr PACKED; + unsigned short inf_frames_tx_ok PACKED; + unsigned short inf_frames_tx_retransmit PACKED; + unsigned short T1_timeouts PACKED; + unsigned short SABM_frames_rx PACKED; + unsigned short DISC_frames_rx PACKED; + unsigned short DM_frames_rx PACKED; + unsigned short FRMR_frames_rx PACKED; + unsigned short SABM_frames_tx PACKED; + unsigned short DISC_frames_tx PACKED; + unsigned short DM_frames_tx PACKED; + unsigned short FRMR_frames_tx PACKED; } read_hdlc_stat_t; typedef struct read_comms_err_stats{ - unsigned char overrun_err_rx ; - unsigned char CRC_err ; - unsigned char abort_frames_rx ; - unsigned char frames_dropped_buf_full ; - unsigned char abort_frames_tx ; - unsigned char transmit_underruns ; - unsigned char missed_tx_underruns_intr ; - unsigned char reserved ; - unsigned char DCD_drop ; - unsigned char CTS_drop ; + unsigned char overrun_err_rx PACKED; + unsigned char CRC_err PACKED; + unsigned char abort_frames_rx PACKED; + unsigned char frames_dropped_buf_full PACKED; + unsigned char abort_frames_tx PACKED; + unsigned char transmit_underruns PACKED; + unsigned char missed_tx_underruns_intr PACKED; + unsigned char reserved PACKED; + unsigned char DCD_drop PACKED; + unsigned char CTS_drop PACKED; } read_comms_err_stats_t; typedef struct trace_data { - unsigned short length ; - unsigned char type ; - unsigned char trace_dropped ; - unsigned char reserved[5] ; - unsigned short timestamp ; - unsigned char data ; + unsigned short length PACKED; + unsigned char type PACKED; + unsigned char trace_dropped PACKED; + unsigned char reserved[5] PACKED; + unsigned short timestamp PACKED; + unsigned char data PACKED; } trace_data_t; enum {UDP_XPIPE_TYPE}; @@ -771,7 +771,4 @@ enum {UDP_XPIPE_TYPE}; #define TRACE_DATA_FRMS 0x08 -#pragma pack() - - #endif /* _SDLA_X25_H */ diff --git a/patches/kdrivers/include/sdla_adsl_iface.h b/patches/kdrivers/include/sdla_adsl_iface.h index 79559f3..3ffaccf 100644 --- a/patches/kdrivers/include/sdla_adsl_iface.h +++ b/patches/kdrivers/include/sdla_adsl_iface.h @@ -81,7 +81,7 @@ EXTERN_WAN int adsl_wan_init(void*); EXTERN_WAN int adsl_del_if(void*); EXTERN_WAN void adsl_timeout(void*); EXTERN_WAN void adsl_disable_comm(void*); -EXTERN_WAN void adsl_isr(void*); +EXTERN_WAN int adsl_isr(void*); EXTERN_WAN void adsl_udp_cmd(void*, unsigned char, unsigned char*, unsigned short*); EXTERN_WAN void* adsl_get_trace_ptr(void *pAdapter_ptr); EXTERN_WAN int adsl_wan_interface_type(void *); diff --git a/patches/kdrivers/include/sdla_aft_te1.h b/patches/kdrivers/include/sdla_aft_te1.h index 537167b..72ca904 100644 --- a/patches/kdrivers/include/sdla_aft_te1.h +++ b/patches/kdrivers/include/sdla_aft_te1.h @@ -265,8 +265,6 @@ aft_chipcfg_a108_get_tdmv_intr_stats(u32 reg) return reg; } - - /* 56k IRQ status bits */ # define AFT_CHIPCFG_A56K_WDT_INTR_BIT 0 # define AFT_CHIPCFG_A56K_DMA_INTR_BIT 24 @@ -294,6 +292,8 @@ aft_chipcfg_a56k_write_fe(u32 reg, u32 val) return reg; } + + static __inline u32 aft_chipcfg_get_ec_channels(u32 reg) { @@ -319,7 +319,6 @@ aft_chipcfg_get_ec_channels(u32 reg) } - static __inline u32 aft_chipcfg_get_a200_ec_channels(u32 reg) { @@ -946,13 +945,6 @@ enum { #define WRITE_DEF_SECTOR_DSBL 0x01 #define FRONT_END_TYPE_MASK 0x38 -/* Moved to sdlasfm.h -#define AFT_BIT_DEV_ADDR_CLEAR 0x600 -#define AFT_BIT_DEV_ADDR_CPLD 0x200 - -#define AFT4_BIT_DEV_ADDR_CLEAR 0x800 -#define AFT4_BIT_DEV_ADDR_CPLD 0x800 -*/ #define MEMORY_TYPE_SRAM 0x00 #define MEMORY_TYPE_FLASH 0x01 @@ -1039,7 +1031,7 @@ aft_get_num_of_slots(u32 total_slots, u32 chan_slots) } -#define MAX_AFT_HW_DEV 14 +#define MAX_AFT_HW_DEV 20 typedef struct aft_hw_dev{ @@ -1061,7 +1053,7 @@ typedef struct aft_hw_dev{ int (*aft_write_fe)(sdla_t *card, unsigned short off, unsigned char value); unsigned char (*aft_read_cpld)(sdla_t *card, unsigned short cpld_off); - int (*aft_write_cpld)(sdla_t *card, unsigned short cpld_off, unsigned char cpld_data); + int (*aft_write_cpld)(sdla_t *card, unsigned short cpld_off, u_int16_t cpld_data); void (*aft_fifo_adjust)(sdla_t *card, u32 level); @@ -1378,6 +1370,7 @@ enum { #define AFT_TDMV_FRM_CLK_SYNC_VER 0x14 #define AFT_TDMV_SHARK_FRM_CLK_SYNC_VER 0x17 #define AFT_TDMV_SHARK_A108_FRM_CLK_SYNC_VER 0x25 +#define AFT_56K_MIN_FRMW_VER 0x00 #define AFT_MIN_ANALOG_FRMW_VER 0x05 @@ -1544,6 +1537,9 @@ typedef struct private_area #endif int rx_api_crc_bytes; + netskb_t *rx_rtp_skb; + netskb_t *tx_rtp_skb; + u32 tdm_call_status; struct private_area *next; }private_area_t; diff --git a/patches/kdrivers/include/sdla_asy.h b/patches/kdrivers/include/sdla_asy.h index a2c09d7..f622425 100644 --- a/patches/kdrivers/include/sdla_asy.h +++ b/patches/kdrivers/include/sdla_asy.h @@ -19,8 +19,6 @@ #ifndef _WANPIPE_ASYNC_H #define _WANPIPE_ASYNC_H -#pragma pack(1) - /* ---------------------------------------------------------------------------- * Interface commands * --------------------------------------------------------------------------*/ @@ -56,24 +54,24 @@ /* the asynchronous configuration structure */ typedef struct { - unsigned long baud_rate ; /* the baud rate */ - unsigned short line_config_options ; /* line configuration options */ - unsigned short modem_config_options ; /* modem configuration options */ - unsigned short asy_API_options ; /* asynchronous API options */ - unsigned short asy_protocol_options ; /* asynchronous protocol options */ - unsigned short Tx_bits_per_char ; /* number of bits per tx character */ - unsigned short Rx_bits_per_char ; /* number of bits per received character */ - unsigned short stop_bits ; /* number of stop bits per character */ - unsigned short parity ; /* parity definition */ - unsigned short break_timer ; /* the break signal timer */ - unsigned short asy_Rx_inter_char_timer ; /* the receive inter-character timer */ - unsigned short asy_Rx_complete_length ; /* the receive 'buffer complete' length */ - unsigned short XON_char ; /* the XON character */ - unsigned short XOFF_char ; /* the XOFF character */ - unsigned short asy_statistics_options ; /* async operational stat options */ - unsigned long ptr_shared_mem_info_struct ;/* ptr to the shared memory area information structure */ - unsigned long ptr_asy_Tx_stat_el_cfg_struct ;/* ptr to the transmit status element configuration structure */ - unsigned long ptr_asy_Rx_stat_el_cfg_struct ;/* ptr to the receive status element configuration structure */ + unsigned long baud_rate PACKED; /* the baud rate */ + unsigned short line_config_options PACKED; /* line configuration options */ + unsigned short modem_config_options PACKED; /* modem configuration options */ + unsigned short asy_API_options PACKED; /* asynchronous API options */ + unsigned short asy_protocol_options PACKED; /* asynchronous protocol options */ + unsigned short Tx_bits_per_char PACKED; /* number of bits per tx character */ + unsigned short Rx_bits_per_char PACKED; /* number of bits per received character */ + unsigned short stop_bits PACKED; /* number of stop bits per character */ + unsigned short parity PACKED; /* parity definition */ + unsigned short break_timer PACKED; /* the break signal timer */ + unsigned short asy_Rx_inter_char_timer PACKED; /* the receive inter-character timer */ + unsigned short asy_Rx_complete_length PACKED; /* the receive 'buffer complete' length */ + unsigned short XON_char PACKED; /* the XON character */ + unsigned short XOFF_char PACKED; /* the XOFF character */ + unsigned short asy_statistics_options PACKED; /* async operational stat options */ + unsigned long ptr_shared_mem_info_struct PACKED;/* ptr to the shared memory area information structure */ + unsigned long ptr_asy_Tx_stat_el_cfg_struct PACKED;/* ptr to the transmit status element configuration structure */ + unsigned long ptr_asy_Rx_stat_el_cfg_struct PACKED;/* ptr to the receive status element configuration structure */ } ASY_CONFIGURATION_STRUCT; /* permitted minimum and maximum values for setting the asynchronous configuration */ @@ -116,16 +114,16 @@ typedef struct { /* the communications error statistics structure */ typedef struct { - unsigned short Rx_overrun_err_count ; /* receiver overrun error count */ - unsigned short Rx_parity_err_count ; /* parity errors received count */ - unsigned short Rx_framing_err_count ; /* framing errors received count */ - unsigned short comms_err_stat_reserved_1 ;/* reserved for later use */ - unsigned short comms_err_stat_reserved_2 ;/* reserved for later use */ - unsigned short comms_err_stat_reserved_3 ;/* reserved for later use */ - unsigned short comms_err_stat_reserved_4 ;/* reserved for later use */ - unsigned short comms_err_stat_reserved_5 ;/* reserved for later use */ - unsigned short DCD_state_change_count ; /* DCD state change count */ - unsigned short CTS_state_change_count ; /* CTS state change count */ + unsigned short Rx_overrun_err_count PACKED; /* receiver overrun error count */ + unsigned short Rx_parity_err_count PACKED; /* parity errors received count */ + unsigned short Rx_framing_err_count PACKED; /* framing errors received count */ + unsigned short comms_err_stat_reserved_1 PACKED;/* reserved for later use */ + unsigned short comms_err_stat_reserved_2 PACKED;/* reserved for later use */ + unsigned short comms_err_stat_reserved_3 PACKED;/* reserved for later use */ + unsigned short comms_err_stat_reserved_4 PACKED;/* reserved for later use */ + unsigned short comms_err_stat_reserved_5 PACKED;/* reserved for later use */ + unsigned short DCD_state_change_count PACKED; /* DCD state change count */ + unsigned short CTS_state_change_count PACKED; /* CTS state change count */ } ASY_COMMS_ERROR_STATS_STRUCT; @@ -138,40 +136,40 @@ typedef struct { typedef struct { /* Data transmission statistics */ - unsigned long Data_blocks_Tx_count ;/* number of blocks transmitted */ - unsigned long Data_bytes_Tx_count ;/* number of bytes transmitted */ - unsigned long Data_Tx_throughput ;/* transmit throughput */ - unsigned long no_ms_for_Data_Tx_thruput_comp ;/* millisecond time used for the Tx throughput computation */ - unsigned long Tx_Data_discard_lgth_err_count ;/* number of Data blocks discarded (length error) */ - unsigned long reserved_Data_frm_Tx_stat1 ;/* reserved for later use */ - unsigned long reserved_Data_frm_Tx_stat2 ;/* reserved for later use */ - unsigned long reserved_Data_frm_Tx_stat3 ;/* reserved for later use */ + unsigned long Data_blocks_Tx_count PACKED;/* number of blocks transmitted */ + unsigned long Data_bytes_Tx_count PACKED;/* number of bytes transmitted */ + unsigned long Data_Tx_throughput PACKED;/* transmit throughput */ + unsigned long no_ms_for_Data_Tx_thruput_comp PACKED;/* millisecond time used for the Tx throughput computation */ + unsigned long Tx_Data_discard_lgth_err_count PACKED;/* number of Data blocks discarded (length error) */ + unsigned long reserved_Data_frm_Tx_stat1 PACKED;/* reserved for later use */ + unsigned long reserved_Data_frm_Tx_stat2 PACKED;/* reserved for later use */ + unsigned long reserved_Data_frm_Tx_stat3 PACKED;/* reserved for later use */ /* Data reception statistics */ - unsigned long Data_blocks_Rx_count ;/* number of blocks received */ - unsigned long Data_bytes_Rx_count ;/* number of bytes received */ - unsigned long Data_Rx_throughput ;/* receive throughput */ - unsigned long no_ms_for_Data_Rx_thruput_comp ;/* millisecond time used for the Rx throughput computation */ - unsigned long Rx_Data_bytes_discard_count ;/* received Data bytes discarded */ - unsigned long reserved_Data_frm_Rx_stat1 ;/* reserved for later use */ + unsigned long Data_blocks_Rx_count PACKED;/* number of blocks received */ + unsigned long Data_bytes_Rx_count PACKED;/* number of bytes received */ + unsigned long Data_Rx_throughput PACKED;/* receive throughput */ + unsigned long no_ms_for_Data_Rx_thruput_comp PACKED;/* millisecond time used for the Rx throughput computation */ + unsigned long Rx_Data_bytes_discard_count PACKED;/* received Data bytes discarded */ + unsigned long reserved_Data_frm_Rx_stat1 PACKED;/* reserved for later use */ /* handshaking protocol statistics */ - unsigned short XON_chars_Tx_count ; /* number of XON characters transmitted */ - unsigned short XOFF_chars_Tx_count ; /* number of XOFF characters transmitted */ - unsigned short XON_chars_Rx_count ; /* number of XON characters received */ - unsigned short XOFF_chars_Rx_count ; /* number of XOFF characters received */ - unsigned short Tx_halt_modem_low_count ; /* number of times Tx halted (modem line low) */ - unsigned short Rx_halt_RTS_low_count ; /* number of times Rx halted by setting RTS low */ - unsigned long reserved_handshaking_stat1 ;/* reserved for later use */ + unsigned short XON_chars_Tx_count PACKED; /* number of XON characters transmitted */ + unsigned short XOFF_chars_Tx_count PACKED; /* number of XOFF characters transmitted */ + unsigned short XON_chars_Rx_count PACKED; /* number of XON characters received */ + unsigned short XOFF_chars_Rx_count PACKED; /* number of XOFF characters received */ + unsigned short Tx_halt_modem_low_count PACKED; /* number of times Tx halted (modem line low) */ + unsigned short Rx_halt_RTS_low_count PACKED; /* number of times Rx halted by setting RTS low */ + unsigned long reserved_handshaking_stat1 PACKED;/* reserved for later use */ /* break statistics */ - unsigned short break_Tx_count ; /* number of break sequences transmitted */ - unsigned short break_Rx_count ; /* number of break sequences received */ - unsigned long reserved_break_stat1 ;/* reserved for later use */ + unsigned short break_Tx_count PACKED; /* number of break sequences transmitted */ + unsigned short break_Rx_count PACKED; /* number of break sequences received */ + unsigned long reserved_break_stat1 PACKED;/* reserved for later use */ /* miscellaneous statistics */ - unsigned long reserved_misc_stat1 ; /* reserved for later use */ - unsigned long reserved_misc_stat2 ; /* reserved for later use */ + unsigned long reserved_misc_stat1 PACKED; /* reserved for later use */ + unsigned long reserved_misc_stat2 PACKED; /* reserved for later use */ } ASY_OPERATIONAL_STATS_STRUCT; @@ -183,20 +181,20 @@ typedef struct { /* the Data block transmit status element configuration structure */ typedef struct { - unsigned short number_Tx_status_elements ; /* number of transmit status elements */ - unsigned long base_addr_Tx_status_elements ; /* base address of the transmit element list */ - unsigned long next_Tx_status_element_to_use ; /* pointer to the next transmit element to be used */ + unsigned short number_Tx_status_elements PACKED; /* number of transmit status elements */ + unsigned long base_addr_Tx_status_elements PACKED; /* base address of the transmit element list */ + unsigned long next_Tx_status_element_to_use PACKED; /* pointer to the next transmit element to be used */ } ASY_TX_STATUS_EL_CFG_STRUCT; /* the Data block transmit status element structure */ typedef struct { - unsigned char opp_flag ; /* opp flag */ - unsigned short data_length ; /* length of the block to be transmitted */ - unsigned char reserved_1 ; /* reserved for internal use */ - unsigned long reserved_2 ; /* reserved for internal use */ - unsigned long reserved_3 ; /* reserved for internal use */ - unsigned long ptr_data_bfr ; /* pointer to the data area */ + unsigned char opp_flag PACKED; /* opp flag */ + unsigned short data_length PACKED; /* length of the block to be transmitted */ + unsigned char reserved_1 PACKED; /* reserved for internal use */ + unsigned long reserved_2 PACKED; /* reserved for internal use */ + unsigned long reserved_3 PACKED; /* reserved for internal use */ + unsigned long ptr_data_bfr PACKED; /* pointer to the data area */ } ASY_DATA_TX_STATUS_EL_STRUCT; @@ -207,23 +205,22 @@ typedef struct { /* the Data block receive status element configuration structure */ typedef struct { - unsigned short number_Rx_status_elements ;/* number of receive status elements */ - unsigned long base_addr_Rx_status_elements ;/* base address of the receive element list */ - unsigned long next_Rx_status_element_to_use ;/* pointer to the next receive element to be used */ - unsigned long base_addr_Rx_buffer ;/* base address of the receive data buffer */ - unsigned long end_addr_Rx_buffer ;/* end address of the receive data buffer */ + unsigned short number_Rx_status_elements PACKED;/* number of receive status elements */ + unsigned long base_addr_Rx_status_elements PACKED;/* base address of the receive element list */ + unsigned long next_Rx_status_element_to_use PACKED;/* pointer to the next receive element to be used */ + unsigned long base_addr_Rx_buffer PACKED;/* base address of the receive data buffer */ + unsigned long end_addr_Rx_buffer PACKED;/* end address of the receive data buffer */ } ASY_RX_STATUS_EL_CFG_STRUCT; /* the Data block receive status element structure */ typedef struct { - unsigned char opp_flag ; /* opp flag */ - unsigned short data_length ; /* length of the received data block */ - unsigned char reserved_1 ; /* reserved for internal use */ - unsigned short time_stamp ; /* receive time stamp (HDLC_STREAMING_MODE) */ - unsigned short data_buffered ; /* the number of data bytes still buffered */ - unsigned long reserved_2 ; /* reserved for internal use */ - unsigned long ptr_data_bfr ; /* pointer to the data area */ + unsigned char opp_flag PACKED; /* opp flag */ + unsigned short data_length PACKED; /* length of the received data block */ + unsigned char reserved_1 PACKED; /* reserved for internal use */ + unsigned short time_stamp PACKED; /* receive time stamp (HDLC_STREAMING_MODE) */ + unsigned short data_buffered PACKED; /* the number of data bytes still buffered */ + unsigned long reserved_2 PACKED; /* reserved for internal use */ + unsigned long ptr_data_bfr PACKED; /* pointer to the data area */ } ASY_DATA_RX_STATUS_EL_STRUCT; -#pragma pack() #endif diff --git a/patches/kdrivers/include/sdla_asyhdlc.h b/patches/kdrivers/include/sdla_asyhdlc.h index 193e2f8..649ff8d 100644 --- a/patches/kdrivers/include/sdla_asyhdlc.h +++ b/patches/kdrivers/include/sdla_asyhdlc.h @@ -474,6 +474,7 @@ typedef struct { unsigned long Rx_abort_count; /* abort frames received count */ } HDLC_OPERATIONAL_STATS_STRUCT; +#pragma pack() @@ -485,19 +486,19 @@ typedef struct { /* UDP/IP packet (for UDP management) layout */ /* typedef struct { - unsigned char reserved[2] ; - unsigned short ip_length ; - unsigned char reserved2[4] ; - unsigned char ip_ttl ; - unsigned char ip_protocol ; - unsigned short ip_checksum ; - unsigned long ip_src_address ; - unsigned long ip_dst_address ; - unsigned short udp_src_port ; - unsigned short udp_dst_port ; - unsigned short udp_length ; - unsigned short udp_checksum ; - udp_management_packet_t um_packet ; + unsigned char reserved[2] PACKED; + unsigned short ip_length PACKED; + unsigned char reserved2[4] PACKED; + unsigned char ip_ttl PACKED; + unsigned char ip_protocol PACKED; + unsigned short ip_checksum PACKED; + unsigned long ip_src_address PACKED; + unsigned long ip_dst_address PACKED; + unsigned short udp_src_port PACKED; + unsigned short udp_dst_port PACKED; + unsigned short udp_length PACKED; + unsigned short udp_checksum PACKED; + udp_management_packet_t um_packet PACKED; } ip_packet_t; */ @@ -506,34 +507,34 @@ typedef struct { #if 0 typedef struct { - unsigned char status ; - unsigned char data_avail ; - unsigned short real_length ; - unsigned short time_stamp ; - unsigned char data[1] ; + unsigned char status PACKED; + unsigned char data_avail PACKED; + unsigned short real_length PACKED; + unsigned short time_stamp PACKED; + unsigned char data[1] PACKED; } trace_pkt_t; #endif typedef struct { - unsigned char error_flag ; - unsigned short time_stamp ; - unsigned char reserved[13] ; + unsigned char error_flag PACKED; + unsigned short time_stamp PACKED; + unsigned char reserved[13] PACKED; } api_rx_hdr_t; typedef struct { - api_rx_hdr_t api_rx_hdr ; - unsigned char data[1] ; + api_rx_hdr_t api_rx_hdr PACKED; + unsigned char data[1] PACKED; } api_rx_element_t; typedef struct { - unsigned char attr ; - unsigned char misc_Tx_bits ; - unsigned char reserved[14] ; + unsigned char attr PACKED; + unsigned char misc_Tx_bits PACKED; + unsigned char reserved[14] PACKED; } api_tx_hdr_t; typedef struct { - api_tx_hdr_t api_tx_hdr ; - unsigned char data[1] ; + api_tx_hdr_t api_tx_hdr PACKED; + unsigned char data[1] PACKED; } api_tx_element_t; /* Special UDP drivers management commands */ @@ -573,8 +574,6 @@ enum { NO_HDLC_RX_IN_PROCESS }; -#pragma pack() - #endif diff --git a/patches/kdrivers/include/sdla_bscmp.h b/patches/kdrivers/include/sdla_bscmp.h index 418fcaf..a80da84 100644 --- a/patches/kdrivers/include/sdla_bscmp.h +++ b/patches/kdrivers/include/sdla_bscmp.h @@ -3,7 +3,9 @@ #define _BSC_HEADER_ -#pragma pack(1) +#ifndef PACKED +#define PACKED __attribute__((packed)) +#endif /* PACKED */ /*========== MAILBOX COMMANDS AND RETURN CODES ==========*/ @@ -53,91 +55,89 @@ */ /* control block */ typedef struct { - unsigned char opp_flag ; - unsigned char command ; - unsigned short buffer_length ; - unsigned char return_code ; - unsigned char misc_tx_rx_bits ; - unsigned short heading_length ; - unsigned short notify ; - unsigned char station ; - unsigned char poll_address ; - unsigned char select_address ; - unsigned char device_address ; - unsigned char notify_extended ; - unsigned char reserved ; - unsigned char data[MDATALEN] ; + unsigned char opp_flag PACKED; + unsigned char command PACKED; + unsigned short buffer_length PACKED; + unsigned char return_code PACKED; + unsigned char misc_tx_rx_bits PACKED; + unsigned short heading_length PACKED; + unsigned short notify PACKED; + unsigned char station PACKED; + unsigned char poll_address PACKED; + unsigned char select_address PACKED; + unsigned char device_address PACKED; + unsigned char notify_extended PACKED; + unsigned char reserved PACKED; + unsigned char data[MDATALEN] PACKED; } BSC_MAILBOX_STRUCT; typedef struct { - unsigned char line_speed_number ; - unsigned short max_data_frame_size ; - unsigned char secondary_station ; - unsigned char num_consec_PAD_eof ; - unsigned char num_add_lead_SYN ; - unsigned char conversational_mode ; - unsigned char pp_dial_up_operation ; - unsigned char switched_CTS_RTS ; - unsigned char EBCDIC_encoding ; - unsigned char auto_open ; - unsigned char misc_bits ; - unsigned char protocol_options1 ; - unsigned char protocol_options2 ; - unsigned short reserved_pp ; - unsigned char max_retransmissions ; - unsigned short fast_poll_retries ; - unsigned short TTD_retries ; - unsigned short restart_timer ; - unsigned short pp_slow_restart_timer ; - unsigned short TTD_timer ; - unsigned short pp_delay_between_EOT_ENQ ; - unsigned short response_timer ; - unsigned short rx_data_timer ; - unsigned short NAK_retrans_delay_timer ; - unsigned short wait_CTS_timer ; - unsigned char mp_max_consec_ETX ; - unsigned char mp_general_poll_address ; - unsigned short sec_poll_timeout ; - unsigned char pri_poll_skips_inactive ; - unsigned char sec_additional_stn_send_gpoll ; - unsigned char pri_select_retries ; - unsigned char mp_multipoint_options ; - unsigned short reserved ; + unsigned char line_speed_number PACKED; + unsigned short max_data_frame_size PACKED; + unsigned char secondary_station PACKED; + unsigned char num_consec_PAD_eof PACKED; + unsigned char num_add_lead_SYN PACKED; + unsigned char conversational_mode PACKED; + unsigned char pp_dial_up_operation PACKED; + unsigned char switched_CTS_RTS PACKED; + unsigned char EBCDIC_encoding PACKED; + unsigned char auto_open PACKED; + unsigned char misc_bits PACKED; + unsigned char protocol_options1 PACKED; + unsigned char protocol_options2 PACKED; + unsigned short reserved_pp PACKED; + unsigned char max_retransmissions PACKED; + unsigned short fast_poll_retries PACKED; + unsigned short TTD_retries PACKED; + unsigned short restart_timer PACKED; + unsigned short pp_slow_restart_timer PACKED; + unsigned short TTD_timer PACKED; + unsigned short pp_delay_between_EOT_ENQ PACKED; + unsigned short response_timer PACKED; + unsigned short rx_data_timer PACKED; + unsigned short NAK_retrans_delay_timer PACKED; + unsigned short wait_CTS_timer PACKED; + unsigned char mp_max_consec_ETX PACKED; + unsigned char mp_general_poll_address PACKED; + unsigned short sec_poll_timeout PACKED; + unsigned char pri_poll_skips_inactive PACKED; + unsigned char sec_additional_stn_send_gpoll PACKED; + unsigned char pri_select_retries PACKED; + unsigned char mp_multipoint_options PACKED; + unsigned short reserved PACKED; } BSC_CONFIG_STRUCT; typedef struct { - unsigned char max_tx_queue ; - unsigned char max_rx_queue ; - unsigned char station_flags ; + unsigned char max_tx_queue PACKED; + unsigned char max_rx_queue PACKED; + unsigned char station_flags PACKED; }ADD_STATION_STRUCT; typedef struct { - unsigned char station ; - unsigned short time_stamp ; - unsigned char reserved[13] ; + unsigned char station PACKED; + unsigned short time_stamp PACKED; + unsigned char reserved[13] PACKED; } api_rx_hdr_t; typedef struct { - api_rx_hdr_t api_rx_hdr ; - void * data ; + api_rx_hdr_t api_rx_hdr PACKED; + void * data PACKED; } api_rx_element_t; typedef struct { - unsigned char station ; - unsigned char misc_tx_rx_bits ; - unsigned char reserved[14] ; + unsigned char station PACKED; + unsigned char misc_tx_rx_bits PACKED; + unsigned char reserved[14] PACKED; } api_tx_hdr_t; typedef struct { - api_tx_hdr_t api_tx_hdr ; - void * data ; + api_tx_hdr_t api_tx_hdr PACKED; + void * data PACKED; } api_tx_element_t; #define SIOC_WANPIPE_EXEC_CMD SIOC_WANPIPE_DEVPRIVATE -#pragma pack() - #endif diff --git a/patches/kdrivers/include/sdla_bscstrm.h b/patches/kdrivers/include/sdla_bscstrm.h index fffd7b4..52af9de 100644 --- a/patches/kdrivers/include/sdla_bscstrm.h +++ b/patches/kdrivers/include/sdla_bscstrm.h @@ -234,25 +234,25 @@ typedef struct { #define RX_EXCESSIVE_LGTH_ERR_APP_LVL 0x20 /* the received block was too long (application level) */ typedef struct { - unsigned char station ; - unsigned short time_stamp ; - unsigned char reserved[13] ; + unsigned char station PACKED; + unsigned short time_stamp PACKED; + unsigned char reserved[13] PACKED; } api_rx_hdr_t; typedef struct { - api_rx_hdr_t api_rx_hdr ; - unsigned char data[1] ; + api_rx_hdr_t api_rx_hdr PACKED; + unsigned char data[1] PACKED; } api_rx_element_t; typedef struct { - unsigned char station ; - unsigned char misc_tx_rx_bits ; - unsigned char reserved[14] ; + unsigned char station PACKED; + unsigned char misc_tx_rx_bits PACKED; + unsigned char reserved[14] PACKED; } api_tx_hdr_t; typedef struct { - api_tx_hdr_t api_tx_hdr ; - unsigned char data[1] ; + api_tx_hdr_t api_tx_hdr PACKED; + unsigned char data[1] PACKED; } api_tx_element_t; #pragma pack() diff --git a/patches/kdrivers/include/sdla_bstrm.h b/patches/kdrivers/include/sdla_bstrm.h index 5b9ce70..eef16ef 100644 --- a/patches/kdrivers/include/sdla_bstrm.h +++ b/patches/kdrivers/include/sdla_bstrm.h @@ -13,10 +13,16 @@ * Sep 24, 1998 Jaspreet Singh o Initial Version. *****************************************************************************/ -#ifndef __BSC__API__H -#define __BSC__API__H - -#pragma pack(1) +#ifdef _GNUC_ +# ifndef PACKED +# define PACKED __attribute__((packed)) +# endif /* PACKED */ +#else +# define PACKED +#endif +#ifdef _MSC_ +# pragma pack(1) +#endif /* Status flag for determining whether to perform a check on socket receive * queue. @@ -82,20 +88,20 @@ for the mailbox header area, we are left with a mailbox data size of 4064 bytes. /* the mailbox structure */ typedef struct { - unsigned char opp_flag ; /* the opp flag */ - unsigned char command ; /* the user command */ - unsigned short buffer_length ; /* the data length */ - unsigned char return_code ; /* the return code */ - unsigned char misc_Tx_Rx_bits ; /* miscellaneous transmit and receive bits */ - unsigned char Rx_error_bits ; /* an indication of a block received with an error */ - unsigned short Rx_time_stamp ; /* a millisecond receive time stamp */ - unsigned char reserved[7] ; /* reserved for later use */ - char data[SIZEOF_MB_DATA_BFR] ; /* the data area */ + unsigned char opp_flag PACKED; /* the opp flag */ + unsigned char command PACKED; /* the user command */ + unsigned short buffer_length PACKED; /* the data length */ + unsigned char return_code PACKED; /* the return code */ + unsigned char misc_Tx_Rx_bits PACKED; /* miscellaneous transmit and receive bits */ + unsigned char Rx_error_bits PACKED; /* an indication of a block received with an error */ + unsigned short Rx_time_stamp PACKED; /* a millisecond receive time stamp */ + unsigned char reserved[7] PACKED; /* reserved for later use */ + char data[SIZEOF_MB_DATA_BFR] PACKED; /* the data area */ } MAILBOX_STRUCT; typedef struct { - pid_t pid_num ; - MAILBOX_STRUCT cmdarea ; + pid_t pid_num PACKED; + MAILBOX_STRUCT cmdarea PACKED; } CMDBLOCK_STRUCT; /* definitions for setting the configuration */ @@ -132,18 +138,18 @@ typedef struct { /* the configuration structure */ typedef struct { - unsigned long baud_rate ; /* the baud rate */ - unsigned long adapter_frequency ; /* the adapter frequecy */ - unsigned short max_data_length ; /* the maximum length of a BSC data block */ - unsigned short EBCDIC_encoding ; /* EBCDIC/ASCII encoding */ - unsigned short Rx_block_type ; /* the type of BSC block to be received */ - unsigned short no_consec_PADs_EOB ; /* the number of consecutive PADs indicating the end of the block */ - unsigned short no_add_lead_Tx_SYN_chars ; /* the number of additional leading transmit SYN characters */ - unsigned short no_bits_per_char ; /* the number of bits per character */ - unsigned short parity ; /* parity */ - unsigned short misc_config_options ; /* miscellaneous configuration options */ - unsigned short statistics_options ; /* statistic options */ - unsigned short modem_config_options ; /* modem configuration options */ + unsigned long baud_rate PACKED; /* the baud rate */ + unsigned long adapter_frequency PACKED; /* the adapter frequecy */ + unsigned short max_data_length PACKED; /* the maximum length of a BSC data block */ + unsigned short EBCDIC_encoding PACKED; /* EBCDIC/ASCII encoding */ + unsigned short Rx_block_type PACKED; /* the type of BSC block to be received */ + unsigned short no_consec_PADs_EOB PACKED; /* the number of consecutive PADs indicating the end of the block */ + unsigned short no_add_lead_Tx_SYN_chars PACKED; /* the number of additional leading transmit SYN characters */ + unsigned short no_bits_per_char PACKED; /* the number of bits per character */ + unsigned short parity PACKED; /* parity */ + unsigned short misc_config_options PACKED; /* miscellaneous configuration options */ + unsigned short statistics_options PACKED; /* statistic options */ + unsigned short modem_config_options PACKED; /* modem configuration options */ } CONFIGURATION_STRUCT; @@ -171,10 +177,10 @@ typedef struct { /* definitions for reading the operational statistics */ /* the operational statistics structure */ typedef struct { - unsigned long no_blocks_Rx ; /* the number of data blocks received and made available for the application */ - unsigned long no_bytes_Rx ; /* the number of bytes received and made available for the application */ - unsigned long no_blocks_Tx ; /* the number of data blocks transmitted */ - unsigned long no_bytes_Tx ; /* the number of bytes transmitted */ + unsigned long no_blocks_Rx PACKED; /* the number of data blocks received and made available for the application */ + unsigned long no_bytes_Rx PACKED; /* the number of bytes received and made available for the application */ + unsigned long no_blocks_Tx PACKED; /* the number of data blocks transmitted */ + unsigned long no_bytes_Tx PACKED; /* the number of bytes transmitted */ } OPERATIONAL_STATS_STRUCT; @@ -209,7 +215,3 @@ typedef struct { #define RX_OVERRUN_ERROR 0x02 /* a receive overrun error occurred */ #define RX_EXCESSIVE_LGTH_ERR_INT_LVL 0x10 /* the received block was too long (interrupt level) */ #define RX_EXCESSIVE_LGTH_ERR_APP_LVL 0x20 /* the received block was too long (application level) */ - -#pragma pack() - -#endif diff --git a/patches/kdrivers/include/sdla_chdlc.h b/patches/kdrivers/include/sdla_chdlc.h index 4118ee4..64bbbf4 100644 --- a/patches/kdrivers/include/sdla_chdlc.h +++ b/patches/kdrivers/include/sdla_chdlc.h @@ -48,6 +48,11 @@ ------------------------------------------------------------------------*/ +#ifndef PACKED +#define PACKED __attribute__((packed)) +#endif /* PACKED */ + + #pragma pack(1) /* ---------------------------------------------------------------------------- @@ -65,12 +70,12 @@ #if 0 typedef struct { - unsigned char opp_flag ; /* the opp flag */ - unsigned char command ; /* the user command */ - unsigned short buffer_length ; /* the data length */ - unsigned char return_code ; /* the return code */ - unsigned char MB_reserved[NUMBER_MB_RESERVED_BYTES] ; /* reserved for later */ - unsigned char data[SIZEOF_MB_DATA_BFR] ; /* the data area */ + unsigned char opp_flag PACKED; /* the opp flag */ + unsigned char command PACKED; /* the user command */ + unsigned short buffer_length PACKED; /* the data length */ + unsigned char return_code PACKED; /* the return code */ + unsigned char MB_reserved[NUMBER_MB_RESERVED_BYTES] PACKED; /* reserved for later */ + unsigned char data[SIZEOF_MB_DATA_BFR] PACKED; /* the data area */ } CHDLC_MAILBOX_STRUCT; #endif @@ -139,6 +144,16 @@ typedef struct { #define CPIPE_FLUSH_DRIVER_STATS 0x58 #define CPIPE_ROUTER_UP_TIME 0x59 +#if 0 +#define CPIPE_MPPP_TRACE_ENABLE 0x60 +#define CPIPE_MPPP_TRACE_DISABLE 0x61 +#define CPIPE_TE1_56K_STAT 0x62 /* TE1_56K */ +#define CPIPE_GET_MEDIA_TYPE 0x63 /* TE1_56K */ +#define CPIPE_FLUSH_TE1_PMON 0x64 /* TE1 */ +#define CPIPE_READ_REGISTER 0x65 /* TE1_56K */ +#define CPIPE_TE1_CFG 0x66 /* TE1 */ +#endif + /* Driver specific commands for API */ #define CHDLC_READ_TRACE_DATA 0xE4 /* read trace data */ #define TRACE_ALL 0x00 @@ -216,10 +231,10 @@ typedef struct { /* the global configuration structure */ typedef struct { - unsigned short adapter_config_options ; /* adapter config options */ - unsigned short app_IRQ_timeout ; /* application IRQ timeout */ - unsigned int adapter_operating_frequency ; /* adapter operating frequency */ - unsigned short frame_transmit_timeout ; + unsigned short adapter_config_options PACKED; /* adapter config options */ + unsigned short app_IRQ_timeout PACKED; /* application IRQ timeout */ + unsigned int adapter_operating_frequency PACKED; /* adapter operating frequency */ + unsigned short frame_transmit_timeout PACKED; } GLOBAL_CONFIGURATION_STRUCT; /* settings for the 'app_IRQ_timeout' */ @@ -233,7 +248,7 @@ typedef struct { /* the global statistics structure */ typedef struct { - unsigned short app_IRQ_timeout_count ; + unsigned short app_IRQ_timeout_count PACKED; } GLOBAL_STATS_STRUCT; @@ -244,16 +259,16 @@ typedef struct { /* the communications error statistics structure */ typedef struct { - unsigned short Rx_overrun_err_count ; - unsigned short CRC_err_count ; /* receiver CRC error count */ - unsigned short Rx_abort_count ; /* abort frames recvd count */ - unsigned short Rx_dis_pri_bfrs_full_count ;/* receiver disabled */ - unsigned short comms_err_stat_reserved_1 ;/* reserved for later */ - unsigned short sec_Tx_abort_msd_Tx_int_count ; /* secondary - abort frames transmitted count (missed Tx interrupt) */ - unsigned short missed_Tx_und_int_count ; /* missed tx underrun interrupt count */ - unsigned short sec_Tx_abort_count ; /*secondary-abort frames tx count */ - unsigned short DCD_state_change_count ; /* DCD state change */ - unsigned short CTS_state_change_count ; /* CTS state change */ + unsigned short Rx_overrun_err_count PACKED; + unsigned short CRC_err_count PACKED; /* receiver CRC error count */ + unsigned short Rx_abort_count PACKED; /* abort frames recvd count */ + unsigned short Rx_dis_pri_bfrs_full_count PACKED;/* receiver disabled */ + unsigned short comms_err_stat_reserved_1 PACKED;/* reserved for later */ + unsigned short sec_Tx_abort_msd_Tx_int_count PACKED; /* secondary - abort frames transmitted count (missed Tx interrupt) */ + unsigned short missed_Tx_und_int_count PACKED; /* missed tx underrun interrupt count */ + unsigned short sec_Tx_abort_count PACKED; /*secondary-abort frames tx count */ + unsigned short DCD_state_change_count PACKED; /* DCD state change */ + unsigned short CTS_state_change_count PACKED; /* CTS state change */ } COMMS_ERROR_STATS_STRUCT; @@ -264,9 +279,9 @@ typedef struct { /* the trace configuration structure (SET_TRACE_CONFIGURATION/READ_TRACE_CONFIGURATION commands) */ typedef struct { - unsigned char trace_config ; /* trace configuration */ - unsigned short trace_deactivation_timer ; /* trace deactivation timer */ - unsigned int ptr_trace_stat_el_cfg_struct ; /* a pointer to the line trace element configuration structure */ + unsigned char trace_config PACKED; /* trace configuration */ + unsigned short trace_deactivation_timer PACKED; /* trace deactivation timer */ + unsigned int ptr_trace_stat_el_cfg_struct PACKED; /* a pointer to the line trace element configuration structure */ } LINE_TRACE_CONFIG_STRUCT; /* 'trace_config' bit settings */ @@ -279,22 +294,22 @@ typedef struct { /* the line trace status element configuration structure */ typedef struct { - unsigned short number_trace_status_elements ; /* number of line trace elements */ - unsigned int base_addr_trace_status_elements ; /* base address of the trace element list */ - unsigned int next_trace_element_to_use ; /* pointer to the next trace element to be used */ - unsigned int base_addr_trace_buffer ; /* base address of the trace data buffer */ - unsigned int end_addr_trace_buffer ; /* end address of the trace data buffer */ + unsigned short number_trace_status_elements PACKED; /* number of line trace elements */ + unsigned int base_addr_trace_status_elements PACKED; /* base address of the trace element list */ + unsigned int next_trace_element_to_use PACKED; /* pointer to the next trace element to be used */ + unsigned int base_addr_trace_buffer PACKED; /* base address of the trace data buffer */ + unsigned int end_addr_trace_buffer PACKED; /* end address of the trace data buffer */ } TRACE_STATUS_EL_CFG_STRUCT; /* the line trace status element structure */ typedef struct { - unsigned char opp_flag ; /* opp flag */ - unsigned short trace_length ; /* trace length */ - unsigned char trace_type ; /* trace type */ - unsigned short trace_time_stamp ; /* time stamp */ - unsigned short trace_reserved_1 ; /* reserved for later use */ - unsigned int trace_reserved_2 ; /* reserved for later use */ - unsigned int ptr_data_bfr ; /* ptr to the trace data buffer */ + unsigned char opp_flag PACKED; /* opp flag */ + unsigned short trace_length PACKED; /* trace length */ + unsigned char trace_type PACKED; /* trace type */ + unsigned short trace_time_stamp PACKED; /* time stamp */ + unsigned short trace_reserved_1 PACKED; /* reserved for later use */ + unsigned int trace_reserved_2 PACKED; /* reserved for later use */ + unsigned int ptr_data_bfr PACKED; /* ptr to the trace data buffer */ } TRACE_STATUS_ELEMENT_STRUCT; /* "trace_type" bit settings */ @@ -308,8 +323,8 @@ typedef struct { /* the line trace statistics structure */ typedef struct { - unsigned int frames_traced_count ; /* number of frames traced */ - unsigned int trc_frms_not_recorded_count ; /* number of trace frames discarded */ + unsigned int frames_traced_count PACKED; /* number of frames traced */ + unsigned int trc_frms_not_recorded_count PACKED; /* number of trace frames discarded */ } LINE_TRACE_STATS_STRUCT; @@ -331,24 +346,24 @@ typedef struct { /* the CHDLC configuration structure */ typedef struct { - unsigned int baud_rate ; /* the baud rate */ - unsigned short line_config_options ; /* line configuration options */ - unsigned short modem_config_options ; /* modem configration options */ - unsigned short modem_status_timer ; /* timer for monitoring modem status changes */ - unsigned short CHDLC_API_options ; /* CHDLC API options */ - unsigned short CHDLC_protocol_options ; /* CHDLC protocol options */ - unsigned short percent_data_buffer_for_Tx ; /* percentage data buffering used for Tx */ - unsigned short CHDLC_statistics_options ; /* CHDLC operational statistics options */ - unsigned short max_CHDLC_data_field_length ; /* the maximum length of the CHDLC Data field */ - unsigned short transmit_keepalive_timer ; /* the transmit keepalive timer */ - unsigned short receive_keepalive_timer ; /* the receive keepalive timer */ - unsigned short keepalive_error_tolerance ; /* the receive keepalive error tolerance */ - unsigned short SLARP_request_timer ; /* the SLARP request timer */ - unsigned int IP_address ; /* the IP address */ - unsigned int IP_netmask ; /* the IP netmask */ - unsigned int ptr_shared_mem_info_struct ; /* a pointer to the shared memory area information structure */ - unsigned int ptr_CHDLC_Tx_stat_el_cfg_struct ; /* a pointer to the transmit status element configuration structure */ - unsigned int ptr_CHDLC_Rx_stat_el_cfg_struct ; /* a pointer to the receive status element configuration structure */ + unsigned int baud_rate PACKED; /* the baud rate */ + unsigned short line_config_options PACKED; /* line configuration options */ + unsigned short modem_config_options PACKED; /* modem configration options */ + unsigned short modem_status_timer PACKED; /* timer for monitoring modem status changes */ + unsigned short CHDLC_API_options PACKED; /* CHDLC API options */ + unsigned short CHDLC_protocol_options PACKED; /* CHDLC protocol options */ + unsigned short percent_data_buffer_for_Tx PACKED; /* percentage data buffering used for Tx */ + unsigned short CHDLC_statistics_options PACKED; /* CHDLC operational statistics options */ + unsigned short max_CHDLC_data_field_length PACKED; /* the maximum length of the CHDLC Data field */ + unsigned short transmit_keepalive_timer PACKED; /* the transmit keepalive timer */ + unsigned short receive_keepalive_timer PACKED; /* the receive keepalive timer */ + unsigned short keepalive_error_tolerance PACKED; /* the receive keepalive error tolerance */ + unsigned short SLARP_request_timer PACKED; /* the SLARP request timer */ + unsigned int IP_address PACKED; /* the IP address */ + unsigned int IP_netmask PACKED; /* the IP netmask */ + unsigned int ptr_shared_mem_info_struct PACKED; /* a pointer to the shared memory area information structure */ + unsigned int ptr_CHDLC_Tx_stat_el_cfg_struct PACKED; /* a pointer to the transmit status element configuration structure */ + unsigned int ptr_CHDLC_Rx_stat_el_cfg_struct PACKED; /* a pointer to the receive status element configuration structure */ } CHDLC_CONFIGURATION_STRUCT; /* settings for the 'line_config_options' */ @@ -450,10 +465,10 @@ typedef struct { /* the CHDLC status structure */ typedef struct { - unsigned char CHDLC_link_status ; /* CHDLC link status */ - unsigned char no_Data_frms_for_app ; /* number of Data frames available for the application */ - unsigned char receiver_status ; /* enabled/disabled */ - unsigned char SLARP_state ; /* internal SLARP state */ + unsigned char CHDLC_link_status PACKED; /* CHDLC link status */ + unsigned char no_Data_frms_for_app PACKED; /* number of Data frames available for the application */ + unsigned char receiver_status PACKED; /* enabled/disabled */ + unsigned char SLARP_state PACKED; /* internal SLARP state */ } CHDLC_LINK_STATUS_STRUCT; /* settings for the 'CHDLC_link_status' variable */ @@ -468,10 +483,10 @@ typedef struct { /* the structure used for the SET_CHDLC_INTERRUPT_TRIGGERS/READ_CHDLC_INTERRUPT_TRIGGERS command */ typedef struct { - unsigned char CHDLC_interrupt_triggers ; /* CHDLC interrupt trigger configuration */ - unsigned char IRQ ; /* IRQ to be used */ - unsigned short interrupt_timer ; /* interrupt timer */ - unsigned short misc_interrupt_bits ; /* miscellaneous bits */ + unsigned char CHDLC_interrupt_triggers PACKED; /* CHDLC interrupt trigger configuration */ + unsigned char IRQ PACKED; /* IRQ to be used */ + unsigned short interrupt_timer PACKED; /* interrupt timer */ + unsigned short misc_interrupt_bits PACKED; /* miscellaneous bits */ } CHDLC_INT_TRIGGERS_STRUCT; /* 'CHDLC_interrupt_triggers' bit settings */ @@ -505,19 +520,19 @@ typedef struct { /* the Data frame transmit status element configuration structure */ typedef struct { - unsigned short number_Tx_status_elements ; /* number of transmit status elements */ - unsigned int base_addr_Tx_status_elements ; /* base address of the transmit element list */ - unsigned int next_Tx_status_element_to_use ; /* pointer to the next transmit element to be used */ + unsigned short number_Tx_status_elements PACKED; /* number of transmit status elements */ + unsigned int base_addr_Tx_status_elements PACKED; /* base address of the transmit element list */ + unsigned int next_Tx_status_element_to_use PACKED; /* pointer to the next transmit element to be used */ } CHDLC_TX_STATUS_EL_CFG_STRUCT; /* the Data frame transmit status element structure */ typedef struct { - unsigned char opp_flag ; /* opp flag */ - unsigned short frame_length ; /* length of the frame to be transmitted */ - unsigned char misc_Tx_bits ; /* miscellaneous transmit bits */ - unsigned int reserved_2 ; /* reserved for internal use */ - unsigned int reserved_3 ; /* reserved for internal use */ - unsigned int ptr_data_bfr ; /* pointer to the data area */ + unsigned char opp_flag PACKED; /* opp flag */ + unsigned short frame_length PACKED; /* length of the frame to be transmitted */ + unsigned char misc_Tx_bits PACKED; /* miscellaneous transmit bits */ + unsigned int reserved_2 PACKED; /* reserved for internal use */ + unsigned int reserved_3 PACKED; /* reserved for internal use */ + unsigned int ptr_data_bfr PACKED; /* pointer to the data area */ } CHDLC_DATA_TX_STATUS_EL_STRUCT; @@ -546,22 +561,22 @@ typedef struct { /* the Data frame receive status element configuration structure */ typedef struct { - unsigned short number_Rx_status_elements ; /* number of receive status elements */ - unsigned int base_addr_Rx_status_elements ; /* base address of the receive element list */ - unsigned int next_Rx_status_element_to_use ; /* pointer to the next receive element to be used */ - unsigned int base_addr_Rx_buffer ; /* base address of the receive data buffer */ - unsigned int end_addr_Rx_buffer ; /* end address of the receive data buffer */ + unsigned short number_Rx_status_elements PACKED; /* number of receive status elements */ + unsigned int base_addr_Rx_status_elements PACKED; /* base address of the receive element list */ + unsigned int next_Rx_status_element_to_use PACKED; /* pointer to the next receive element to be used */ + unsigned int base_addr_Rx_buffer PACKED; /* base address of the receive data buffer */ + unsigned int end_addr_Rx_buffer PACKED; /* end address of the receive data buffer */ } CHDLC_RX_STATUS_EL_CFG_STRUCT; /* the Data frame receive status element structure */ typedef struct { - unsigned char opp_flag ; /* opp flag */ - unsigned short frame_length ; /* length of the received frame */ - unsigned char error_flag ; /* frame errors (HDLC_STREAMING_MODE)*/ - unsigned short time_stamp ; /* receive time stamp (HDLC_STREAMING_MODE) */ - unsigned int reserved_1 ; /* reserved for internal use */ - unsigned short reserved_2 ; /* reserved for internal use */ - unsigned int ptr_data_bfr ; /* pointer to the data area */ + unsigned char opp_flag PACKED; /* opp flag */ + unsigned short frame_length PACKED; /* length of the received frame */ + unsigned char error_flag PACKED; /* frame errors (HDLC_STREAMING_MODE)*/ + unsigned short time_stamp PACKED; /* receive time stamp (HDLC_STREAMING_MODE) */ + unsigned int reserved_1 PACKED; /* reserved for internal use */ + unsigned short reserved_2 PACKED; /* reserved for internal use */ + unsigned int ptr_data_bfr PACKED; /* pointer to the data area */ } CHDLC_DATA_RX_STATUS_EL_STRUCT; @@ -583,41 +598,41 @@ typedef struct { /* the global information structure */ typedef struct { - unsigned char global_status ; /* global status */ - unsigned char modem_status ; /* current modem status */ - unsigned char global_excep_conditions ; /* global exception conditions */ - unsigned char glob_info_reserved[5] ; /* reserved */ - unsigned char codename[4] ; /* Firmware name */ - unsigned char codeversion[4] ; /* Firmware version */ + unsigned char global_status PACKED; /* global status */ + unsigned char modem_status PACKED; /* current modem status */ + unsigned char global_excep_conditions PACKED; /* global exception conditions */ + unsigned char glob_info_reserved[5] PACKED; /* reserved */ + unsigned char codename[4] PACKED; /* Firmware name */ + unsigned char codeversion[4] PACKED; /* Firmware version */ } GLOBAL_INFORMATION_STRUCT; /* the CHDLC information structure */ typedef struct { - unsigned char CHDLC_status ; /* CHDLC status */ - unsigned char CHDLC_excep_conditions ; /* CHDLC exception conditions */ - unsigned char CHDLC_info_reserved[14] ; /* reserved */ + unsigned char CHDLC_status PACKED; /* CHDLC status */ + unsigned char CHDLC_excep_conditions PACKED; /* CHDLC exception conditions */ + unsigned char CHDLC_info_reserved[14] PACKED; /* reserved */ } CHDLC_INFORMATION_STRUCT; /* the interrupt information structure */ typedef struct { - unsigned char interrupt_type ; /* type of interrupt triggered */ - unsigned char interrupt_permission ; /* interrupt permission mask */ - unsigned char int_info_reserved[14] ; /* reserved */ + unsigned char interrupt_type PACKED; /* type of interrupt triggered */ + unsigned char interrupt_permission PACKED; /* interrupt permission mask */ + unsigned char int_info_reserved[14] PACKED; /* reserved */ } INTERRUPT_INFORMATION_STRUCT; /* the S508/FT1 information structure */ typedef struct { - unsigned char parallel_port_A_input ; /* input - parallel port A */ - unsigned char parallel_port_B_input ; /* input - parallel port B */ - unsigned char FT1_info_reserved[14] ; /* reserved */ + unsigned char parallel_port_A_input PACKED; /* input - parallel port A */ + unsigned char parallel_port_B_input PACKED; /* input - parallel port B */ + unsigned char FT1_info_reserved[14] PACKED; /* reserved */ } FT1_INFORMATION_STRUCT; /* the shared memory area information structure */ typedef struct { - GLOBAL_INFORMATION_STRUCT global_info_struct ; /* the global information structure */ - CHDLC_INFORMATION_STRUCT CHDLC_info_struct ; /* the CHDLC information structure */ - INTERRUPT_INFORMATION_STRUCT interrupt_info_struct ; /* the interrupt information structure */ - FT1_INFORMATION_STRUCT FT1_info_struct ; /* the S508/FT1 information structure */ + GLOBAL_INFORMATION_STRUCT global_info_struct PACKED; /* the global information structure */ + CHDLC_INFORMATION_STRUCT CHDLC_info_struct PACKED; /* the CHDLC information structure */ + INTERRUPT_INFORMATION_STRUCT interrupt_info_struct PACKED; /* the interrupt information structure */ + FT1_INFORMATION_STRUCT FT1_info_struct PACKED; /* the S508/FT1 information structure */ } SHARED_MEMORY_INFO_STRUCT; /* ---------------------------------------------------------------------------- @@ -630,55 +645,55 @@ typedef struct { #ifndef HDLC_PROT_ONLY typedef struct { - unsigned char opp_flag ; /* the opp flag */ - unsigned char command ; /* the user command */ - unsigned short buffer_length ; /* the data length */ - unsigned char return_code ; /* the return code */ - unsigned char MB_reserved[NUMBER_MB_RESERVED_BYTES] ; /* reserved for later */ + unsigned char opp_flag PACKED; /* the opp flag */ + unsigned char command PACKED; /* the user command */ + unsigned short buffer_length PACKED; /* the data length */ + unsigned char return_code PACKED; /* the return code */ + unsigned char MB_reserved[NUMBER_MB_RESERVED_BYTES] PACKED; /* reserved for later */ } cblock_t; /* UDP management packet layout (data area of ip packet) */ /* typedef struct { - unsigned char signature[8] ; - unsigned char request_reply ; - unsigned char id ; - unsigned char reserved[6] ; - cblock_t cblock ; - unsigned char num_frames ; - unsigned char ismoredata ; - unsigned char data[SIZEOF_MB_DATA_BFR] ; + unsigned char signature[8] PACKED; + unsigned char request_reply PACKED; + unsigned char id PACKED; + unsigned char reserved[6] PACKED; + cblock_t cblock PACKED; + unsigned char num_frames PACKED; + unsigned char ismoredata PACKED; + unsigned char data[SIZEOF_MB_DATA_BFR] PACKED; } udp_management_packet_t; */ typedef struct { - unsigned char num_frames ; - unsigned char ismoredata ; + unsigned char num_frames PACKED; + unsigned char ismoredata PACKED; } trace_info_t; #if 0 typedef struct { - ip_pkt_t ip_pkt ; - udp_pkt_t udp_pkt ; - wp_mgmt_t wp_mgmt ; - cblock_t cblock ; - trace_info_t trace_info ; - unsigned char data[SIZEOF_MB_DATA_BFR] ; + ip_pkt_t ip_pkt PACKED; + udp_pkt_t udp_pkt PACKED; + wp_mgmt_t wp_mgmt PACKED; + cblock_t cblock PACKED; + trace_info_t trace_info PACKED; + unsigned char data[SIZEOF_MB_DATA_BFR] PACKED; } chdlc_udp_pkt_t; #endif typedef struct ft1_exec_cmd{ - unsigned char command ; /* the user command */ - unsigned short buffer_length ; /* the data length */ - unsigned char return_code ; /* the return code */ - unsigned char MB_reserved[NUMBER_MB_RESERVED_BYTES] ; + unsigned char command PACKED; /* the user command */ + unsigned short buffer_length PACKED; /* the data length */ + unsigned char return_code PACKED; /* the return code */ + unsigned char MB_reserved[NUMBER_MB_RESERVED_BYTES] PACKED; } ft1_exec_cmd_t; typedef struct { - unsigned char opp_flag ; - ft1_exec_cmd_t cmd ; - unsigned char data[SIZEOF_MB_DATA_BFR] ; + unsigned char opp_flag PACKED; + ft1_exec_cmd_t cmd PACKED; + unsigned char data[SIZEOF_MB_DATA_BFR] PACKED; } ft1_exec_t; @@ -689,19 +704,19 @@ typedef struct { /* UDP/IP packet (for UDP management) layout */ /* typedef struct { - unsigned char reserved[2] ; - unsigned short ip_length ; - unsigned char reserved2[4] ; - unsigned char ip_ttl ; - unsigned char ip_protocol ; - unsigned short ip_checksum ; - unsigned int ip_src_address ; - unsigned int ip_dst_address ; - unsigned short udp_src_port ; - unsigned short udp_dst_port ; - unsigned short udp_length ; - unsigned short udp_checksum ; - udp_management_packet_t um_packet ; + unsigned char reserved[2] PACKED; + unsigned short ip_length PACKED; + unsigned char reserved2[4] PACKED; + unsigned char ip_ttl PACKED; + unsigned char ip_protocol PACKED; + unsigned short ip_checksum PACKED; + unsigned int ip_src_address PACKED; + unsigned int ip_dst_address PACKED; + unsigned short udp_src_port PACKED; + unsigned short udp_dst_port PACKED; + unsigned short udp_length PACKED; + unsigned short udp_checksum PACKED; + udp_management_packet_t um_packet PACKED; } ip_packet_t; */ @@ -710,36 +725,36 @@ typedef struct { #if 0 typedef struct { - unsigned char status ; - unsigned char data_avail ; - unsigned short real_length ; - unsigned short time_stamp ; - unsigned char data[1] ; + unsigned char status PACKED; + unsigned char data_avail PACKED; + unsigned short real_length PACKED; + unsigned short time_stamp PACKED; + unsigned char data[1] PACKED; } trace_pkt_t; #endif typedef struct { - unsigned char error_flag ; - unsigned short time_stamp ; - unsigned int sec ; - unsigned int usec ; - unsigned char reserved[5] ; + unsigned char error_flag PACKED; + unsigned short time_stamp PACKED; + unsigned int sec PACKED; + unsigned int usec PACKED; + unsigned char reserved[5] PACKED; } api_rx_hdr_t; typedef struct { - api_rx_hdr_t api_rx_hdr ; - unsigned char data[1] ; + api_rx_hdr_t api_rx_hdr PACKED; + unsigned char data[1] PACKED; } api_rx_element_t; typedef struct { - unsigned char attr ; - unsigned char misc_Tx_bits ; - unsigned char reserved[14] ; + unsigned char attr PACKED; + unsigned char misc_Tx_bits PACKED; + unsigned char reserved[14] PACKED; } api_tx_hdr_t; typedef struct { - api_tx_hdr_t api_tx_hdr ; - unsigned char data[1] ; + api_tx_hdr_t api_tx_hdr PACKED; + unsigned char data[1] PACKED; } api_tx_element_t; #endif //HDLC_PROT_ONLY diff --git a/patches/kdrivers/include/sdla_fr.h b/patches/kdrivers/include/sdla_fr.h index fca2b82..433e6c7 100644 --- a/patches/kdrivers/include/sdla_fr.h +++ b/patches/kdrivers/include/sdla_fr.h @@ -35,8 +35,9 @@ * GNU C Linux */ -#pragma pack(1) - +#ifndef PACKED +# define PACKED __attribute__((packed)) +#endif /* PACKED */ /* Adapter memory layout */ #define FR_MB_VECTOR 0xE000 /* mailbox window vector */ @@ -65,14 +66,14 @@ */ typedef struct fr_cmd { - unsigned char command ; /* command code */ - unsigned short length ; /* length of data buffer */ - unsigned char result ; /* return code */ - unsigned short dlci ; /* DLCI number */ - unsigned char attr ; /* FECN, BECN, DE and C/R bits */ - unsigned short rxlost1 ; /* frames discarded at int. level */ - unsigned int rxlost2 ; /* frames discarded at app. level */ - unsigned char rsrv[2] ; /* reserved for future use */ + unsigned char command PACKED; /* command code */ + unsigned short length PACKED; /* length of data buffer */ + unsigned char result PACKED; /* return code */ + unsigned short dlci PACKED; /* DLCI number */ + unsigned char attr PACKED; /* FECN, BECN, DE and C/R bits */ + unsigned short rxlost1 PACKED; /* frames discarded at int. level */ + unsigned int rxlost2 PACKED; /* frames discarded at app. level */ + unsigned char rsrv[2] PACKED; /* reserved for future use */ } fr_cmd_t; @@ -118,14 +119,14 @@ typedef struct fr_cmd */ typedef struct fr502_flags { - unsigned char rsrv1[1] ; /* 00h: */ - unsigned char tx_ready ; /* 01h: Tx buffer available */ - unsigned char rx_ready ; /* 02h: Rx frame available */ - unsigned char event ; /* 03h: asynchronous event */ - unsigned char mstatus ; /* 04h: modem status */ - unsigned char rsrv2[8] ; /* 05h: */ - unsigned char iflag ; /* 0Dh: interrupt flag */ - unsigned char imask ; /* 0Eh: interrupt mask */ + unsigned char rsrv1[1] PACKED; /* 00h: */ + unsigned char tx_ready PACKED; /* 01h: Tx buffer available */ + unsigned char rx_ready PACKED; /* 02h: Rx frame available */ + unsigned char event PACKED; /* 03h: asynchronous event */ + unsigned char mstatus PACKED; /* 04h: modem status */ + unsigned char rsrv2[8] PACKED; /* 05h: */ + unsigned char iflag PACKED; /* 0Dh: interrupt flag */ + unsigned char imask PACKED; /* 0Eh: interrupt mask */ } fr502_flags_t; /*---------------------------------------------------------------------------- @@ -134,14 +135,14 @@ typedef struct fr502_flags */ typedef struct fr508_flags { - unsigned char rsrv1[3] ; /* 00h: reserved */ - unsigned char event ; /* 03h: asynchronous event */ - unsigned char mstatus ; /* 04h: modem status */ - unsigned char rsrv2[11] ; /* 05h: reserved */ - unsigned char iflag ; /* 10h: interrupt flag */ - unsigned char imask ; /* 11h: interrupt mask */ - unsigned int tse_offs ; /* 12h: Tx status element */ - unsigned short dlci ; /* 16h: DLCI NUMBER */ + unsigned char rsrv1[3] PACKED; /* 00h: reserved */ + unsigned char event PACKED; /* 03h: asynchronous event */ + unsigned char mstatus PACKED; /* 04h: modem status */ + unsigned char rsrv2[11] PACKED; /* 05h: reserved */ + unsigned char iflag PACKED; /* 10h: interrupt flag */ + unsigned char imask PACKED; /* 11h: interrupt mask */ + unsigned int tse_offs PACKED; /* 12h: Tx status element */ + unsigned short dlci PACKED; /* 16h: DLCI NUMBER */ } fr508_flags_t; /* 'event' field defines */ @@ -170,12 +171,12 @@ typedef struct fr508_flags */ typedef struct fr_buf_info { - unsigned short rse_num ; /* 00h: number of status elements */ - unsigned int rse_base ; /* 02h: receive status array base */ - unsigned int rse_next ; /* 06h: next status element */ - unsigned int buf_base ; /* 0Ah: rotational buffer base */ - unsigned short reserved ; /* 0Eh: */ - unsigned int buf_top ; /* 10h: rotational buffer top */ + unsigned short rse_num PACKED; /* 00h: number of status elements */ + unsigned int rse_base PACKED; /* 02h: receive status array base */ + unsigned int rse_next PACKED; /* 06h: next status element */ + unsigned int buf_base PACKED; /* 0Ah: rotational buffer base */ + unsigned short reserved PACKED; /* 0Eh: */ + unsigned int buf_top PACKED; /* 10h: rotational buffer top */ } fr_buf_info_t; /*---------------------------------------------------------------------------- @@ -186,24 +187,24 @@ typedef struct fr_buf_info */ typedef struct fr_rx_buf_ctl { - unsigned char flag ; /* 00h: ready flag */ - unsigned short length ; /* 01h: frame length */ - unsigned short dlci ; /* 03h: DLCI */ - unsigned char attr ; /* 05h: FECN/BECN/DE/CR */ - unsigned short tmstamp ; /* 06h: time stamp */ - unsigned short rsrv[2] ; /* 08h: */ - unsigned int offset ; /* 0Ch: buffer absolute address */ + unsigned char flag PACKED; /* 00h: ready flag */ + unsigned short length PACKED; /* 01h: frame length */ + unsigned short dlci PACKED; /* 03h: DLCI */ + unsigned char attr PACKED; /* 05h: FECN/BECN/DE/CR */ + unsigned short tmstamp PACKED; /* 06h: time stamp */ + unsigned short rsrv[2] PACKED; /* 08h: */ + unsigned int offset PACKED; /* 0Ch: buffer absolute address */ } fr_rx_buf_ctl_t; typedef struct fr_tx_buf_ctl { - unsigned char flag ; /* 00h: ready flag */ - unsigned short rsrv0[2] ; /* 01h: */ - unsigned short length ; /* 05h: frame length */ - unsigned short dlci ; /* 07h: DLCI */ - unsigned char attr ; /* 09h: FECN/BECN/DE/CR */ - unsigned short rsrv1 ; /* 0Ah: */ - unsigned int offset ; /* 0Ch: buffer absolute address */ + unsigned char flag PACKED; /* 00h: ready flag */ + unsigned short rsrv0[2] PACKED; /* 01h: */ + unsigned short length PACKED; /* 05h: frame length */ + unsigned short dlci PACKED; /* 07h: DLCI */ + unsigned char attr PACKED; /* 09h: FECN/BECN/DE/CR */ + unsigned short rsrv1 PACKED; /* 0Ah: */ + unsigned int offset PACKED; /* 0Ch: buffer absolute address */ } fr_tx_buf_ctl_t; /*---------------------------------------------------------------------------- @@ -211,23 +212,23 @@ typedef struct fr_tx_buf_ctl */ typedef struct fr_conf { - unsigned short station ; /* 00h: CPE/Node */ - unsigned short options ; /* 02h: configuration options */ - unsigned short kbps ; /* 04h: baud rate in kbps */ - unsigned short port ; /* 06h: RS-232/V.35 */ - unsigned short mtu ; /* 08h: max. transmit length */ - unsigned short t391 ; /* 0Ah: */ - unsigned short t392 ; /* 0Ch: */ - unsigned short n391 ; /* 0Eh: */ - unsigned short n392 ; /* 10h: */ - unsigned short n393 ; /* 12h: */ - unsigned short cir_fwd ; /* 14h: */ - unsigned short bc_fwd ; /* 16h: */ - unsigned short be_fwd ; /* 18h: */ - unsigned short cir_bwd ; /* 1Ah: */ - unsigned short bc_bwd ; /* 1Ch: */ - unsigned short be_bwd ; /* 1Eh: */ - unsigned short dlci[0] ; /* 20h: */ + unsigned short station PACKED; /* 00h: CPE/Node */ + unsigned short options PACKED; /* 02h: configuration options */ + unsigned short kbps PACKED; /* 04h: baud rate in kbps */ + unsigned short port PACKED; /* 06h: RS-232/V.35 */ + unsigned short mtu PACKED; /* 08h: max. transmit length */ + unsigned short t391 PACKED; /* 0Ah: */ + unsigned short t392 PACKED; /* 0Ch: */ + unsigned short n391 PACKED; /* 0Eh: */ + unsigned short n392 PACKED; /* 10h: */ + unsigned short n393 PACKED; /* 12h: */ + unsigned short cir_fwd PACKED; /* 14h: */ + unsigned short bc_fwd PACKED; /* 16h: */ + unsigned short be_fwd PACKED; /* 18h: */ + unsigned short cir_bwd PACKED; /* 1Ah: */ + unsigned short bc_bwd PACKED; /* 1Ch: */ + unsigned short be_bwd PACKED; /* 1Eh: */ + unsigned short dlci[0] PACKED; /* 20h: */ } fr_conf_t; /* 'station_type' defines */ @@ -264,26 +265,26 @@ typedef struct fr_conf /* the line trace status element presented by the frame relay code */ typedef struct { - unsigned char flag ; /* ready flag */ - unsigned short length ; /* trace length */ - unsigned char rsrv0[2] ; /* reserved */ - unsigned char attr ; /* trace attributes */ - unsigned short tmstamp ; /* time stamp */ - unsigned char rsrv1[4] ; /* reserved */ - unsigned int offset ; /* buffer absolute address */ + unsigned char flag PACKED; /* ready flag */ + unsigned short length PACKED; /* trace length */ + unsigned char rsrv0[2] PACKED; /* reserved */ + unsigned char attr PACKED; /* trace attributes */ + unsigned short tmstamp PACKED; /* time stamp */ + unsigned char rsrv1[4] PACKED; /* reserved */ + unsigned int offset PACKED; /* buffer absolute address */ } fr_trc_el_t; typedef struct { - unsigned char status ; /* status flag */ - unsigned char data_passed ; /* 0 if no data passed, 1 if */ + unsigned char status PACKED; /* status flag */ + unsigned char data_passed PACKED; /* 0 if no data passed, 1 if */ /* data passed */ - unsigned short length ; /* frame length */ - unsigned short tmstamp ; /* time stamp */ + unsigned short length PACKED; /* frame length */ + unsigned short tmstamp PACKED; /* time stamp */ } fpipemon_trc_hdr_t; typedef struct { - fpipemon_trc_hdr_t fpipemon_trc_hdr ; - unsigned char data[FR_MAX_NO_DATA_BYTES_IN_FRAME] ; + fpipemon_trc_hdr_t fpipemon_trc_hdr PACKED; + unsigned char data[FR_MAX_NO_DATA_BYTES_IN_FRAME] PACKED; } fpipemon_trc_t; /* bit settings for the 'status' byte - note that bits 1, 2 and 3 are used */ @@ -313,13 +314,13 @@ typedef struct { */ typedef struct fr_dlc_conf { - unsigned short conf_flags ; /* 00h: configuration bits */ - unsigned short cir_fwd ; /* 02h: */ - unsigned short bc_fwd ; /* 04h: */ - unsigned short be_fwd ; /* 06h: */ - unsigned short cir_bwd ; /* 08h: */ - unsigned short bc_bwd ; /* 0Ah: */ - unsigned short be_bwd ; /* 0Ch: */ + unsigned short conf_flags PACKED; /* 00h: configuration bits */ + unsigned short cir_fwd PACKED; /* 02h: */ + unsigned short bc_fwd PACKED; /* 04h: */ + unsigned short be_fwd PACKED; /* 06h: */ + unsigned short cir_bwd PACKED; /* 08h: */ + unsigned short bc_bwd PACKED; /* 0Ah: */ + unsigned short be_bwd PACKED; /* 0Ch: */ } fr_dlc_conf_t; /*---------------------------------------------------------------------------- @@ -329,8 +330,8 @@ typedef struct fr_dlc_conf */ typedef struct fr502_intr_ctl { - unsigned char mode ; /* 00h: interrupt enable flags */ - unsigned short tx_len ; /* 01h: required Tx buffer size */ + unsigned char mode PACKED; /* 00h: interrupt enable flags */ + unsigned short tx_len PACKED; /* 01h: required Tx buffer size */ } fr502_intr_ctl_t; /*---------------------------------------------------------------------------- @@ -340,11 +341,11 @@ typedef struct fr502_intr_ctl */ typedef struct fr508_intr_ctl { - unsigned char mode ; /* 00h: interrupt enable flags */ - unsigned short tx_len ; /* 01h: required Tx buffer size */ - unsigned char irq ; /* 03h: IRQ level to activate */ - unsigned char flags ; /* 04h: ?? */ - unsigned short timeout ; /* 05h: ms, for timer interrupt */ + unsigned char mode PACKED; /* 00h: interrupt enable flags */ + unsigned short tx_len PACKED; /* 01h: required Tx buffer size */ + unsigned char irq PACKED; /* 03h: IRQ level to activate */ + unsigned char flags PACKED; /* 04h: ?? */ + unsigned short timeout PACKED; /* 05h: ms, for timer interrupt */ } fr508_intr_ctl_t; /*---------------------------------------------------------------------------- @@ -353,12 +354,12 @@ typedef struct fr508_intr_ctl */ typedef struct fr_dlc_Status { - unsigned char status ; /* 00h: link/DLCI status */ + unsigned char status PACKED; /* 00h: link/DLCI status */ struct { - unsigned short dlci ; /* 01h: DLCI number */ - unsigned char status ; /* 03h: DLCI status */ - } circuit[1] ; + unsigned short dlci PACKED; /* 01h: DLCI number */ + unsigned char status PACKED; /* 03h: DLCI status */ + } circuit[1] PACKED; } fr_dlc_status_t; /* 'status' defines */ @@ -380,34 +381,34 @@ typedef struct fr_dlc_Status */ typedef struct fr_link_stat { - unsigned short rx_too_long ; /* 00h: */ - unsigned short rx_dropped ; /* 02h: */ - unsigned short rx_dropped2 ; /* 04h: */ - unsigned short rx_bad_dlci ; /* 06h: */ - unsigned short rx_bad_format ; /* 08h: */ - unsigned short retransmitted ; /* 0Ah: */ - unsigned short cpe_tx_FSE ; /* 0Ch: */ - unsigned short cpe_tx_LIV ; /* 0Eh: */ - unsigned short cpe_rx_FSR ; /* 10h: */ - unsigned short cpe_rx_LIV ; /* 12h: */ - unsigned short node_rx_FSE ; /* 14h: */ - unsigned short node_rx_LIV ; /* 16h: */ - unsigned short node_tx_FSR ; /* 18h: */ - unsigned short node_tx_LIV ; /* 1Ah: */ - unsigned short rx_ISF_err ; /* 1Ch: */ - unsigned short rx_unsolicited ; /* 1Eh: */ - unsigned short rx_SSN_err ; /* 20h: */ - unsigned short rx_RSN_err ; /* 22h: */ - unsigned short T391_timeouts ; /* 24h: */ - unsigned short T392_timeouts ; /* 26h: */ - unsigned short N392_reached ; /* 28h: */ - unsigned short cpe_SSN_RSN ; /* 2Ah: */ - unsigned short current_SSN ; /* 2Ch: */ - unsigned short current_RSN ; /* 2Eh: */ - unsigned short curreny_T391 ; /* 30h: */ - unsigned short current_T392 ; /* 32h: */ - unsigned short current_N392 ; /* 34h: */ - unsigned short current_N393 ; /* 36h: */ + unsigned short rx_too_long PACKED; /* 00h: */ + unsigned short rx_dropped PACKED; /* 02h: */ + unsigned short rx_dropped2 PACKED; /* 04h: */ + unsigned short rx_bad_dlci PACKED; /* 06h: */ + unsigned short rx_bad_format PACKED; /* 08h: */ + unsigned short retransmitted PACKED; /* 0Ah: */ + unsigned short cpe_tx_FSE PACKED; /* 0Ch: */ + unsigned short cpe_tx_LIV PACKED; /* 0Eh: */ + unsigned short cpe_rx_FSR PACKED; /* 10h: */ + unsigned short cpe_rx_LIV PACKED; /* 12h: */ + unsigned short node_rx_FSE PACKED; /* 14h: */ + unsigned short node_rx_LIV PACKED; /* 16h: */ + unsigned short node_tx_FSR PACKED; /* 18h: */ + unsigned short node_tx_LIV PACKED; /* 1Ah: */ + unsigned short rx_ISF_err PACKED; /* 1Ch: */ + unsigned short rx_unsolicited PACKED; /* 1Eh: */ + unsigned short rx_SSN_err PACKED; /* 20h: */ + unsigned short rx_RSN_err PACKED; /* 22h: */ + unsigned short T391_timeouts PACKED; /* 24h: */ + unsigned short T392_timeouts PACKED; /* 26h: */ + unsigned short N392_reached PACKED; /* 28h: */ + unsigned short cpe_SSN_RSN PACKED; /* 2Ah: */ + unsigned short current_SSN PACKED; /* 2Ch: */ + unsigned short current_RSN PACKED; /* 2Eh: */ + unsigned short curreny_T391 PACKED; /* 30h: */ + unsigned short current_T392 PACKED; /* 32h: */ + unsigned short current_N392 PACKED; /* 34h: */ + unsigned short current_N393 PACKED; /* 36h: */ } fr_link_stat_t; /*---------------------------------------------------------------------------- @@ -417,18 +418,18 @@ typedef struct fr_link_stat */ typedef struct fr_dlci_stat { - unsigned int tx_frames ; /* 00h: */ - unsigned int tx_bytes ; /* 04h: */ - unsigned int rx_frames ; /* 08h: */ - unsigned int rx_bytes ; /* 0Ch: */ - unsigned int rx_dropped ; /* 10h: */ - unsigned int rx_inactive ; /* 14h: */ - unsigned int rx_exceed_CIR ; /* 18h: */ - unsigned int rx_DE_set ; /* 1Ch: */ - unsigned int tx_throughput ; /* 20h: */ - unsigned int tx_calc_timer ; /* 24h: */ - unsigned int rx_throughput ; /* 28h: */ - unsigned int rx_calc_timer ; /* 2Ch: */ + unsigned int tx_frames PACKED; /* 00h: */ + unsigned int tx_bytes PACKED; /* 04h: */ + unsigned int rx_frames PACKED; /* 08h: */ + unsigned int rx_bytes PACKED; /* 0Ch: */ + unsigned int rx_dropped PACKED; /* 10h: */ + unsigned int rx_inactive PACKED; /* 14h: */ + unsigned int rx_exceed_CIR PACKED; /* 18h: */ + unsigned int rx_DE_set PACKED; /* 1Ch: */ + unsigned int tx_throughput PACKED; /* 20h: */ + unsigned int tx_calc_timer PACKED; /* 24h: */ + unsigned int rx_throughput PACKED; /* 28h: */ + unsigned int rx_calc_timer PACKED; /* 2Ch: */ } fr_dlci_stat_t; #endif @@ -438,15 +439,15 @@ typedef struct fr_dlci_stat */ typedef struct fr_comm_stat { - unsigned char rx_overruns ; /* 00h: */ - unsigned char rx_bad_crc ; /* 01h: */ - unsigned char rx_aborts ; /* 02h: */ - unsigned char rx_too_long ; /* 03h: */ - unsigned char tx_aborts ; /* 04h: */ - unsigned char tx_underruns ; /* 05h: */ - unsigned char tx_missed_undr ; /* 06h: */ - unsigned char dcd_dropped ; /* 07h: */ - unsigned char cts_dropped ; /* 08h: */ + unsigned char rx_overruns PACKED; /* 00h: */ + unsigned char rx_bad_crc PACKED; /* 01h: */ + unsigned char rx_aborts PACKED; /* 02h: */ + unsigned char rx_too_long PACKED; /* 03h: */ + unsigned char tx_aborts PACKED; /* 04h: */ + unsigned char tx_underruns PACKED; /* 05h: */ + unsigned char tx_missed_undr PACKED; /* 06h: */ + unsigned char dcd_dropped PACKED; /* 07h: */ + unsigned char cts_dropped PACKED; /* 08h: */ } fr_comm_stat_t; /*---------------------------------------------------------------------------- @@ -461,15 +462,15 @@ typedef struct fr_comm_stat typedef struct arphdr_fr { - unsigned short ar_hrd ; /* format of hardware addr */ - unsigned short ar_pro ; /* format of protocol addr */ - unsigned char ar_hln ; /* length of hardware addr */ - unsigned char ar_pln ; /* length of protocol addr */ - unsigned short ar_op ; /* ARP opcode */ - unsigned short ar_sha ; /* Sender DLCI addr 2 bytes */ - unsigned int ar_sip ; /* Sender IP addr 4 bytes */ - unsigned short ar_tha ; /* Target DLCI addr 2 bytes */ - unsigned int ar_tip ; /* Target IP addr 4 bytes */ + unsigned short ar_hrd PACKED; /* format of hardware addr */ + unsigned short ar_pro PACKED; /* format of protocol addr */ + unsigned char ar_hln PACKED; /* length of hardware addr */ + unsigned char ar_pln PACKED; /* length of protocol addr */ + unsigned short ar_op PACKED; /* ARP opcode */ + unsigned short ar_sha PACKED; /* Sender DLCI addr 2 bytes */ + unsigned int ar_sip PACKED; /* Sender IP addr 4 bytes */ + unsigned short ar_tha PACKED; /* Target DLCI addr 2 bytes */ + unsigned int ar_tip PACKED; /* Target IP addr 4 bytes */ } arphdr_fr_t; /*---------------------------------------------------------------------------- @@ -477,11 +478,11 @@ typedef struct arphdr_fr */ typedef struct arphdr_1490 { - unsigned char control ; /* UI, etc... */ - unsigned char pad ; /* Pad */ - unsigned char NLPID ; /* SNAP */ - unsigned char OUI[3] ; /* Ethertype, etc... */ - unsigned short PID ; /* ARP, IP, etc... */ + unsigned char control PACKED; /* UI, etc... */ + unsigned char pad PACKED; /* Pad */ + unsigned char NLPID PACKED; /* SNAP */ + unsigned char OUI[3] PACKED; /* Ethertype, etc... */ + unsigned short PID PACKED; /* ARP, IP, etc... */ } arphdr_1490_t; /* valid ip_protocol for UDP management */ @@ -545,27 +546,28 @@ typedef struct { } drvstats_gen_t; typedef struct { - unsigned char attr ; - unsigned short time_stamp ; - unsigned char reserved[13] ; + unsigned char attr PACKED; + unsigned short time_stamp PACKED; + unsigned char reserved[13] PACKED; } api_rx_hdr_t; typedef struct { - api_rx_hdr_t api_rx_hdr ; - void * data ; + api_rx_hdr_t api_rx_hdr PACKED; + void * data PACKED; } api_rx_element_t; typedef struct { - unsigned char attr ; - unsigned char reserved[15] ; + unsigned char attr PACKED; + unsigned char reserved[15] PACKED; } api_tx_hdr_t; typedef struct { - api_tx_hdr_t api_tx_hdr ; - void * data ; + api_tx_hdr_t api_tx_hdr PACKED; + void * data PACKED; } api_tx_element_t; -#pragma pack() - +#ifdef _MSC_ +# pragma pack() +#endif #endif /* _SDLA_FR_H */ diff --git a/patches/kdrivers/include/sdla_front_end.h b/patches/kdrivers/include/sdla_front_end.h index 4b26350..75864b0 100644 --- a/patches/kdrivers/include/sdla_front_end.h +++ b/patches/kdrivers/include/sdla_front_end.h @@ -51,6 +51,7 @@ #define WAN_FE_DEBUG_RBS 0x01 #define WAN_FE_DEBUG_ALARM 0x02 #define WAN_FE_DEBUG_VOLTAGE 0x03 +#define WAN_FE_DEBUG_RECONFIG 0x04 #define WAN_FE_DEBUG_REG 0x05 /* Front-End DEBUG sub-flags */ @@ -194,19 +195,29 @@ typedef struct { unsigned int liu_alarms; unsigned int bert_alarms; union { - sdla_te_pmon_t te_pmon; + sdla_te_stats_t te1_stats; + //sdla_te_pmon_t te_pmon; sdla_te3_pmon_t te3_pmon; } u; +#define te_pmon u.te1_stats.pmon } sdla_fe_stats_t; typedef struct { unsigned char type; unsigned char mode; - int channel; - unsigned char abcd; - int read; - int reg; - unsigned char value; + union{ + struct { + int channel; + unsigned char abcd; + } rbs; + struct { + int read; + int reg; + unsigned char value; + } reg; + } fe_debug_un; +#define fe_debug_rbs fe_debug_un.rbs +#define fe_debug_reg fe_debug_un.reg } sdla_fe_debug_t; @@ -361,6 +372,19 @@ enum { AFT_LED_TOGGLE }; +typedef struct sdla_fe_timer_event_ { + unsigned char type; + u_int8_t mode; + int delay; + union{ +#define te_event u_fe.te +#define rm_event u_fe.rm + sdla_te_event_t te; + sdla_rm_event_t rm; + } u_fe; + WAN_LIST_ENTRY(sdla_fe_timer_event_) next; +} sdla_fe_timer_event_t; + typedef struct { char *name; void *card; @@ -384,6 +408,11 @@ typedef struct { #define liu_alarm fe_stats.liu_alarms #define bert_alarm fe_stats.bert_alarms sdla_fe_stats_t fe_stats; + + wan_spinlock_t lock; + wan_timer_t timer; + WAN_LIST_HEAD(, sdla_fe_timer_event_) event; + int (*write_cpld)(void*, unsigned short, unsigned char); int (*read_cpld)(void*, unsigned short, unsigned char); int (*write_fe_cpld)(void*, unsigned short, unsigned char); @@ -429,8 +458,13 @@ typedef struct { int (*reset)(void *fe, int, int); int (*global_config)(void *fe); int (*global_unconfig)(void *fe); + int (*chip_config)(void *fe); int (*config)(void *fe); + int (*post_init)(void*); + /* Set extra T1/E1 configuration */ + int (*reconfig)(sdla_fe_t*); int (*unconfig)(void *fe); + int (*pre_release)(void*); int (*if_config)(void *fe, u32, u8); int (*if_unconfig)(void *fe, u32, u8); int (*disable_irq)(void *fe); @@ -478,8 +512,6 @@ typedef struct { /* Enable TE1 poll timer (WINDOWS ONLY) */ void (*enable_timer)(sdla_fe_t* fe, unsigned char cmd, unsigned int delay); #endif - /* Set extra T1/E1 configuration */ - int (*post_config)(sdla_fe_t*); /* Available front-end map */ unsigned int (*active_map)(sdla_fe_t *fe); /* Transmit DTMF number */ diff --git a/patches/kdrivers/include/sdla_hdlc.h b/patches/kdrivers/include/sdla_hdlc.h index dee585c..e55c20b 100644 --- a/patches/kdrivers/include/sdla_hdlc.h +++ b/patches/kdrivers/include/sdla_hdlc.h @@ -13,9 +13,16 @@ * Oct 14, 1998 Jaspreet Singh o Initial Version. *****************************************************************************/ -#ifndef __SDLA_HDLC_H__ -#define __SDLA_HDLC_H__ -#pragma pack(1) +#ifdef _GNUC_ +# ifndef PACKED +# define PACKED __attribute__((packed)) +# endif /* PACKED */ +#else +# define PACKED +#endif +#ifdef _MSC_ +# pragma pack(1) +#endif /* Status flag for determining whether to perform a check on socket receive * queue. @@ -51,13 +58,13 @@ */ typedef struct { - unsigned char opp_flag ; /* the opp flag */ - unsigned char command ; /* the command code */ - unsigned short buffer_length ; /* the data length */ - unsigned char return_code ; /* the return code */ - unsigned char PF_bit ; /* the HDLC P/F bit */ - char MB_reserved[NUMBER_HDLC_MB_RES_BYTES] ; /* for later use */ - char data[MAX_NO_DATA_BYTES_IN_I_FRAME] ; /* the data area */ + unsigned char opp_flag PACKED; /* the opp flag */ + unsigned char command PACKED; /* the command code */ + unsigned short buffer_length PACKED; /* the data length */ + unsigned char return_code PACKED; /* the return code */ + unsigned char PF_bit PACKED; /* the HDLC P/F bit */ + char MB_reserved[NUMBER_HDLC_MB_RES_BYTES] PACKED; /* for later use */ + char data[MAX_NO_DATA_BYTES_IN_I_FRAME] PACKED; /* the data area */ } HDLC_MAILBOX_STRUCT; @@ -66,20 +73,20 @@ typedef struct { typedef struct { - unsigned char opp_flag ; /* the opp flag */ - unsigned char command ; /* the command code */ - unsigned short buffer_length ; /* the data length */ - unsigned char return_code ; /* the return code */ - unsigned char PF_bit ; /* the HDLC P/F bit */ - char MB_reserved[NUMBER_HDLC_MB_RES_BYTES] ; /* for later use */ - char data[SIZEOF_HDLC_MB_DATA_BFR] ; /* the data area */ + unsigned char opp_flag PACKED; /* the opp flag */ + unsigned char command PACKED; /* the command code */ + unsigned short buffer_length PACKED; /* the data length */ + unsigned char return_code PACKED; /* the return code */ + unsigned char PF_bit PACKED; /* the HDLC P/F bit */ + char MB_reserved[NUMBER_HDLC_MB_RES_BYTES] PACKED; /* for later use */ + char data[SIZEOF_HDLC_MB_DATA_BFR] PACKED; /* the data area */ } TRUE_HDLC_MAILBOX_STRUCT; typedef struct { - pid_t pid_num ; - HDLC_MAILBOX_STRUCT cmdarea ; + pid_t pid_num PACKED; + HDLC_MAILBOX_STRUCT cmdarea PACKED; } CMDBLOCK_STRUCT; @@ -287,9 +294,9 @@ typedef struct { typedef struct { - unsigned char trace_config ; /* trace configuration */ - unsigned short trace_deactivation_timer ; /* trace deactivation timer */ - unsigned long ptr_trace_stat_el_cfg_struct ; /* a pointer to the line trace element configuration structure */ + unsigned char trace_config PACKED; /* trace configuration */ + unsigned short trace_deactivation_timer PACKED; /* trace deactivation timer */ + unsigned long ptr_trace_stat_el_cfg_struct PACKED; /* a pointer to the line trace element configuration structure */ } LINE_TRACE_CONFIG_STRUCT; @@ -308,11 +315,11 @@ typedef struct { typedef struct { - unsigned short number_trace_status_elements ; /* number of line trace elements */ - unsigned long base_addr_trace_status_elements ;/* base address of the trace element list */ - unsigned long next_trace_element_to_use ; /* pointer to the next trace element to be used */ - unsigned long base_addr_trace_buffer ; /* base address of the trace data buffer */ - unsigned long end_addr_trace_buffer ; /* end address of the trace data buffer */ + unsigned short number_trace_status_elements PACKED; /* number of line trace elements */ + unsigned long base_addr_trace_status_elements PACKED;/* base address of the trace element list */ + unsigned long next_trace_element_to_use PACKED; /* pointer to the next trace element to be used */ + unsigned long base_addr_trace_buffer PACKED; /* base address of the trace data buffer */ + unsigned long end_addr_trace_buffer PACKED; /* end address of the trace data buffer */ } TRACE_STATUS_EL_CFG_STRUCT; @@ -322,13 +329,13 @@ typedef struct { typedef struct { - unsigned char opp_flag ; /* opp flag */ - unsigned short trace_length ; /* trace length */ - unsigned char trace_type ; /* trace type */ - unsigned short trace_time_stamp ;/* time stamp */ - unsigned short trace_reserved_1 ;/* reserved for later use */ - unsigned long trace_reserved_2 ; /* reserved for later use */ - unsigned long ptr_data_bfr ; /* pointer to the trace data buffer */ + unsigned char opp_flag PACKED; /* opp flag */ + unsigned short trace_length PACKED; /* trace length */ + unsigned char trace_type PACKED; /* trace type */ + unsigned short trace_time_stamp PACKED;/* time stamp */ + unsigned short trace_reserved_1 PACKED;/* reserved for later use */ + unsigned long trace_reserved_2 PACKED; /* reserved for later use */ + unsigned long ptr_data_bfr PACKED; /* pointer to the trace data buffer */ } TRACE_STATUS_ELEMENT_STRUCT; @@ -359,24 +366,24 @@ typedef struct { typedef struct { - unsigned long baud_rate ; /* the baud rate */ - unsigned short line_config_options ; /* line configuration options */ - unsigned short modem_config_options ; /* modem configuration options */ - unsigned short HDLC_API_options ; /* HDLC API options */ - unsigned short HDLC_protocol_options ; /* HDLC protocol options */ - unsigned short HDLC_buffer_config_options ; /* HDLC buffer configuration options */ - unsigned short HDLC_statistics_options ; /* HDLC operational statistics options */ - unsigned short configured_as_DTE ; /* DTE or DCE configuration */ - unsigned short max_HDLC_I_field_length ; /* the maximum length of the HDLC I-field */ - unsigned short HDLC_I_frame_window ; /* k - the I-frame window (maximum number of outstanding I-frames) */ - unsigned short HDLC_T1_timer ; /* the HDLC T1 timer */ - unsigned short HDLC_T2_timer ; /* the HDLC T2 timer */ - unsigned short HDLC_T3_timer ; /* the HDLC T3 timer */ - unsigned short HDLC_T4_timer ; /* the HDLC T4 timer */ - unsigned short HDLC_N2_counter ; /* the HDLC N2 counter */ - unsigned long ptr_shared_mem_info_struct ;/* a pointer to the shared memory area information structure */ - unsigned long ptr_HDLC_Tx_stat_el_cfg_struct ;/* a pointer to the transmit status element configuration structure */ - unsigned long ptr_HDLC_Rx_stat_el_cfg_struct ;/* a pointer to the receive status element configuration structure */ + unsigned long baud_rate PACKED; /* the baud rate */ + unsigned short line_config_options PACKED; /* line configuration options */ + unsigned short modem_config_options PACKED; /* modem configuration options */ + unsigned short HDLC_API_options PACKED; /* HDLC API options */ + unsigned short HDLC_protocol_options PACKED; /* HDLC protocol options */ + unsigned short HDLC_buffer_config_options PACKED; /* HDLC buffer configuration options */ + unsigned short HDLC_statistics_options PACKED; /* HDLC operational statistics options */ + unsigned short configured_as_DTE PACKED; /* DTE or DCE configuration */ + unsigned short max_HDLC_I_field_length PACKED; /* the maximum length of the HDLC I-field */ + unsigned short HDLC_I_frame_window PACKED; /* k - the I-frame window (maximum number of outstanding I-frames) */ + unsigned short HDLC_T1_timer PACKED; /* the HDLC T1 timer */ + unsigned short HDLC_T2_timer PACKED; /* the HDLC T2 timer */ + unsigned short HDLC_T3_timer PACKED; /* the HDLC T3 timer */ + unsigned short HDLC_T4_timer PACKED; /* the HDLC T4 timer */ + unsigned short HDLC_N2_counter PACKED; /* the HDLC N2 counter */ + unsigned long ptr_shared_mem_info_struct PACKED;/* a pointer to the shared memory area information structure */ + unsigned long ptr_HDLC_Tx_stat_el_cfg_struct PACKED;/* a pointer to the transmit status element configuration structure */ + unsigned long ptr_HDLC_Rx_stat_el_cfg_struct PACKED;/* a pointer to the receive status element configuration structure */ } HDLC_CONFIGURATION_STRUCT; @@ -603,9 +610,9 @@ typedef struct { */ typedef struct { - unsigned char interrupt_type ; /* type of interrupt triggered */ - unsigned char interrupt_permission ; /* interrupt permission mask */ - unsigned char int_info_reserved[14] ; /* reserved */ + unsigned char interrupt_type PACKED; /* type of interrupt triggered */ + unsigned char interrupt_permission PACKED; /* interrupt permission mask */ + unsigned char int_info_reserved[14] PACKED; /* reserved */ } HDLC_INTERRUPT_INFO_STRUCT; @@ -632,9 +639,9 @@ typedef struct { typedef struct { - unsigned short number_Tx_status_elements ; /* number of transmit status elements */ - unsigned long base_addr_Tx_status_elements ; /* base address of the transmit element list */ - unsigned long next_Tx_status_element_to_use ; /* pointer to the next transmit element to be used */ + unsigned short number_Tx_status_elements PACKED; /* number of transmit status elements */ + unsigned long base_addr_Tx_status_elements PACKED; /* base address of the transmit element list */ + unsigned long next_Tx_status_element_to_use PACKED; /* pointer to the next transmit element to be used */ } HDLC_TX_STATUS_EL_CFG_STRUCT; @@ -643,12 +650,12 @@ typedef struct { */ typedef struct { - unsigned char opp_flag ; /* opp flag */ - unsigned short I_frame_length ; /* length of the frame*/ - unsigned char P_bit ; /* P-bit setting in the frame */ - unsigned long reserved_1 ; /* reserved for internal use */ - unsigned long reserved_2 ; /* reserved for internal use */ - unsigned long ptr_data_bfr ; /* pointer to the data area */ + unsigned char opp_flag PACKED; /* opp flag */ + unsigned short I_frame_length PACKED; /* length of the frame*/ + unsigned char P_bit PACKED; /* P-bit setting in the frame */ + unsigned long reserved_1 PACKED; /* reserved for internal use */ + unsigned long reserved_2 PACKED; /* reserved for internal use */ + unsigned long ptr_data_bfr PACKED; /* pointer to the data area */ } HDLC_I_FRM_TX_STATUS_EL_STRUCT; @@ -664,11 +671,11 @@ typedef struct { typedef struct { - unsigned short number_Rx_status_elements ; /* number of receive status elements */ - unsigned long base_addr_Rx_status_elements ; /* base address of the receive element list */ - unsigned long next_Rx_status_element_to_use ; /* pointer to the next receive element to be used */ - unsigned long base_addr_Rx_buffer ; /* base address of the receive data buffer */ - unsigned long end_addr_Rx_buffer ; /* end address of the receive data buffer */ + unsigned short number_Rx_status_elements PACKED; /* number of receive status elements */ + unsigned long base_addr_Rx_status_elements PACKED; /* base address of the receive element list */ + unsigned long next_Rx_status_element_to_use PACKED; /* pointer to the next receive element to be used */ + unsigned long base_addr_Rx_buffer PACKED; /* base address of the receive data buffer */ + unsigned long end_addr_Rx_buffer PACKED; /* end address of the receive data buffer */ } HDLC_RX_STATUS_EL_CFG_STRUCT; /* @@ -676,12 +683,12 @@ typedef struct { */ typedef struct { - unsigned char opp_flag ; /* opp flag */ - unsigned short I_frame_length ; /*length of the recvd frame */ - unsigned char P_bit ; /* P-bit setting in the frame */ - unsigned long reserved_1 ; /* reserved for internal use */ - unsigned long reserved_2 ; /* reserved for internal use */ - unsigned long ptr_data_bfr ; /* pointer to the data area */ + unsigned char opp_flag PACKED; /* opp flag */ + unsigned short I_frame_length PACKED; /*length of the recvd frame */ + unsigned char P_bit PACKED; /* P-bit setting in the frame */ + unsigned long reserved_1 PACKED; /* reserved for internal use */ + unsigned long reserved_2 PACKED; /* reserved for internal use */ + unsigned long ptr_data_bfr PACKED; /* pointer to the data area */ } HDLC_I_FRM_RX_STATUS_EL_STRUCT; @@ -699,12 +706,12 @@ typedef struct { typedef struct { - unsigned char global_status ; /* global status */ - unsigned char modem_status ;/* current modem status*/ - unsigned char global_excep_conditions ; /* global exception conditions */ - unsigned char glob_info_reserved[5] ; /* reserved */ - unsigned char code_name[4] ; /* code name */ - unsigned char code_version[4] ; /* code version */ + unsigned char global_status PACKED; /* global status */ + unsigned char modem_status PACKED;/* current modem status*/ + unsigned char global_excep_conditions PACKED; /* global exception conditions */ + unsigned char glob_info_reserved[5] PACKED; /* reserved */ + unsigned char code_name[4] PACKED; /* code name */ + unsigned char code_version[4] PACKED; /* code version */ } GLOBAL_INFORMATION_STRUCT; @@ -715,9 +722,9 @@ typedef struct { typedef struct { - unsigned char parallel_port_A_input ; /* input - parallel port A */ - unsigned char parallel_port_B_input ; /* input - parallel port B */ - unsigned char FT1_info_reserved[14] ; /* reserved */ + unsigned char parallel_port_A_input PACKED; /* input - parallel port A */ + unsigned char parallel_port_B_input PACKED; /* input - parallel port B */ + unsigned char FT1_info_reserved[14] PACKED; /* reserved */ } FT1_INFORMATION_STRUCT; @@ -727,14 +734,14 @@ typedef struct { typedef struct { - unsigned char HDLC_status ; /* HDLC status */ - unsigned char HDLC_excep_frms_Rx ; /* HDLC exception conditions - received frames */ - unsigned char HDLC_excep_frms_Tx ; /* HDLC exception conditions - transmitted frames */ - unsigned char HDLC_excep_miscellaneous ; /* HDLC exception conditions - miscellaneous */ - unsigned char rotating_SUP_frm_count ; /* rotating Supervisory frame count */ - unsigned char LAPB_status ; /* internal LAPB status */ - unsigned char internal_HDLC_status ; /* internal HDLC status */ - unsigned char HDLC_info_reserved[9] ; /* reserved */ + unsigned char HDLC_status PACKED; /* HDLC status */ + unsigned char HDLC_excep_frms_Rx PACKED; /* HDLC exception conditions - received frames */ + unsigned char HDLC_excep_frms_Tx PACKED; /* HDLC exception conditions - transmitted frames */ + unsigned char HDLC_excep_miscellaneous PACKED; /* HDLC exception conditions - miscellaneous */ + unsigned char rotating_SUP_frm_count PACKED; /* rotating Supervisory frame count */ + unsigned char LAPB_status PACKED; /* internal LAPB status */ + unsigned char internal_HDLC_status PACKED; /* internal HDLC status */ + unsigned char HDLC_info_reserved[9] PACKED; /* reserved */ } HDLC_INFORMATION_STRUCT; @@ -747,13 +754,9 @@ typedef struct { typedef struct { - GLOBAL_INFORMATION_STRUCT global_info ; /* the global information structure */ - FT1_INFORMATION_STRUCT FT1_info ; /* the S508/FT1 information structure */ - HDLC_INFORMATION_STRUCT HDLC_info ; /* the HDLC information structure */ - HDLC_INTERRUPT_INFO_STRUCT HDLC_interrupt_info ; /* the HDLC interrupt information structure */ + GLOBAL_INFORMATION_STRUCT global_info PACKED; /* the global information structure */ + FT1_INFORMATION_STRUCT FT1_info PACKED; /* the S508/FT1 information structure */ + HDLC_INFORMATION_STRUCT HDLC_info PACKED; /* the HDLC information structure */ + HDLC_INTERRUPT_INFO_STRUCT HDLC_interrupt_info PACKED; /* the HDLC interrupt information structure */ } HDLC_SHARED_MEMORY_INFO_STRUCT; - -#pragma pack() - -#endif diff --git a/patches/kdrivers/include/sdla_mp_fr.h b/patches/kdrivers/include/sdla_mp_fr.h index 1856608..44016f3 100644 --- a/patches/kdrivers/include/sdla_mp_fr.h +++ b/patches/kdrivers/include/sdla_mp_fr.h @@ -5,7 +5,6 @@ #include #include -#pragma pack(1) #undef wan_udphdr_data #define wan_udphdr_data wan_udphdr_u.data @@ -132,8 +131,117 @@ static __inline__ void dlci_to_q922(u8 *hdr, u16 dlci) } -#pragma pack() +#if 0 +/* Special UDP drivers management commands */ +#define FPIPE_ENABLE_TRACING 0x41 +#define FPIPE_DISABLE_TRACING 0x42 +#define FPIPE_GET_TRACE_INFO 0x43 +#define FPIPE_FT1_READ_STATUS 0x44 +#define FPIPE_DRIVER_STAT_IFSEND 0x45 +#define FPIPE_DRIVER_STAT_INTR 0x46 +#define FPIPE_DRIVER_STAT_GEN 0x47 +#define FPIPE_FLUSH_DRIVER_STATS 0x48 +#define FPIPE_ROUTER_UP_TIME 0x49 +#define FPIPE_TE1_56K_STAT 0x50 /* TE1_56K */ +#define FPIPE_GET_MEDIA_TYPE 0x51 /* TE1_56K */ +#define FPIPE_FLUSH_TE1_PMON 0x52 /* TE1 */ +#define FPIPE_READ_REGISTER 0x53 /* TE1_56K */ +#define FPIPE_TE1_CFG 0x54 /* TE1 */ + + +/* UDP management packet layout (data area of ip packet) */ + +typedef struct { + unsigned char control PACKED; + unsigned char NLPID PACKED; +} fr_encap_hdr_t; + +typedef struct { + ip_pkt_t ip_pkt PACKED; + udp_pkt_t udp_pkt PACKED; + wp_mgmt_t wp_mgmt PACKED; + cblock_t cblock PACKED; + unsigned char data[4080] PACKED; +} fr_udp_pkt_t; + + +/*---------------------------------------------------------------------------- + * Global Statistics Block. + * This structure is returned by the FR_READ_STATISTICS command when + * dcli == 0. + */ +typedef struct fr_link_stat +{ + unsigned short rx_too_long PACKED; /* 00h: */ + unsigned short rx_dropped PACKED; /* 02h: */ + unsigned short rx_dropped2 PACKED; /* 04h: */ + unsigned short rx_bad_dlci PACKED; /* 06h: */ + unsigned short rx_bad_format PACKED; /* 08h: */ + unsigned short retransmitted PACKED; /* 0Ah: */ + unsigned short cpe_tx_FSE PACKED; /* 0Ch: */ + unsigned short cpe_tx_LIV PACKED; /* 0Eh: */ + unsigned short cpe_rx_FSR PACKED; /* 10h: */ + unsigned short cpe_rx_LIV PACKED; /* 12h: */ + unsigned short node_rx_FSE PACKED; /* 14h: */ + unsigned short node_rx_LIV PACKED; /* 16h: */ + unsigned short node_tx_FSR PACKED; /* 18h: */ + unsigned short node_tx_LIV PACKED; /* 1Ah: */ + unsigned short rx_ISF_err PACKED; /* 1Ch: */ + unsigned short rx_unsolicited PACKED; /* 1Eh: */ + unsigned short rx_SSN_err PACKED; /* 20h: */ + unsigned short rx_RSN_err PACKED; /* 22h: */ + unsigned short T391_timeouts PACKED; /* 24h: */ + unsigned short T392_timeouts PACKED; /* 26h: */ + unsigned short N392_reached PACKED; /* 28h: */ + unsigned short cpe_SSN_RSN PACKED; /* 2Ah: */ + unsigned short current_SSN PACKED; /* 2Ch: */ + unsigned short current_RSN PACKED; /* 2Eh: */ + unsigned short curreny_T391 PACKED; /* 30h: */ + unsigned short current_T392 PACKED; /* 32h: */ + unsigned short current_N392 PACKED; /* 34h: */ + unsigned short current_N393 PACKED; /* 36h: */ +} fr_link_stat_t; + +/*---------------------------------------------------------------------------- + * DLCI statistics. + * This structure is returned by the FR_READ_STATISTICS command when + * dlci != 0. + */ +typedef struct fr_dlci_stat +{ + unsigned long tx_frames PACKED; /* 00h: */ + unsigned long tx_bytes PACKED; /* 04h: */ + unsigned long rx_frames PACKED; /* 08h: */ + unsigned long rx_bytes PACKED; /* 0Ch: */ + unsigned long rx_dropped PACKED; /* 10h: */ + unsigned long rx_inactive PACKED; /* 14h: */ + unsigned long rx_exceed_CIR PACKED; /* 18h: */ + unsigned long rx_DE_set PACKED; /* 1Ch: */ + unsigned long tx_throughput PACKED; /* 20h: */ + unsigned long tx_calc_timer PACKED; /* 24h: */ + unsigned long rx_throughput PACKED; /* 28h: */ + unsigned long rx_calc_timer PACKED; /* 2Ch: */ +} fr_dlci_stat_t; + +/*---------------------------------------------------------------------------- + * Communications error statistics. + * This structure is returned by the FR_READ_ERROR_STATS command. + */ +typedef struct fr_comm_stat +{ + unsigned char rx_overruns PACKED; /* 00h: */ + unsigned char rx_bad_crc PACKED; /* 01h: */ + unsigned char rx_aborts PACKED; /* 02h: */ + unsigned char rx_too_long PACKED; /* 03h: */ + unsigned char tx_aborts PACKED; /* 04h: */ + unsigned char tx_underruns PACKED; /* 05h: */ + unsigned char tx_missed_undr PACKED; /* 06h: */ + unsigned char dcd_dropped PACKED; /* 07h: */ + unsigned char cts_dropped PACKED; /* 08h: */ +} fr_comm_stat_t; + +#endif typedef struct { diff --git a/patches/kdrivers/include/sdla_ppp.h b/patches/kdrivers/include/sdla_ppp.h index 42d42ab..eca968c 100644 --- a/patches/kdrivers/include/sdla_ppp.h +++ b/patches/kdrivers/include/sdla_ppp.h @@ -27,9 +27,12 @@ * GNU C Linux */ -#include +#ifndef PACKED +# define PACKED __attribute__((packed)) +#endif /* PACKED */ -#pragma pack(1) + +#include /* Adapter memory layout and important constants */ #define PPP508_MB_VECT 0xE000 /* mailbox window vector */ @@ -47,27 +50,27 @@ * PPP Command Block. */ typedef struct ppp_cmd{ - unsigned char command ; /* command code */ - unsigned short length ; /* length of data buffer */ - unsigned char result ; /* return code */ - unsigned char rsrv[11] ; /* reserved for future use */ + unsigned char command PACKED; /* command code */ + unsigned short length PACKED; /* length of data buffer */ + unsigned char result PACKED; /* return code */ + unsigned char rsrv[11] PACKED; /* reserved for future use */ } ppp_cmd_t; typedef struct { - unsigned char status ; - unsigned char data_avail ; - unsigned short real_length ; - unsigned short time_stamp ; - unsigned char data[1] ; + unsigned char status PACKED; + unsigned char data_avail PACKED; + unsigned short real_length PACKED; + unsigned short time_stamp PACKED; + unsigned char data[1] PACKED; } trace_pkt_t; typedef struct { - unsigned char opp_flag ; - unsigned char trace_type ; - unsigned short trace_length ; - unsigned short trace_data_ptr ; - unsigned short trace_time_stamp ; + unsigned char opp_flag PACKED; + unsigned char trace_type PACKED; + unsigned short trace_length PACKED; + unsigned short trace_data_ptr PACKED; + unsigned short trace_time_stamp PACKED; } trace_element_t; @@ -83,9 +86,9 @@ typedef struct { */ typedef struct ppp_mbox { - unsigned char flag ; /* 00h: command execution flag */ - ppp_cmd_t cmd ; /* 01h: command block */ - unsigned char data[1] ; /* 10h: variable length data buffer */ + unsigned char flag PACKED; /* 00h: command execution flag */ + ppp_cmd_t cmd PACKED; /* 01h: command block */ + unsigned char data[1] PACKED; /* 10h: variable length data buffer */ } ppp_mbox_t; #endif /*---------------------------------------------------------------------------- @@ -95,17 +98,17 @@ typedef struct ppp_mbox */ typedef struct ppp_flags { - unsigned char iflag ; /* 00: interrupt flag */ - unsigned char imask ; /* 01: interrupt mask */ - unsigned char resrv ; - unsigned char mstatus ; /* 03: modem status */ - unsigned char lcp_state ; /* 04: LCP state */ - unsigned char ppp_phase ; /* 05: PPP phase */ - unsigned char ip_state ; /* 06: IPCP state */ - unsigned char ipx_state ; /* 07: IPXCP state */ - unsigned char pap_state ; /* 08: PAP state */ - unsigned char chap_state ; /* 09: CHAP state */ - unsigned short disc_cause ; /* 0A: disconnection cause */ + unsigned char iflag PACKED; /* 00: interrupt flag */ + unsigned char imask PACKED; /* 01: interrupt mask */ + unsigned char resrv PACKED; + unsigned char mstatus PACKED; /* 03: modem status */ + unsigned char lcp_state PACKED; /* 04: LCP state */ + unsigned char ppp_phase PACKED; /* 05: PPP phase */ + unsigned char ip_state PACKED; /* 06: IPCP state */ + unsigned char ipx_state PACKED; /* 07: IPXCP state */ + unsigned char pap_state PACKED; /* 08: PAP state */ + unsigned char chap_state PACKED; /* 09: CHAP state */ + unsigned short disc_cause PACKED; /* 0A: disconnection cause */ } ppp_flags_t; /* 'iflag' defines */ @@ -164,16 +167,16 @@ typedef struct ppp_flags */ typedef struct ppp508_buf_info { - unsigned short txb_num ; /* 00: number of transmit buffers */ - unsigned int txb_ptr ; /* 02: pointer to the buffer ctl. */ - unsigned int txb_nxt ; - unsigned char rsrv1[22] ; - unsigned short rxb_num ; /* 20: number of receive buffers */ - unsigned int rxb_ptr ; /* 22: pointer to the buffer ctl. */ - unsigned int rxb1_ptr ; /* 26: pointer to the first buf.ctl. */ - unsigned int rxb_base ; /* 2A: pointer to the buffer base */ - unsigned char rsrv2[2] ; - unsigned int rxb_end ; /* 30: pointer to the buffer end */ + unsigned short txb_num PACKED; /* 00: number of transmit buffers */ + unsigned int txb_ptr PACKED; /* 02: pointer to the buffer ctl. */ + unsigned int txb_nxt PACKED; + unsigned char rsrv1[22] PACKED; + unsigned short rxb_num PACKED; /* 20: number of receive buffers */ + unsigned int rxb_ptr PACKED; /* 22: pointer to the buffer ctl. */ + unsigned int rxb1_ptr PACKED; /* 26: pointer to the first buf.ctl. */ + unsigned int rxb_base PACKED; /* 2A: pointer to the buffer base */ + unsigned char rsrv2[2] PACKED; + unsigned int rxb_end PACKED; /* 30: pointer to the buffer end */ } ppp508_buf_info_t; /*---------------------------------------------------------------------------- @@ -181,17 +184,17 @@ typedef struct ppp508_buf_info */ typedef struct ppp_buf_ctl { - unsigned char flag ; /* 00: 'buffer ready' flag */ - unsigned short length ; /* 01: length of data */ - unsigned char reserved1[1] ; /* 03: */ - unsigned char proto ; /* 04: protocol */ - unsigned short timestamp ; /* 05: time stamp (Rx only) */ - unsigned char reserved2[5] ; /* 07: */ + unsigned char flag PACKED; /* 00: 'buffer ready' flag */ + unsigned short length PACKED; /* 01: length of data */ + unsigned char reserved1[1] PACKED; /* 03: */ + unsigned char proto PACKED; /* 04: protocol */ + unsigned short timestamp PACKED; /* 05: time stamp (Rx only) */ + unsigned char reserved2[5] PACKED; /* 07: */ union { unsigned short o_p[2]; /* 1C: buffer offset & page (S502) */ unsigned int ptr; /* 1C: buffer pointer (S508) */ - } buf ; + } buf PACKED; } ppp_buf_ctl_t; /*---------------------------------------------------------------------------- @@ -199,31 +202,31 @@ typedef struct ppp_buf_ctl */ typedef struct ppp508_conf { - unsigned int line_speed ; /* 00: baud rate, bps */ - unsigned short txbuf_percent ; /* 04: % of Tx buffer */ - unsigned short conf_flags ; /* 06: configuration bits */ - unsigned short mtu_local ; /* 08: local MTU */ - unsigned short mtu_remote ; /* 0A: remote MTU */ - unsigned short restart_tmr ; /* 0C: restart timer */ - unsigned short auth_rsrt_tmr ; /* 0E: authentication timer */ - unsigned short auth_wait_tmr ; /* 10: authentication timer */ - unsigned short mdm_fail_tmr ; /* 12: modem failure timer */ - unsigned short dtr_drop_tmr ; /* 14: DTR drop timer */ - unsigned short connect_tmout ; /* 16: connection timeout */ - unsigned short conf_retry ; /* 18: max. retry */ - unsigned short term_retry ; /* 1A: max. retry */ - unsigned short fail_retry ; /* 1C: max. retry */ - unsigned short auth_retry ; /* 1E: max. retry */ - unsigned char auth_options ; /* 20: authentication opt. */ - unsigned char ip_options ; /* 21: IP options */ - unsigned int ip_local ; /* 22: local IP address */ - unsigned int ip_remote ; /* 26: remote IP address */ - unsigned char ipx_options ; /* 2A: IPX options */ - unsigned char ipx_netno[4] ; /* 2B: IPX net number */ - unsigned char ipx_local[6] ; /* 2F: local IPX node number*/ - unsigned char ipx_remote[6] ; /* 35: remote IPX node num.*/ - unsigned char ipx_router[48] ; /* 3B: IPX router name*/ - unsigned int alt_cpu_clock ; /* 6B: */ + unsigned int line_speed PACKED; /* 00: baud rate, bps */ + unsigned short txbuf_percent PACKED; /* 04: % of Tx buffer */ + unsigned short conf_flags PACKED; /* 06: configuration bits */ + unsigned short mtu_local PACKED; /* 08: local MTU */ + unsigned short mtu_remote PACKED; /* 0A: remote MTU */ + unsigned short restart_tmr PACKED; /* 0C: restart timer */ + unsigned short auth_rsrt_tmr PACKED; /* 0E: authentication timer */ + unsigned short auth_wait_tmr PACKED; /* 10: authentication timer */ + unsigned short mdm_fail_tmr PACKED; /* 12: modem failure timer */ + unsigned short dtr_drop_tmr PACKED; /* 14: DTR drop timer */ + unsigned short connect_tmout PACKED; /* 16: connection timeout */ + unsigned short conf_retry PACKED; /* 18: max. retry */ + unsigned short term_retry PACKED; /* 1A: max. retry */ + unsigned short fail_retry PACKED; /* 1C: max. retry */ + unsigned short auth_retry PACKED; /* 1E: max. retry */ + unsigned char auth_options PACKED; /* 20: authentication opt. */ + unsigned char ip_options PACKED; /* 21: IP options */ + unsigned int ip_local PACKED; /* 22: local IP address */ + unsigned int ip_remote PACKED; /* 26: remote IP address */ + unsigned char ipx_options PACKED; /* 2A: IPX options */ + unsigned char ipx_netno[4] PACKED; /* 2B: IPX net number */ + unsigned char ipx_local[6] PACKED; /* 2F: local IPX node number*/ + unsigned char ipx_remote[6] PACKED; /* 35: remote IPX node num.*/ + unsigned char ipx_router[48] PACKED; /* 3B: IPX router name*/ + unsigned int alt_cpu_clock PACKED; /* 6B: */ } ppp508_conf_t; /*---------------------------------------------------------------------------- @@ -232,17 +235,17 @@ typedef struct ppp508_conf */ typedef struct ppp508_connect_info { - unsigned short mru ; /* 00-01 Remote Max Rec' Unit */ - unsigned char ip_options ; /* 02: Negotiated ip options */ - unsigned int ip_local ; /* 03-06: local IP address */ - unsigned int ip_remote ; /* 07-0A: remote IP address */ - unsigned char ipx_options ; /* 0B: Negotiated ipx options */ - unsigned char ipx_netno[4] ; /* 0C-0F: IPX net number */ - unsigned char ipx_local[6] ; /* 10-1F: local IPX node # */ - unsigned char ipx_remote[6] ; /* 16-1B: remote IPX node # */ - unsigned char ipx_router[48] ; /* 1C-4B: IPX router name */ - unsigned char auth_status ; /* 4C: Authentication Status */ - unsigned char inbd_auth_peerID[1] ; /* 4D: variable length inbound authenticated peer ID */ + unsigned short mru PACKED; /* 00-01 Remote Max Rec' Unit */ + unsigned char ip_options PACKED; /* 02: Negotiated ip options */ + unsigned int ip_local PACKED; /* 03-06: local IP address */ + unsigned int ip_remote PACKED; /* 07-0A: remote IP address */ + unsigned char ipx_options PACKED; /* 0B: Negotiated ipx options */ + unsigned char ipx_netno[4] PACKED; /* 0C-0F: IPX net number */ + unsigned char ipx_local[6] PACKED; /* 10-1F: local IPX node # */ + unsigned char ipx_remote[6] PACKED; /* 16-1B: remote IPX node # */ + unsigned char ipx_router[48] PACKED; /* 1C-4B: IPX router name */ + unsigned char auth_status PACKED; /* 4C: Authentication Status */ + unsigned char inbd_auth_peerID[1] PACKED; /* 4D: variable length inbound authenticated peer ID */ } ppp508_connect_info_t; /* 'line_speed' field */ @@ -287,10 +290,10 @@ typedef struct ppp508_connect_info */ typedef struct ppp508_get_conf { - unsigned int bps ; /* 00: baud rate, bps */ - ppp508_conf_t conf ; /* 04: requested config. */ - unsigned short txb_num ; /* 6F: number of Tx buffers */ - unsigned short rxb_num ; /* 71: number of Rx buffers */ + unsigned int bps PACKED; /* 00: baud rate, bps */ + ppp508_conf_t conf PACKED; /* 04: requested config. */ + unsigned short txb_num PACKED; /* 6F: number of Tx buffers */ + unsigned short rxb_num PACKED; /* 71: number of Rx buffers */ } ppp508_get_conf_t; /*---------------------------------------------------------------------------- @@ -298,13 +301,13 @@ typedef struct ppp508_get_conf */ typedef struct ppp508_stats { - unsigned short reserved1 ; /* 00: */ - unsigned short rx_bad_len ; /* 02: */ - unsigned short reserved2 ; /* 04: */ - unsigned int tx_frames ; /* 06: */ - unsigned int tx_bytes ; /* 0A: */ - unsigned int rx_frames ; /* 0E: */ - unsigned int rx_bytes ; /* 12: */ + unsigned short reserved1 PACKED; /* 00: */ + unsigned short rx_bad_len PACKED; /* 02: */ + unsigned short reserved2 PACKED; /* 04: */ + unsigned int tx_frames PACKED; /* 06: */ + unsigned int tx_bytes PACKED; /* 0A: */ + unsigned int rx_frames PACKED; /* 0E: */ + unsigned int rx_bytes PACKED; /* 12: */ } ppp508_stats_t; /*---------------------------------------------------------------------------- @@ -312,25 +315,25 @@ typedef struct ppp508_stats */ typedef struct ppp_err_stats { - unsigned char rx_overrun ; /* 00: Rx overrun errors */ - unsigned char rx_bad_crc ; /* 01: Rx CRC errors */ - unsigned char rx_abort ; /* 02: Rx aborted frames */ - unsigned char rx_lost ; /* 03: Rx frames lost */ - unsigned char tx_abort ; /* 04: Tx aborted frames */ - unsigned char tx_underrun ; /* 05: Tx underrun errors */ - unsigned char tx_missed_intr ; /* 06: Tx underruns missed */ - unsigned char reserved ; /* 07: Tx underruns missed */ - unsigned char dcd_trans ; /* 08: DCD transitions */ - unsigned char cts_trans ; /* 09: CTS transitions */ + unsigned char rx_overrun PACKED; /* 00: Rx overrun errors */ + unsigned char rx_bad_crc PACKED; /* 01: Rx CRC errors */ + unsigned char rx_abort PACKED; /* 02: Rx aborted frames */ + unsigned char rx_lost PACKED; /* 03: Rx frames lost */ + unsigned char tx_abort PACKED; /* 04: Tx aborted frames */ + unsigned char tx_underrun PACKED; /* 05: Tx underrun errors */ + unsigned char tx_missed_intr PACKED; /* 06: Tx underruns missed */ + unsigned char reserved PACKED; /* 07: Tx underruns missed */ + unsigned char dcd_trans PACKED; /* 08: DCD transitions */ + unsigned char cts_trans PACKED; /* 09: CTS transitions */ } ppp_err_stats_t; /* Data structure for SET_TRIGGER_INTR command */ typedef struct ppp_intr_info{ - unsigned char i_enable ; /* 0 Interrupt enable bits */ - unsigned char irq ; /* 1 Irq number */ - unsigned short timer_len ; /* 2 Timer delay */ + unsigned char i_enable PACKED; /* 0 Interrupt enable bits */ + unsigned char irq PACKED; /* 1 Irq number */ + unsigned short timer_len PACKED; /* 2 Timer delay */ } ppp_intr_info_t; @@ -365,6 +368,7 @@ typedef struct ppp_intr_info{ #define UDPDRV_SIGNATURE "DRVSTATS" #define UDPMGMT_UDP_PROTOCOL 0x11 -#pragma pack() - +#ifdef _MSC_ +# pragma pack() +#endif #endif /* _SDLA_PPP_H */ diff --git a/patches/kdrivers/include/sdla_remora.h b/patches/kdrivers/include/sdla_remora.h index e74be53..599e83d 100644 --- a/patches/kdrivers/include/sdla_remora.h +++ b/patches/kdrivers/include/sdla_remora.h @@ -124,6 +124,8 @@ typedef struct sdla_remora_cfg_ { char opermode_name[WAN_RM_OPERMODE_LEN]; /* int tdmv_law;*/ /* WAN_TDMV_ALAW or WAN_TDMV_MULAW */ int reversepolarity; + int battthresh; + int battdebounce; int network_sync; } sdla_remora_cfg_t; @@ -137,10 +139,11 @@ typedef struct { } wan_remora_fxo_regs_t; typedef struct { - int tip_volt; /* TIP voltage (mV) (FXS) */ - int ring_volt; /* RING voltage (mV) (FXS) */ - int bat_volt; /* VBAT voltage (mV) (FXS) */ - int volt; /* Line voltage status (FXO) */ + int tip_volt; /* TIP voltage (mV) (FXS) */ + int ring_volt; /* RING voltage (mV) (FXS) */ + int bat_volt; /* VBAT voltage (mV) (FXS) */ + int volt; /* Line voltage status (FXO) */ + //u_int8_t hook; /* On/Off hook state */ } wan_remora_stats_t; typedef struct { @@ -173,19 +176,37 @@ struct wan_rm_echo_coefs { #define NUM_CAL_REGS 12 #if !defined(WAN_DEBUG_FE) -# define WRITE_RM_FXS_REG(mod_no,chain,reg,val) \ - fe->write_fe_reg(fe->card,(int)mod_no,(int)MOD_TYPE_FXS,(int)chain,(int)reg,(int)val) -# define READ_RM_FXS_REG(mod_no,chain,reg) \ - fe->read_fe_reg(fe->card, (int)mod_no,(int)MOD_TYPE_FXS,(int)chain,(int)reg) -# define WRITE_RM_FXO_REG(mod_no,chain,reg,val) \ - fe->write_fe_reg(fe->card,(int)mod_no,(int)MOD_TYPE_FXO,(int)chain,(int)reg,(int)val) -# define READ_RM_FXO_REG(mod_no,chain,reg) \ - fe->read_fe_reg(fe->card, (int)mod_no,(int)MOD_TYPE_FXO,(int)chain,(int)reg) +# define WRITE_RM_FXS_REG(mod_no,chain,reg,val) \ + fe->write_fe_reg( fe->card, \ + (int)mod_no, \ + (int)MOD_TYPE_FXS, \ + (int)chain, \ + (int)reg, \ + (int)val) +# define READ_RM_FXS_REG(mod_no,chain,reg) \ + fe->read_fe_reg( fe->card, \ + (int)mod_no, \ + (int)MOD_TYPE_FXS, \ + (int)chain, \ + (int)reg) +# define WRITE_RM_FXO_REG(mod_no,chain,reg,val) \ + fe->write_fe_reg( fe->card, \ + (int)mod_no, \ + (int)MOD_TYPE_FXO, \ + (int)chain, \ + (int)reg, \ + (int)val) +# define READ_RM_FXO_REG(mod_no,chain,reg) \ + fe->read_fe_reg( fe->card, \ + (int)mod_no, \ + (int)MOD_TYPE_FXO, \ + (int)chain, \ + (int)reg) # define WRITE_RM_REG(mod_no,reg,val) \ - fe->write_fe_reg( fe->card, \ - (int)mod_no, \ - fe->rm_param.mod[mod_no].type, \ - fe->rm_param.mod[mod_no].chain, \ + fe->write_fe_reg( fe->card, \ + (int)mod_no, \ + fe->rm_param.mod[mod_no].type, \ + fe->rm_param.mod[mod_no].chain, \ (int)reg, (int)val) # define READ_RM_REG(mod_no,reg) \ fe->read_fe_reg( fe->card, \ @@ -282,12 +303,15 @@ typedef struct { int type; int chain; unsigned long events; + +#if 0 #if defined(__WINDOWS__) wan_event_ctrl_t current_control_event; wan_event_ctrl_t *current_control_event_ptr; #else WAN_LIST_HEAD(, wan_event_ctrl_) event_head; #endif +#endif /* TDM Voice applications */ int sig; /* Special fxs/fxo settings */ @@ -298,21 +322,32 @@ typedef struct { } wp_remora_module_t; +typedef struct { +// u_int16_t type; + int mod_no; /* A200-Remora */ + unsigned char ec_dtmf_port; /* EC DTMF: SOUT or ROUT */ + unsigned long ts_map; + u_int8_t tone; + int ohttimer; /* On-hook transfer */ + int polarity; /* SETPOLARITY */ +} sdla_rm_event_t; + typedef struct sdla_remora_param { int not_used; wp_remora_module_t mod[MAX_REMORA_MODULES]; - unsigned long module_map; /* Map of available module */ - int max_fe_channels; /* Number of available modules */ + u32 module_map; /* Map of available module */ + u16 max_fe_channels;/* Number of available modules */ - unsigned char critical; - wan_timer_t timer; - unsigned char timer_cmd; - int timer_mod_no; + u8 critical; +// wan_timer_t timer; +// u8 timer_cmd; +// u16 timer_mod_no; +// u16 timer_delay; - u32 intcount; - unsigned long last_watchdog; + u32 intcount; + unsigned long last_watchdog; } sdla_remora_param_t; diff --git a/patches/kdrivers/include/sdla_tdmv.h b/patches/kdrivers/include/sdla_tdmv.h index acd7d06..f69221c 100644 --- a/patches/kdrivers/include/sdla_tdmv.h +++ b/patches/kdrivers/include/sdla_tdmv.h @@ -76,9 +76,9 @@ typedef struct wan_tdmv_ typedef struct wan_tdmv_iface_ { int (*check_mtu)(void*, unsigned long, int *); - int (*create)(void* pcard, wan_xilinx_conf_t *conf); + int (*create)(void* pcard, wan_tdmv_conf_t*); int (*remove)(void* pcard); - int (*reg)(void*, wanif_conf_t*, netdevice_t*); + int (*reg)(void*, wan_tdmv_if_conf_t*, unsigned int, unsigned char,netdevice_t*); int (*unreg)(void* pcard, unsigned long ts_map); int (*software_init)(wan_tdmv_t*); int (*state)(void*, int); diff --git a/patches/kdrivers/include/sdla_te1.h b/patches/kdrivers/include/sdla_te1.h index 571b567..b8da82c 100644 --- a/patches/kdrivers/include/sdla_te1.h +++ b/patches/kdrivers/include/sdla_te1.h @@ -29,7 +29,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: sdla_te1.h,v 1.47 2006/10/17 16:07:42 sangoma Exp $ + * $Id: sdla_te1.h,v 1.57 2007/04/04 16:25:49 sangoma Exp $ */ /***************************************************************************** @@ -122,6 +122,10 @@ #define WAN_TE_BIT_LIU_ALARM_OC 0x0002 #define WAN_TE_BIT_LIU_ALARM_LOS 0x0004 +/* T1/E1 statistics bit mask */ +#define WAN_TE_STATS_BIT_ALARM 0x0001 +#define WAN_TE_STATS_BIT_RXLEVEL 0x0002 + /* For T1 only */ #define WAN_T1_LBO_0_DB 0x01 #define WAN_T1_LBO_75_DB 0x02 @@ -189,20 +193,12 @@ #define WAN_TE1_REFCLK_LINE3 0x03 #define WAN_TE1_REFCLK_LINE4 0x04 -/* E1 signalling insertion mode */ -#define WAN_TE1_SIG_NONE 0x00 /* default */ -#define WAN_TE1_SIG_CCS 0x01 /* E1 CCS - default */ -#define WAN_TE1_SIG_CAS 0x02 /* E1 CAS */ -#define TE1SIG_DECODE(fe_cfg) \ - ((FE_SIG_MODE(fe_cfg)) == WAN_TE1_SIG_CCS) ? "CCS" : \ - ((FE_SIG_MODE(fe_cfg)) == WAN_TE1_SIG_CAS) ? "CAS" : \ - "Unknown" - /* Loopback commands (T1.107-1995 p.44) */ #define LINELB_TE1_TIMER 40 /* 40ms */ #define LINELB_CODE_CNT 10 /* no. of repetitions for lb_code */ #define LINELB_CHANNEL_CNT 10 /* no. of repetitions for channel */ -#define RBOC_CODE_YEL 0x00 + +#define RBOC_CODE_YEL 0x00 #define LINELB_ACTIVATE_CODE 0x07 #define LINELB_DEACTIVATE_CODE 0x1C #define LINELB_DS3LINE 0x1B @@ -248,6 +244,7 @@ #define LINELB_CODE_BIT 0x04 #define LINELB_CHANNEL_BIT 0x05 #define TE_CONFIGURED 0x06 +#define TE_TIMER_EVENT_PENDING 0x07 /* TE1 timer flags (polling) */ #define TE_LINELB_TIMER 0x01 @@ -260,7 +257,9 @@ #define TE_SET_LB_MODE 0x08 #define TE_RBS_ENABLE 0x09 #define TE_RBS_DISABLE 0x0A -#define TE_POLL_CFG 0x0B +#define TE_POLL_CONFIG 0x0B +#define TE_POLL_READ 0x0C +#define TE_POLL_WRITE 0x0D /* TE1 T1/E1 interrupt setting delay */ #define INTR_TE1_TIMER 150 /* 50 ms */ @@ -275,12 +274,12 @@ #define IS_E1_CARD(card) IS_E1_FEMEDIA(&(card)->fe) #define IS_TE1_CARD(card) IS_TE1_FEMEDIA(&(card)->fe) -#define FE_LBO(fe_cfg) (fe_cfg)->cfg.te_cfg.lbo -#define FE_CLK(fe_cfg) (fe_cfg)->cfg.te_cfg.te_clock -#define FE_REFCLK(fe_cfg) (fe_cfg)->cfg.te_cfg.te_ref_clock -#define HIMPEDANCE_MODE(fe_cfg) (fe_cfg)->cfg.te_cfg.high_impedance_mode -#define FE_ACTIVE_CH(fe_cfg) (fe_cfg)->cfg.te_cfg.active_ch -#define FE_SIG_MODE(fe_cfg) (fe_cfg)->cfg.te_cfg.sig_mode +#define FE_LBO(fe_cfg) (fe_cfg)->cfg.te_cfg.lbo +#define FE_CLK(fe_cfg) (fe_cfg)->cfg.te_cfg.te_clock +#define FE_REFCLK(fe_cfg) (fe_cfg)->cfg.te_cfg.te_ref_clock +#define FE_HIMPEDANCE_MODE(fe_cfg) (fe_cfg)->cfg.te_cfg.high_impedance_mode +#define FE_ACTIVE_CH(fe_cfg) (fe_cfg)->cfg.te_cfg.active_ch +#define FE_SIG_MODE(fe_cfg) (fe_cfg)->cfg.te_cfg.sig_mode #define GET_TE_CHANNEL_RANGE(fe) \ (IS_T1_FEMEDIA(fe) ? NUM_OF_T1_CHANNELS :\ @@ -328,8 +327,14 @@ (FE_LBO(fe_cfg) == WAN_E1_75) ? "75OH" : \ "Unknown" -#define WAN_TE1_SIG_DECODE(fe) TE1SIG_DECODE(&((fe)->fe_cfg)) - +/* E1 signalling insertion mode */ +#define WAN_TE1_SIG_NONE 0x00 /* default */ +#define WAN_TE1_SIG_CCS 0x01 /* E1 CCS - default */ +#define WAN_TE1_SIG_CAS 0x02 /* E1 CAS */ +#define TE1SIG_DECODE(fe_cfg) \ + ((FE_SIG_MODE(fe_cfg)) == WAN_TE1_SIG_CCS) ? "CCS" : \ + ((FE_SIG_MODE(fe_cfg)) == WAN_TE1_SIG_CAS) ? "CAS" : \ + "Unknown" /* Front-End UDP command */ #define WAN_FE_GET_STAT (WAN_FE_UDP_CMD_START + 0) @@ -351,34 +356,41 @@ * T1/E1 configuration structures. */ typedef struct sdla_te_cfg { - unsigned char lbo; - unsigned char te_clock; - unsigned long active_ch; - unsigned long te_rbs_ch; - unsigned char high_impedance_mode; - unsigned char te_ref_clock; - unsigned char sig_mode; + u_int8_t lbo; + u_int8_t te_clock; + u_int32_t active_ch; + u_int32_t te_rbs_ch; + u_int8_t high_impedance_mode; + u_int8_t te_ref_clock; + u_int8_t sig_mode; } sdla_te_cfg_t; /* Performamce monitor counters */ typedef struct { - unsigned char mask; - unsigned int lcv_errors; /* Line code violation (T1/E1) */ - unsigned short lcv_diff; - unsigned int bee_errors; /* Bit errors (T1) */ - unsigned short bee_diff; - unsigned int oof_errors; /* Frame out of sync (T1) */ - unsigned short oof_diff; - unsigned int crc4_errors; /* CRC4 errors (E1) */ - unsigned short crc4_diff; - unsigned int fas_errors; /* Frame Aligment Signal (E1)*/ - unsigned short fas_diff; - unsigned int feb_errors; /* Far End Block errors (E1) */ - unsigned short feb_diff; - unsigned int fer_errors; /* Framing bit errors (T1) */ - unsigned short fer_diff; + u_int16_t mask; + u_int32_t lcv_errors; /* Line code violation (T1/E1) */ + u_int16_t lcv_diff; + u_int32_t bee_errors; /* Bit errors (T1) */ + u_int16_t bee_diff; + u_int32_t oof_errors; /* Frame out of sync (T1) */ + u_int16_t oof_diff; + u_int32_t crc4_errors; /* CRC4 errors (E1) */ + u_int16_t crc4_diff; + u_int32_t fas_errors; /* Frame Aligment Signal (E1)*/ + u_int16_t fas_diff; + u_int32_t feb_errors; /* Far End Block errors (E1) */ + u_int16_t feb_diff; + u_int32_t fer_errors; /* Framing bit errors (T1) */ + u_int16_t fer_diff; } sdla_te_pmon_t; +#define WAN_TE_RXLEVEL_LEN 20 +typedef struct { + u_int16_t mask; + sdla_te_pmon_t pmon; + char rxlevel[WAN_TE_RXLEVEL_LEN]; +} sdla_te_stats_t; + /* ****************************************************************************** STRUCTURES AND TYPEDEFS @@ -393,13 +405,15 @@ typedef struct { #define WAN_TE1_LBO(fe) FE_LBO(&((fe)->fe_cfg)) #define WAN_TE1_CLK(fe) FE_CLK(&((fe)->fe_cfg)) #define WAN_TE1_REFCLK(fe) FE_REFCLK(&((fe)->fe_cfg)) -#define WAN_TE1_HI_MODE(fe) HIMPEDANCE_MODE(&((fe)->fe_cfg)) +#define WAN_TE1_HI_MODE(fe) FE_HIMPEDANCE_MODE(&((fe)->fe_cfg)) #define WAN_TE1_ACTIVE_CH(fe) FE_ACTIVE_CH(&((fe)->fe_cfg)) #define WAN_TE1_SIG_MODE(fe) FE_SIG_MODE(&((fe)->fe_cfg)) #define TE_LBO_DECODE(fe) LBO_DECODE(&((fe)->fe_cfg)) #define TE_CLK_DECODE(fe) TECLK_DECODE(&((fe)->fe_cfg)) +#define WAN_TE1_SIG_DECODE(fe) TE1SIG_DECODE(&((fe)->fe_cfg)) + /* Read/Write to front-end register */ #if 0 #if 0 @@ -472,6 +486,15 @@ typedef struct { } te_signaling_status_t; #pragma pack() +typedef struct { + unsigned long ch_map; + int rbs_channel; /* tx rbs per channel */ + unsigned char rbs_abcd; /* tx rbs pec channel */ + unsigned char lb_type; /* loopback type */ + unsigned short reg; /* fe register */ + unsigned char value; /* fe register value */ +} sdla_te_event_t; + typedef struct { unsigned char lb_cmd; unsigned long lb_time; @@ -482,11 +505,12 @@ typedef struct { unsigned char lb_rx_code; unsigned char critical; - wan_timer_t timer; - unsigned char timer_cmd; - unsigned long timer_ch_map; - int timer_channel; /* tx rbs per channel */ - unsigned char timer_abcd; /* tx rbs pec channel */ + + //unsigned char timer_cmd; + //unsigned long timer_ch_map; + //int timer_channel; /* tx rbs per channel */ + //int timer_delay; + //unsigned char timer_abcd; /* tx rbs pec channel */ unsigned char SIGX_chg_30_25; unsigned char SIGX_chg_24_17; @@ -520,6 +544,7 @@ typedef struct { unsigned char xlpg_scale; u_int16_t status_cnt; + } sdla_te_param_t; diff --git a/patches/kdrivers/include/sdla_te1_ds.h b/patches/kdrivers/include/sdla_te1_ds.h index d7d9ab6..2145d0e 100644 --- a/patches/kdrivers/include/sdla_te1_ds.h +++ b/patches/kdrivers/include/sdla_te1_ds.h @@ -29,7 +29,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: sdla_te1_ds.h,v 1.8 2006/10/24 13:35:30 sangoma Exp $ + * $Id: sdla_te1_ds.h,v 1.9 2007/01/04 20:16:01 sangoma Exp $ */ /***************************************************************************** @@ -519,7 +519,6 @@ #define REG_TCR2 0x182 #define BIT_TCR2_TD4RM 0x04 -#define BIT_TCR2_E1_AEBE 0x80 #define REG_TCR3 0x183 #define BIT_TCR3_ODF 0x80 @@ -622,6 +621,14 @@ #define BIT_LLSR_SCD 0x03 #define BIT_LLSR_LOSD 0x01 +#define REG_LRSL 0x1006 +#define REG_LRSL_SHIFT 4 +#define REG_LRSL_MASK 0x0F +#define BIT_LRSL_RSL3 0x80 +#define BIT_LRSL_RSL2 0x40 +#define BIT_LRSL_RSL1 0x20 +#define BIT_LRSL_RSL0 0x10 + #define REG_LRISMR 0x1007 #define BIT_LRISMR_RG703 0x80 #define BIT_LRISMR_RIMPOFF 0x40 diff --git a/patches/kdrivers/include/sdla_te3.h b/patches/kdrivers/include/sdla_te3.h index 73b5af2..6d61969 100644 --- a/patches/kdrivers/include/sdla_te3.h +++ b/patches/kdrivers/include/sdla_te3.h @@ -66,11 +66,11 @@ typedef struct { } sdla_te3_cfg_t; typedef struct { - unsigned int pmon_lcv; - unsigned int pmon_framing; - unsigned int pmon_parity; - unsigned int pmon_febe; - unsigned int pmon_cpbit; + u_int32_t pmon_lcv; + u_int32_t pmon_framing; + u_int32_t pmon_parity; + u_int32_t pmon_febe; + u_int32_t pmon_cpbit; } sdla_te3_pmon_t; #define IS_DS3(cfg) ((cfg)->media == WAN_MEDIA_DS3) diff --git a/patches/kdrivers/include/sdla_x25.h b/patches/kdrivers/include/sdla_x25.h index 4efcb9e..47b66c9 100644 --- a/patches/kdrivers/include/sdla_x25.h +++ b/patches/kdrivers/include/sdla_x25.h @@ -26,9 +26,11 @@ * */ -#include +#ifndef PACKED +# define PACKED __attribute__((packed)) +#endif /* PACKED */ -#pragma pack(1) +#include /****** CONSTANTS DEFINITIONS ***********************************************/ @@ -58,16 +60,16 @@ */ typedef struct X25Cmd { - unsigned char command ; /* command code */ - unsigned short length ; /* transfer data length */ - unsigned char result ; /* return code */ - unsigned char pf ; /* P/F bit */ - unsigned short lcn ; /* logical channel */ - unsigned char qdm ; /* Q/D/M bits */ - unsigned char cause ; /* cause field */ - unsigned char diagn ; /* diagnostics */ - unsigned char pktType ; /* packet type */ - unsigned char resrv[4] ; /* reserved */ + unsigned char command PACKED; /* command code */ + unsigned short length PACKED; /* transfer data length */ + unsigned char result PACKED; /* return code */ + unsigned char pf PACKED; /* P/F bit */ + unsigned short lcn PACKED; /* logical channel */ + unsigned char qdm PACKED; /* Q/D/M bits */ + unsigned char cause PACKED; /* cause field */ + unsigned char diagn PACKED; /* diagnostics */ + unsigned char pktType PACKED; /* packet type */ + unsigned char resrv[4] PACKED; /* reserved */ } TX25Cmd; /* @@ -236,9 +238,9 @@ typedef struct X25Cmd */ typedef struct X25Mbox { - unsigned char opflag ; /* 00h: execution flag */ - TX25Cmd cmd ; /* 01h: command block */ - unsigned char data[1] ; /* 10h: data buffer */ + unsigned char opflag PACKED; /* 00h: execution flag */ + TX25Cmd cmd PACKED; /* 01h: command block */ + unsigned char data[1] PACKED; /* 10h: data buffer */ } TX25Mbox; /*---------------------------------------------------------------------------- @@ -246,11 +248,11 @@ typedef struct X25Mbox */ typedef struct X25TimeStamp { - unsigned char month ; - unsigned char date ; - unsigned char sec ; - unsigned char min ; - unsigned char hour ; + unsigned char month PACKED; + unsigned char date PACKED; + unsigned char sec PACKED; + unsigned char min PACKED; + unsigned char hour PACKED; } TX25TimeStamp; /*---------------------------------------------------------------------------- @@ -260,16 +262,16 @@ typedef struct X25TimeStamp */ typedef struct X25Status { - unsigned short pvc_map ; /* 00h: PVC map */ - unsigned short icc_map ; /* 02h: Incomming Chan. map */ - unsigned short twc_map ; /* 04h: Two-way Cnan. map */ - unsigned short ogc_map ; /* 06h: Outgoing Chan. map */ - TX25TimeStamp tstamp ; /* 08h: timestamp (BCD) */ - unsigned char iflags ; /* 0Dh: interrupt flags */ - unsigned char imask ; /* 0Eh: interrupt mask */ - unsigned char resrv ; /* 0Eh: */ - unsigned char gflags ; /* 10h: misc. HDLC/X25 flags */ - unsigned char cflags[X25_MAX_CHAN] ; /* channel status bytes */ + unsigned short pvc_map PACKED; /* 00h: PVC map */ + unsigned short icc_map PACKED; /* 02h: Incomming Chan. map */ + unsigned short twc_map PACKED; /* 04h: Two-way Cnan. map */ + unsigned short ogc_map PACKED; /* 06h: Outgoing Chan. map */ + TX25TimeStamp tstamp PACKED; /* 08h: timestamp (BCD) */ + unsigned char iflags PACKED; /* 0Dh: interrupt flags */ + unsigned char imask PACKED; /* 0Eh: interrupt mask */ + unsigned char resrv PACKED; /* 0Eh: */ + unsigned char gflags PACKED; /* 10h: misc. HDLC/X25 flags */ + unsigned char cflags[X25_MAX_CHAN] PACKED; /* channel status bytes */ } TX25Status; /* @@ -307,9 +309,9 @@ typedef struct X25Status */ typedef struct X25GlobalVars { - unsigned char resrv ; /* 00h: reserved */ - unsigned char dtrCtl ; /* 01h: DTR control code */ - unsigned char resErr ; /* 01h: '1' - reset modem error */ + unsigned char resrv PACKED; /* 00h: reserved */ + unsigned char dtrCtl PACKED; /* 01h: DTR control code */ + unsigned char resErr PACKED; /* 01h: '1' - reset modem error */ } TX25GlobalVars; /* @@ -323,7 +325,7 @@ typedef struct X25GlobalVars */ typedef struct X25ModemStatus { - unsigned char status ; /* 00h: modem status */ + unsigned char status PACKED; /* 00h: modem status */ } TX25ModemStatus; /* @@ -337,11 +339,11 @@ typedef struct X25ModemStatus */ typedef struct X25LinkStatus { - unsigned char txQueued ; /* 00h: queued Tx I-frames*/ - unsigned char rxQueued ; /* 01h: queued Rx I-frames*/ - unsigned char station ; /* 02h: DTE/DCE config. */ - unsigned char reserved ; /* 03h: reserved */ - unsigned char sfTally ; /* 04h: supervisory frame tally */ + unsigned char txQueued PACKED; /* 00h: queued Tx I-frames*/ + unsigned char rxQueued PACKED; /* 01h: queued Rx I-frames*/ + unsigned char station PACKED; /* 02h: DTE/DCE config. */ + unsigned char reserved PACKED; /* 03h: reserved */ + unsigned char sfTally PACKED; /* 04h: supervisory frame tally */ } TX25LinkStatus; /* @@ -355,23 +357,23 @@ typedef struct X25LinkStatus */ typedef struct HdlcStats { /* a number of ... */ - unsigned short rxIFrames ; /* 00h: ready Rx I-frames */ - unsigned short rxNoseq ; /* 02h: frms out-of-sequence */ - unsigned short rxNodata ; /* 04h: I-frms without data */ - unsigned short rxDiscarded ; /* 06h: discarded frames */ - unsigned short rxTooLong ; /* 08h: frames too long */ - unsigned short rxBadAddr ; /* 0Ah: frms with inval.addr*/ - unsigned short txAcked ; /* 0Ch: acknowledged I-frms */ - unsigned short txRetransm ; /* 0Eh: re-transmit. I-frms */ - unsigned short t1Timeout ; /* 10h: T1 timeouts */ - unsigned short rxSABM ; /* 12h: received SABM frames */ - unsigned short rxDISC ; /* 14h: received DISC frames */ - unsigned short rxDM ; /* 16h: received DM frames */ - unsigned short rxFRMR ; /* 18h: FRMR frames received */ - unsigned short txSABM ; /* 1Ah: transm. SABM frames*/ - unsigned short txDISC ; /* 1Ch: transm. DISC frames*/ - unsigned short txDM ; /* 1Eh: transm. DM frames */ - unsigned short txFRMR ; /* 20h: transm. FRMR frames*/ + unsigned short rxIFrames PACKED; /* 00h: ready Rx I-frames */ + unsigned short rxNoseq PACKED; /* 02h: frms out-of-sequence */ + unsigned short rxNodata PACKED; /* 04h: I-frms without data */ + unsigned short rxDiscarded PACKED; /* 06h: discarded frames */ + unsigned short rxTooLong PACKED; /* 08h: frames too long */ + unsigned short rxBadAddr PACKED; /* 0Ah: frms with inval.addr*/ + unsigned short txAcked PACKED; /* 0Ch: acknowledged I-frms */ + unsigned short txRetransm PACKED; /* 0Eh: re-transmit. I-frms */ + unsigned short t1Timeout PACKED; /* 10h: T1 timeouts */ + unsigned short rxSABM PACKED; /* 12h: received SABM frames */ + unsigned short rxDISC PACKED; /* 14h: received DISC frames */ + unsigned short rxDM PACKED; /* 16h: received DM frames */ + unsigned short rxFRMR PACKED; /* 18h: FRMR frames received */ + unsigned short txSABM PACKED; /* 1Ah: transm. SABM frames*/ + unsigned short txDISC PACKED; /* 1Ch: transm. DISC frames*/ + unsigned short txDM PACKED; /* 1Eh: transm. DM frames */ + unsigned short txFRMR PACKED; /* 20h: transm. FRMR frames*/ } THdlcStats; /* --------------------------------------------------------------------------- @@ -379,16 +381,16 @@ typedef struct HdlcStats */ typedef struct HdlcCommErr { /* a number of ... */ - unsigned char rxOverrun ; /* 00h: Rx overrun errors */ - unsigned char rxBadCrc ; /* 01h: Rx CRC errors */ - unsigned char rxAborted ; /* 02h: Rx aborted frames */ - unsigned char rxDropped ; /* 03h: frames lost */ - unsigned char txAborted ; /* 04h: Tx aborted frames */ - unsigned char txUnderrun ; /* 05h: Tx underrun errors */ - unsigned char txMissIntr ; /* 06h: missed underrun ints */ - unsigned char reserved ; /* 07h: reserved */ - unsigned char droppedDCD ; /* 08h: times DCD dropped */ - unsigned char droppedCTS ; /* 09h: times CTS dropped */ + unsigned char rxOverrun PACKED; /* 00h: Rx overrun errors */ + unsigned char rxBadCrc PACKED; /* 01h: Rx CRC errors */ + unsigned char rxAborted PACKED; /* 02h: Rx aborted frames */ + unsigned char rxDropped PACKED; /* 03h: frames lost */ + unsigned char txAborted PACKED; /* 04h: Tx aborted frames */ + unsigned char txUnderrun PACKED; /* 05h: Tx underrun errors */ + unsigned char txMissIntr PACKED; /* 06h: missed underrun ints */ + unsigned char reserved PACKED; /* 07h: reserved */ + unsigned char droppedDCD PACKED; /* 08h: times DCD dropped */ + unsigned char droppedCTS PACKED; /* 09h: times CTS dropped */ } THdlcCommErr; /* --------------------------------------------------------------------------- @@ -396,44 +398,44 @@ typedef struct HdlcCommErr */ typedef struct X25Config { -unsigned char baudRate ; /* 00h: */ - unsigned char t1 ; /* 01h: */ - unsigned char t2 ; /* 02h: */ - unsigned char n2 ; /* 03h: */ - unsigned short hdlcMTU ; /* 04h: */ - unsigned char hdlcWindow ; /* 06h: */ - unsigned char t4 ; /* 07h: */ - unsigned char autoModem ; /* 08h: */ - unsigned char autoHdlc ; /* 09h: */ - unsigned char hdlcOptions ; /* 0Ah: */ - unsigned char station ; /* 0Bh: */ - unsigned char pktWindow ; /* 0Ch: */ - unsigned short defPktSize ; /* 0Dh: */ - unsigned short pktMTU ; /* 0Fh: */ - unsigned short loPVC ; /* 11h: */ - unsigned short hiPVC ; /* 13h: */ - unsigned short loIncommingSVC ; /* 15h: */ - unsigned short hiIncommingSVC ; /* 17h: */ - unsigned short loTwoWaySVC ; /* 19h: */ - unsigned short hiTwoWaySVC ; /* 1Bh: */ - unsigned short loOutgoingSVC ; /* 1Dh: */ - unsigned short hiOutgoingSVC ; /* 1Fh: */ - unsigned short options ; /* 21h: */ - unsigned char responseOpt ; /* 23h: */ - unsigned short facil1 ; /* 24h: */ - unsigned short facil2 ; /* 26h: */ - unsigned short ccittFacil ; /* 28h: */ - unsigned short otherFacil ; /* 2Ah: */ - unsigned short ccittCompat ; /* 2Ch: */ - unsigned char t10t20 ; /* 2Eh: */ - unsigned char t11t21 ; /* 2Fh: */ - unsigned char t12t22 ; /* 30h: */ - unsigned char t13t23 ; /* 31h: */ - unsigned char t16t26 ; /* 32H: */ - unsigned char t28 ; /* 33h: */ - unsigned char r10r20 ; /* 34h: */ - unsigned char r12r22 ; /* 35h: */ - unsigned char r13r23 ; /* 36h: */ +unsigned char baudRate PACKED; /* 00h: */ + unsigned char t1 PACKED; /* 01h: */ + unsigned char t2 PACKED; /* 02h: */ + unsigned char n2 PACKED; /* 03h: */ + unsigned short hdlcMTU PACKED; /* 04h: */ + unsigned char hdlcWindow PACKED; /* 06h: */ + unsigned char t4 PACKED; /* 07h: */ + unsigned char autoModem PACKED; /* 08h: */ + unsigned char autoHdlc PACKED; /* 09h: */ + unsigned char hdlcOptions PACKED; /* 0Ah: */ + unsigned char station PACKED; /* 0Bh: */ + unsigned char pktWindow PACKED; /* 0Ch: */ + unsigned short defPktSize PACKED; /* 0Dh: */ + unsigned short pktMTU PACKED; /* 0Fh: */ + unsigned short loPVC PACKED; /* 11h: */ + unsigned short hiPVC PACKED; /* 13h: */ + unsigned short loIncommingSVC PACKED; /* 15h: */ + unsigned short hiIncommingSVC PACKED; /* 17h: */ + unsigned short loTwoWaySVC PACKED; /* 19h: */ + unsigned short hiTwoWaySVC PACKED; /* 1Bh: */ + unsigned short loOutgoingSVC PACKED; /* 1Dh: */ + unsigned short hiOutgoingSVC PACKED; /* 1Fh: */ + unsigned short options PACKED; /* 21h: */ + unsigned char responseOpt PACKED; /* 23h: */ + unsigned short facil1 PACKED; /* 24h: */ + unsigned short facil2 PACKED; /* 26h: */ + unsigned short ccittFacil PACKED; /* 28h: */ + unsigned short otherFacil PACKED; /* 2Ah: */ + unsigned short ccittCompat PACKED; /* 2Ch: */ + unsigned char t10t20 PACKED; /* 2Eh: */ + unsigned char t11t21 PACKED; /* 2Fh: */ + unsigned char t12t22 PACKED; /* 30h: */ + unsigned char t13t23 PACKED; /* 31h: */ + unsigned char t16t26 PACKED; /* 32H: */ + unsigned char t28 PACKED; /* 33h: */ + unsigned char r10r20 PACKED; /* 34h: */ + unsigned char r12r22 PACKED; /* 35h: */ + unsigned char r13r23 PACKED; /* 36h: */ } TX25Config; #define X25_PACKET_WINDOW 0x02 /* Default value for Window Size */ @@ -442,21 +444,21 @@ unsigned char baudRate ; /* 00h: */ */ typedef struct X25ChanAlloc /*----- Channel allocation -*/ { - unsigned short loPVC ; /* 00h: lowest PVC number */ - unsigned short hiPVC ; /* 02h: highest PVC number */ - unsigned short loIncommingSVC ; /* 04h: lowest incoming SVC */ - unsigned short hiIncommingSVC ; /* 06h: highest incoming SVC */ - unsigned short loTwoWaySVC ; /* 08h: lowest two-way SVC */ - unsigned short hiTwoWaySVC ; /* 0Ah: highest two-way SVC */ - unsigned short loOutgoingSVC ; /* 0Ch: lowest outgoing SVC */ - unsigned short hiOutgoingSVC ; /* 0Eh: highest outgoing SVC */ + unsigned short loPVC PACKED; /* 00h: lowest PVC number */ + unsigned short hiPVC PACKED; /* 02h: highest PVC number */ + unsigned short loIncommingSVC PACKED; /* 04h: lowest incoming SVC */ + unsigned short hiIncommingSVC PACKED; /* 06h: highest incoming SVC */ + unsigned short loTwoWaySVC PACKED; /* 08h: lowest two-way SVC */ + unsigned short hiTwoWaySVC PACKED; /* 0Ah: highest two-way SVC */ + unsigned short loOutgoingSVC PACKED; /* 0Ch: lowest outgoing SVC */ + unsigned short hiOutgoingSVC PACKED; /* 0Eh: highest outgoing SVC */ } TX25ChanAlloc; typedef struct X25ChanCfg /*------ Channel configuration -----*/ { - unsigned char type ; /* 00h: channel type */ - unsigned char txConf ; /* 01h: Tx packet and window sizes */ - unsigned char rxConf ; /* 01h: Rx packet and window sizes */ + unsigned char type PACKED; /* 00h: channel type */ + unsigned char txConf PACKED; /* 01h: Tx packet and window sizes */ + unsigned char rxConf PACKED; /* 01h: Rx packet and window sizes */ } TX25ChanCfg; /* @@ -472,38 +474,38 @@ typedef struct X25ChanCfg /*------ Channel configuration -----*/ */ typedef struct X25Stats { /* number of packets Tx/Rx'ed */ - unsigned short txRestartRqst ; /* 00h: Restart Request */ - unsigned short rxRestartRqst ; /* 02h: Restart Request */ - unsigned short txRestartConf ; /* 04h: Restart Confirmation */ - unsigned short rxRestartConf ; /* 06h: Restart Confirmation */ - unsigned short txResetRqst ; /* 08h: Reset Request */ - unsigned short rxResetRqst ; /* 0Ah: Reset Request */ - unsigned short txResetConf ; /* 0Ch: Reset Confirmation */ - unsigned short rxResetConf ; /* 0Eh: Reset Confirmation */ - unsigned short txCallRequest ; /* 10h: Call Request */ - unsigned short rxCallRequest ; /* 12h: Call Request */ - unsigned short txCallAccept ; /* 14h: Call Accept */ - unsigned short rxCallAccept ; /* 16h: Call Accept */ - unsigned short txClearRqst ; /* 18h: Clear Request */ - unsigned short rxClearRqst ; /* 1Ah: Clear Request */ - unsigned short txClearConf ; /* 1Ch: Clear Confirmation */ - unsigned short rxClearConf ; /* 1Eh: Clear Confirmation */ - unsigned short txDiagnostic ; /* 20h: Diagnostic */ - unsigned short rxDiagnostic ; /* 22h: Diagnostic */ - unsigned short txRegRqst ; /* 24h: Registration Request */ - unsigned short rxRegRqst ; /* 26h: Registration Request */ - unsigned short txRegConf ; /* 28h: Registration Confirm.*/ - unsigned short rxRegConf ; /* 2Ah: Registration Confirm.*/ - unsigned short txInterrupt ; /* 2Ch: Interrupt */ - unsigned short rxInterrupt ; /* 2Eh: Interrupt */ - unsigned short txIntrConf ; /* 30h: Interrupt Confirm. */ - unsigned short rxIntrConf ; /* 32h: Interrupt Confirm. */ - unsigned short txData ; /* 34h: Data */ - unsigned short rxData ; /* 36h: Data */ - unsigned short txRR ; /* 38h: RR */ - unsigned short rxRR ; /* 3Ah: RR */ - unsigned short txRNR ; /* 3Ch: RNR */ - unsigned short rxRNR ; /* 3Eh: RNR */ + unsigned short txRestartRqst PACKED; /* 00h: Restart Request */ + unsigned short rxRestartRqst PACKED; /* 02h: Restart Request */ + unsigned short txRestartConf PACKED; /* 04h: Restart Confirmation */ + unsigned short rxRestartConf PACKED; /* 06h: Restart Confirmation */ + unsigned short txResetRqst PACKED; /* 08h: Reset Request */ + unsigned short rxResetRqst PACKED; /* 0Ah: Reset Request */ + unsigned short txResetConf PACKED; /* 0Ch: Reset Confirmation */ + unsigned short rxResetConf PACKED; /* 0Eh: Reset Confirmation */ + unsigned short txCallRequest PACKED; /* 10h: Call Request */ + unsigned short rxCallRequest PACKED; /* 12h: Call Request */ + unsigned short txCallAccept PACKED; /* 14h: Call Accept */ + unsigned short rxCallAccept PACKED; /* 16h: Call Accept */ + unsigned short txClearRqst PACKED; /* 18h: Clear Request */ + unsigned short rxClearRqst PACKED; /* 1Ah: Clear Request */ + unsigned short txClearConf PACKED; /* 1Ch: Clear Confirmation */ + unsigned short rxClearConf PACKED; /* 1Eh: Clear Confirmation */ + unsigned short txDiagnostic PACKED; /* 20h: Diagnostic */ + unsigned short rxDiagnostic PACKED; /* 22h: Diagnostic */ + unsigned short txRegRqst PACKED; /* 24h: Registration Request */ + unsigned short rxRegRqst PACKED; /* 26h: Registration Request */ + unsigned short txRegConf PACKED; /* 28h: Registration Confirm.*/ + unsigned short rxRegConf PACKED; /* 2Ah: Registration Confirm.*/ + unsigned short txInterrupt PACKED; /* 2Ch: Interrupt */ + unsigned short rxInterrupt PACKED; /* 2Eh: Interrupt */ + unsigned short txIntrConf PACKED; /* 30h: Interrupt Confirm. */ + unsigned short rxIntrConf PACKED; /* 32h: Interrupt Confirm. */ + unsigned short txData PACKED; /* 34h: Data */ + unsigned short rxData PACKED; /* 36h: Data */ + unsigned short txRR PACKED; /* 38h: RR */ + unsigned short rxRR PACKED; /* 3Ah: RR */ + unsigned short txRNR PACKED; /* 3Ch: RNR */ + unsigned short rxRNR PACKED; /* 3Eh: RNR */ } TX25Stats; /*---------------------------------------------------------------------------- @@ -511,12 +513,12 @@ typedef struct X25Stats */ typedef struct X25EventLog { - unsigned char type ; /* 00h: transaction type */ - unsigned short lcn ; /* 01h: logical channel num */ - unsigned char packet ; /* 03h: async packet type */ - unsigned char cause ; /* 04h: X.25 cause field */ - unsigned char diag ; /* 05h: X.25 diag field */ - TX25TimeStamp ts ; /* 06h: time stamp */ + unsigned char type PACKED; /* 00h: transaction type */ + unsigned short lcn PACKED; /* 01h: logical channel num */ + unsigned char packet PACKED; /* 03h: async packet type */ + unsigned char cause PACKED; /* 04h: X.25 cause field */ + unsigned char diag PACKED; /* 05h: X.25 diag field */ + TX25TimeStamp ts PACKED; /* 06h: time stamp */ } TX25EventLog; /* @@ -550,8 +552,8 @@ typedef struct X25EventLog */ typedef struct X25TraceCfg { - unsigned char flags ; /* 00h: trace configuration flags */ - unsigned char timeout ; /* 01h: timeout for trace delay mode*/ + unsigned char flags PACKED; /* 00h: trace configuration flags */ + unsigned char timeout PACKED; /* 01h: timeout for trace delay mode*/ } TX25TraceCfg; /* @@ -571,12 +573,12 @@ typedef struct X25TraceCfg */ typedef struct X25Trace /*----- Trace data structure -------*/ { - unsigned short length ; /* 00h: trace data length */ - unsigned char type ; /* 02h: trace type */ - unsigned char lost_cnt ; /* 03h: N of traces lost */ - TX25TimeStamp tstamp ; /* 04h: mon/date/sec/min/hour */ - unsigned short millisec ; /* 09h: ms time stamp */ - unsigned char data[0] ; /* 0Bh: traced frame */ + unsigned short length PACKED; /* 00h: trace data length */ + unsigned char type PACKED; /* 02h: trace type */ + unsigned char lost_cnt PACKED; /* 03h: N of traces lost */ + TX25TimeStamp tstamp PACKED; /* 04h: mon/date/sec/min/hour */ + unsigned short millisec PACKED; /* 09h: ms time stamp */ + unsigned char data[0] PACKED; /* 0Bh: traced frame */ } TX25Trace; /* @@ -601,17 +603,17 @@ typedef struct X25Trace /*----- Trace data structure -------*/ typedef struct HDLCFrame /*----- DHLC Frame Format ----------*/ { - unsigned char addr ; /* address field */ - unsigned char cntl ; /* control field */ - unsigned char data[0] ; + unsigned char addr PACKED; /* address field */ + unsigned char cntl PACKED; /* control field */ + unsigned char data[0] PACKED; } THDLCFrame; typedef struct X25Pkt /*----- X.25 Paket Format ----------*/ { - unsigned char lcn_hi ; /* 4 MSB of Logical Channel Number */ - unsigned char lcn_lo ; /* 8 LSB of Logical Channel Number */ - unsigned char type ; - unsigned char data[0] ; + unsigned char lcn_hi PACKED; /* 4 MSB of Logical Channel Number */ + unsigned char lcn_lo PACKED; /* 8 LSB of Logical Channel Number */ + unsigned char type PACKED; + unsigned char data[0] PACKED; } TX25Pkt; /* @@ -645,29 +647,29 @@ typedef struct X25Pkt /*----- X.25 Paket Format ----------*/ typedef struct { - TX25Cmd cmd ; - char data[X25_MAX_DATA] ; + TX25Cmd cmd PACKED; + char data[X25_MAX_DATA] PACKED; } mbox_cmd_t; #if 0 typedef struct { - unsigned char qdm ; /* Q/D/M bits */ - unsigned char cause ; /* cause field */ - unsigned char diagn ; /* diagnostics */ - unsigned char pktType ; - unsigned short length ; - unsigned char result ; - unsigned short lcn ; - unsigned short mtu ; - unsigned short mru ; - char reserved[3] ; + unsigned char qdm PACKED; /* Q/D/M bits */ + unsigned char cause PACKED; /* cause field */ + unsigned char diagn PACKED; /* diagnostics */ + unsigned char pktType PACKED; + unsigned short length PACKED; + unsigned char result PACKED; + unsigned short lcn PACKED; + unsigned short mtu PACKED; + unsigned short mru PACKED; + char reserved[3] PACKED; }x25api_hdr_t; typedef struct { - x25api_hdr_t hdr ; - char data[X25_MAX_DATA] ; + x25api_hdr_t hdr PACKED; + char data[X25_MAX_DATA] PACKED; }x25api_t; #endif @@ -687,70 +689,70 @@ typedef struct { #if 0 typedef struct { - unsigned char opp_flag ; /* the opp flag */ - unsigned char command ; /* command code */ - unsigned short length ; /* transfer data length */ - unsigned char result ; /* return code */ - unsigned char pf ; /* P/F bit */ - unsigned short lcn ; /* logical channel */ - unsigned char qdm ; /* Q/D/M bits */ - unsigned char cause ; /* cause field */ - unsigned char diagn ; /* diagnostics */ - unsigned char pktType ; /* packet type */ - unsigned char resrv[4] ; /* reserved */ + unsigned char opp_flag PACKED; /* the opp flag */ + unsigned char command PACKED; /* command code */ + unsigned short length PACKED; /* transfer data length */ + unsigned char result PACKED; /* return code */ + unsigned char pf PACKED; /* P/F bit */ + unsigned short lcn PACKED; /* logical channel */ + unsigned char qdm PACKED; /* Q/D/M bits */ + unsigned char cause PACKED; /* cause field */ + unsigned char diagn PACKED; /* diagnostics */ + unsigned char pktType PACKED; /* packet type */ + unsigned char resrv[4] PACKED; /* reserved */ } cblock_t; typedef struct { - ip_pkt_t ip_pkt ; - udp_pkt_t udp_pkt ; - wp_mgmt_t wp_mgmt ; - cblock_t cblock ; - unsigned char data[4080] ; + ip_pkt_t ip_pkt PACKED; + udp_pkt_t udp_pkt PACKED; + wp_mgmt_t wp_mgmt PACKED; + cblock_t cblock PACKED; + unsigned char data[4080] PACKED; } x25_udp_pkt_t; #endif typedef struct read_hdlc_stat { - unsigned short inf_frames_rx_ok ; - unsigned short inf_frames_rx_out_of_seq ; - unsigned short inf_frames_rx_no_data ; - unsigned short inf_frames_rx_dropped ; - unsigned short inf_frames_rx_data_too_long ; - unsigned short inf_frames_rx_invalid_addr ; - unsigned short inf_frames_tx_ok ; - unsigned short inf_frames_tx_retransmit ; - unsigned short T1_timeouts ; - unsigned short SABM_frames_rx ; - unsigned short DISC_frames_rx ; - unsigned short DM_frames_rx ; - unsigned short FRMR_frames_rx ; - unsigned short SABM_frames_tx ; - unsigned short DISC_frames_tx ; - unsigned short DM_frames_tx ; - unsigned short FRMR_frames_tx ; + unsigned short inf_frames_rx_ok PACKED; + unsigned short inf_frames_rx_out_of_seq PACKED; + unsigned short inf_frames_rx_no_data PACKED; + unsigned short inf_frames_rx_dropped PACKED; + unsigned short inf_frames_rx_data_too_long PACKED; + unsigned short inf_frames_rx_invalid_addr PACKED; + unsigned short inf_frames_tx_ok PACKED; + unsigned short inf_frames_tx_retransmit PACKED; + unsigned short T1_timeouts PACKED; + unsigned short SABM_frames_rx PACKED; + unsigned short DISC_frames_rx PACKED; + unsigned short DM_frames_rx PACKED; + unsigned short FRMR_frames_rx PACKED; + unsigned short SABM_frames_tx PACKED; + unsigned short DISC_frames_tx PACKED; + unsigned short DM_frames_tx PACKED; + unsigned short FRMR_frames_tx PACKED; } read_hdlc_stat_t; typedef struct read_comms_err_stats{ - unsigned char overrun_err_rx ; - unsigned char CRC_err ; - unsigned char abort_frames_rx ; - unsigned char frames_dropped_buf_full ; - unsigned char abort_frames_tx ; - unsigned char transmit_underruns ; - unsigned char missed_tx_underruns_intr ; - unsigned char reserved ; - unsigned char DCD_drop ; - unsigned char CTS_drop ; + unsigned char overrun_err_rx PACKED; + unsigned char CRC_err PACKED; + unsigned char abort_frames_rx PACKED; + unsigned char frames_dropped_buf_full PACKED; + unsigned char abort_frames_tx PACKED; + unsigned char transmit_underruns PACKED; + unsigned char missed_tx_underruns_intr PACKED; + unsigned char reserved PACKED; + unsigned char DCD_drop PACKED; + unsigned char CTS_drop PACKED; } read_comms_err_stats_t; typedef struct trace_data { - unsigned short length ; - unsigned char type ; - unsigned char trace_dropped ; - unsigned char reserved[5] ; - unsigned short timestamp ; - unsigned int sec ; - unsigned int usec ; - unsigned char data[0] ; + unsigned short length PACKED; + unsigned char type PACKED; + unsigned char trace_dropped PACKED; + unsigned char reserved[5] PACKED; + unsigned short timestamp PACKED; + unsigned int sec PACKED; + unsigned int usec PACKED; + unsigned char data[0] PACKED; } trace_data_t; enum {UDP_XPIPE_TYPE}; @@ -783,6 +785,5 @@ enum {UDP_XPIPE_TYPE}; #define TRACE_ALL_HDLC_FRMS 0x40 #define TRACE_DATA_FRMS 0x08 -#pragma pack() #endif /* _SDLA_X25_H */ diff --git a/patches/kdrivers/include/sdla_xilinx.h b/patches/kdrivers/include/sdla_xilinx.h index 7110ba0..ff24743 100644 --- a/patches/kdrivers/include/sdla_xilinx.h +++ b/patches/kdrivers/include/sdla_xilinx.h @@ -1040,7 +1040,7 @@ typedef struct { typedef struct wp_rx_element { - unsigned long dma_addr; + unsigned int dma_addr; unsigned int reg; unsigned int align; unsigned char pkt_error; diff --git a/patches/kdrivers/include/sdladrv.h b/patches/kdrivers/include/sdladrv.h index 2017b83..642c5a3 100644 --- a/patches/kdrivers/include/sdladrv.h +++ b/patches/kdrivers/include/sdladrv.h @@ -29,7 +29,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: sdladrv.h,v 1.62 2006/10/27 14:34:44 sangoma Exp $ + * $Id: sdladrv.h,v 1.69 2007/03/23 15:10:01 sangoma Exp $ */ /***************************************************************************** @@ -42,9 +42,9 @@ * Dec 06, 1995 Gene Kozin Initial version. ***************************************************************************** */ + #ifndef _SDLADRV_H # define _SDLADRV_H - #ifdef __SDLADRV__ # define EXTERN #else @@ -248,6 +248,7 @@ typedef struct sdlahw_card { unsigned char adptr_security; /* Adapter security (AFT cards) */ u16 hwec_chan_no; /* max hwec channels number */ int rm_mod_type[MAX_REMORA_MODULES]; + void *port_ptr_isr_array[SDLA_MAX_PORTS]; WAN_LIST_ENTRY(sdlahw_card) next; } sdlahw_card_t; @@ -307,59 +308,61 @@ typedef struct sdlahw typedef struct sdlahw_iface { - int (*setup)(void*,wandev_conf_t*); - int (*load)(void*,void*, unsigned); - int (*down)(void*); - int (*start)(sdlahw_t* hw, unsigned addr); - int (*hw_halt)(void*); - int (*intack)(void*, uint32_t); - int (*read_int_stat)(void*, uint32_t*); - int (*mapmem)(void*, unsigned long); - int (*check_mismatch)(void*, unsigned char); - int (*getcfg)(void*, int, void*); - int (*isa_read_1)(void* hw, unsigned int offset, u8*); - int (*isa_write_1)(void* hw, unsigned int offset, u8); - int (*io_write_1)(void* hw, unsigned int offset, u8); - int (*io_read_1)(void* hw, unsigned int offset, u8*); - int (*bus_write_1)(void* hw, unsigned int offset, u8); - int (*bus_write_2)(void* hw, unsigned int offset, u16); - int (*bus_write_4)(void* hw, unsigned int offset, u32); - int (*bus_read_1)(void* hw, unsigned int offset, u8*); - int (*bus_read_2)(void* hw, unsigned int offset, u16*); - int (*bus_read_4)(void* hw, unsigned int offset, u32*); - int (*pci_write_config_byte)(void* hw, int reg, u8 value); - int (*pci_write_config_word)(void* hw, int reg, u16 value); - int (*pci_write_config_dword)(void* hw, int reg, u32 value); - int (*pci_read_config_byte)(void* hw, int reg, u8* value); - int (*pci_read_config_word)(void* hw, int reg, u16* value); - int (*pci_read_config_dword)(void* hw, int reg, u32* value); - int (*pci_bridge_write_config_dword)(void* hw, int reg, u32 value); - int (*pci_bridge_read_config_dword)(void* hw, int reg, u32* value); - int (*cmd)(void* phw, unsigned long offset, wan_mbox_t* mbox); - int (*peek)(void*,unsigned long, void*,unsigned); - int (*poke)(void*,unsigned long, void*,unsigned); - int (*poke_byte)(void*,unsigned long, u8); - int (*set_bit)(void*,unsigned long, u8); - int (*clear_bit)(void*,unsigned long,u8); - int (*set_intrhand)(void*, void (*isr_func)(void*), void*,int); - int (*restore_intrhand)(void*,int); - int (*is_te1)(void*); - int (*is_56k)(void*); - int (*get_hwcard)(void*, void**); - int (*get_hwprobe)(void*, int comm_port, void**); - int (*hw_unlock)(void *phw, wan_smp_flag_t *flag); - int (*hw_lock)(void *phw, wan_smp_flag_t *flag); - int (*hw_ec_unlock)(void *phw, wan_smp_flag_t *flag); - int (*hw_ec_lock)(void *phw, wan_smp_flag_t *flag); - int (*hw_same)(void *phw1, void *phw2); - int (*fe_test_and_set_bit)(void *phw, int value); - int (*fe_test_bit)(void *phw,int value); - int (*fe_set_bit)(void *phw,int value); - int (*fe_clear_bit)(void *phw,int value); + int (*setup)(void*,wandev_conf_t*); + int (*load)(void*,void*, unsigned); + int (*hw_down)(void*); + int (*start)(sdlahw_t* hw, unsigned addr); + int (*hw_halt)(void*); + int (*intack)(void*, uint32_t); + int (*read_int_stat)(void*, uint32_t*); + int (*mapmem)(void*, unsigned long); + int (*check_mismatch)(void*, unsigned char); + int (*getcfg)(void*, int, void*); + int (*isa_read_1)(void* hw, unsigned int offset, u8*); + int (*isa_write_1)(void* hw, unsigned int offset, u8); + int (*io_write_1)(void* hw, unsigned int offset, u8); + int (*io_read_1)(void* hw, unsigned int offset, u8*); + int (*bus_write_1)(void* hw, unsigned int offset, u8); + int (*bus_write_2)(void* hw, unsigned int offset, u16); + int (*bus_write_4)(void* hw, unsigned int offset, u32); + int (*bus_read_1)(void* hw, unsigned int offset, u8*); + int (*bus_read_2)(void* hw, unsigned int offset, u16*); + int (*bus_read_4)(void* hw, unsigned int offset, u32*); + int (*pci_write_config_byte)(void* hw, int reg, u8 value); + int (*pci_write_config_word)(void* hw, int reg, u16 value); + int (*pci_write_config_dword)(void* hw, int reg, u32 value); + int (*pci_read_config_byte)(void* hw, int reg, u8* value); + int (*pci_read_config_word)(void* hw, int reg, u16* value); + int (*pci_read_config_dword)(void* hw, int reg, u32* value); + int (*pci_bridge_write_config_dword)(void* hw, int reg, u32 value); + int (*pci_bridge_read_config_dword)(void* hw, int reg, u32* value); + int (*cmd)(void* phw, unsigned long offset, wan_mbox_t* mbox); + int (*peek)(void*,unsigned long, void*,unsigned); + int (*poke)(void*,unsigned long, void*,unsigned); + int (*poke_byte)(void*,unsigned long, u8); + int (*set_bit)(void*,unsigned long, u8); + int (*clear_bit)(void*,unsigned long,u8); + int (*set_intrhand)(void*, void (*isr_func)(void*), void*,int); + int (*restore_intrhand)(void*,int); + int (*is_te1)(void*); + int (*is_56k)(void*); + int (*get_hwcard)(void*, void**); + int (*get_hwprobe)(void*, int comm_port, void**); + int (*hw_unlock)(void *phw, wan_smp_flag_t *flag); + int (*hw_lock)(void *phw, wan_smp_flag_t *flag); + int (*hw_ec_unlock)(void *phw, wan_smp_flag_t *flag); + int (*hw_ec_lock)(void *phw, wan_smp_flag_t *flag); + int (*hw_same)(void *phw1, void *phw2); + int (*fe_test_and_set_bit)(void *phw, int value); + int (*fe_test_bit)(void *phw,int value); + int (*fe_set_bit)(void *phw,int value); + int (*fe_clear_bit)(void *phw,int value); sdla_dma_addr_t (*pci_map_dma)(void *phw, void *buf, int len, int ctrl); - int (*pci_unmap_dma)(void *phw, sdla_dma_addr_t buf, int len, int ctrl); - int (*read_cpld)(void *phw, u16, u8*); - int (*write_cpld)(void *phw, u16, u8); + int (*pci_unmap_dma)(void *phw, sdla_dma_addr_t buf, int len, int ctrl); + int (*read_cpld)(void *phw, u16, u8*); + int (*write_cpld)(void *phw, u16, u8); + int (*fe_write)(void*, ...); + u_int8_t (*fe_read)(void*, ...); } sdlahw_iface_t; typedef struct sdla_hw_type_cnt @@ -372,8 +375,9 @@ typedef struct sdla_hw_type_cnt unsigned char aft300_adapters; unsigned char aft200_adapters; unsigned char aft108_adapters; + unsigned char aft_isdn_adapters; unsigned char aft_56k_adapters; - + unsigned char aft_x_adapters; }sdla_hw_type_cnt_t; @@ -648,6 +652,41 @@ static __inline int __sdla_bus_write_4(void* phw, unsigned int offset, u32 value return 0; } +static __inline int __sdla_is_same_hwcard(void* phw1, void *phw2) +{ + if (((sdlahw_t*)phw1)->hwcard == ((sdlahw_t*)phw2)->hwcard){ + return 1; + } + return 0; +} + +static __inline void **__sdla_get_ptr_isr_array(void *phw1) +{ + return &((sdlahw_t*)phw1)->hwcard->port_ptr_isr_array[0]; +} + +static __inline void __sdla_push_ptr_isr_array(void *phw1, void *card, int line) +{ + if (line >= SDLA_MAX_PORTS) { + return; + } + + ((sdlahw_t*)phw1)->hwcard->port_ptr_isr_array[line]=card; +} + +static __inline void __sdla_pull_ptr_isr_array(void *phw1, void *card, int line) +{ + if (line >= SDLA_MAX_PORTS) { + return; + } + + ((sdlahw_t*)phw1)->hwcard->port_ptr_isr_array[line]=NULL; + + return; +} + + + #undef EXTERN #endif /* _SDLADRV_H */ diff --git a/patches/kdrivers/include/sdlapci.h b/patches/kdrivers/include/sdlapci.h index 09ef50c..2c45769 100644 --- a/patches/kdrivers/include/sdlapci.h +++ b/patches/kdrivers/include/sdlapci.h @@ -151,7 +151,6 @@ #define GSI_PCI_MEMORY_SIZE (8 * (4 * 2 * 1024)) #define PCI_VENDOR_ID_GSI 0x14BC #define PCI_DEVICE_ID_GSI_PULSAR 0xD002 -#define PCI_DEVICE_ID_GSI_ADSL_V2 0xD001 #define PCI_DEVICE_ID_GSI_ADSL PCI_DEVICE_ID_GSI_PULSAR diff --git a/patches/kdrivers/include/sdlasfm.h b/patches/kdrivers/include/sdlasfm.h index d5795ad..3211edb 100644 --- a/patches/kdrivers/include/sdlasfm.h +++ b/patches/kdrivers/include/sdlasfm.h @@ -180,10 +180,10 @@ typedef struct sfm /* SDLA firmware file structire */ /* CPLD interface */ #define AFT_MCPU_INTERFACE_ADDR 0x46 -#define AFT_MCPU_INTERFACE 0x44 +#define AFT_MCPU_INTERFACE 0x44 -#define AFT56K_MCPU_INTERFACE_ADDR 0x46 -#define AFT56K_MCPU_INTERFACE 0x44 +#define AFT56K_MCPU_INTERFACE_ADDR 0x46 +#define AFT56K_MCPU_INTERFACE 0x44 /* CPLD definitions */ #define AFT_SECURITY_1LINE_UNCH 0x00 @@ -195,9 +195,7 @@ typedef struct sfm /* SDLA firmware file structire */ #define AFT_BIT_DEV_ADDR_CPLD 0x200 #define AFT4_BIT_DEV_ADDR_CLEAR 0x800 #define AFT4_BIT_DEV_ADDR_CPLD 0x800 -#define AFT56K_BIT_DEV_ADDR_CPLD 0x800 - - +#define AFT56K_BIT_DEV_ADDR_CPLD 0x800 /* Maxim CPLD definitions */ #define AFT8_BIT_DEV_ADDR_CLEAR 0x1800 /* QUAD */ @@ -275,6 +273,7 @@ typedef struct sfm /* SDLA firmware file structire */ (adapter_type == A300_ADPTR_U_1TE3) ? "AFT-A301" : \ (adapter_type == A200_ADPTR_ANALOG) ? "AFT-A200" : \ (adapter_type == A400_ADPTR_ANALOG) ? "AFT-A400" : \ + (adapter_type == AFT_ADPTR_ISDN) ? "AFT-A500" : \ (adapter_type == AFT_ADPTR_56K) ? "AFT-A056" : \ "UNKNOWN" @@ -313,8 +312,8 @@ typedef struct sfm /* SDLA firmware file structire */ (adptr_subtype == AFT_SUBTYPE_NORMAL) ? "" : \ (adptr_subtype == AFT_SUBTYPE_SHARK) ? "SHARK" : "" -#define AFT_PCIEXPRESS_DECODE(hwcard) \ - ((hwcard)->pci_bridge_dev) ? " PCI-Express" : "" +#define AFT_PCIEXPRESS_DECODE(hwcard) \ + ((hwcard)->pci_bridge_dev) ? " PCI-Express" : "" #endif /* _SDLASFM_H */ diff --git a/patches/kdrivers/include/ss7_linux.h b/patches/kdrivers/include/ss7_linux.h index e128e6b..5063dc3 100644 --- a/patches/kdrivers/include/ss7_linux.h +++ b/patches/kdrivers/include/ss7_linux.h @@ -24,11 +24,13 @@ Descripiton: #ifndef _SS7_LINUX_H #define _SS7_LINUX_H +#ifndef PACKED +#define PACKED __attribute__((packed)) +#endif + #include #include -#pragma pack(1) - enum { SIOCC_PC_RESERVED = (SIOC_WANPIPE_DEVPRIVATE), SIOCS_GENERAL_CMD, @@ -44,32 +46,32 @@ enum { typedef struct { - unsigned char status ; - unsigned char data_avail ; - unsigned short real_length ; - unsigned short time_stamp ; - unsigned char data[1] ; + unsigned char status PACKED; + unsigned char data_avail PACKED; + unsigned short real_length PACKED; + unsigned short time_stamp PACKED; + unsigned char data[1] PACKED; } trace_pkt_t; typedef struct { - unsigned char SIO ; - unsigned short time_stamp ; - unsigned char reserved[13] ; + unsigned char SIO PACKED; + unsigned short time_stamp PACKED; + unsigned char reserved[13] PACKED; } api_rx_hdr_t; typedef struct { - api_rx_hdr_t api_rx_hdr ; - void * data ; + api_rx_hdr_t api_rx_hdr PACKED; + void * data PACKED; } api_rx_element_t; typedef struct { - unsigned char SIO ; - unsigned char reserved[15] ; + unsigned char SIO PACKED; + unsigned char reserved[15] PACKED; } api_tx_hdr_t; typedef struct { - api_tx_hdr_t api_tx_hdr ; - void * data ; + api_tx_hdr_t api_tx_hdr PACKED; + void * data PACKED; } api_tx_element_t; @@ -77,26 +79,26 @@ typedef struct { This is essentially a mailbox structure, without the large data field */ #if 0 typedef struct { - unsigned char opp_flag ; /* the opp flag */ - unsigned char command ; /* the user command */ - unsigned short buffer_length ; /* the data length */ - unsigned char return_code ; /* the return code */ - unsigned char MB_reserved[NUMBER_MB_RESERVED_BYTES] ; /* reserved for later */ + unsigned char opp_flag PACKED; /* the opp flag */ + unsigned char command PACKED; /* the user command */ + unsigned short buffer_length PACKED; /* the data length */ + unsigned char return_code PACKED; /* the return code */ + unsigned char MB_reserved[NUMBER_MB_RESERVED_BYTES] PACKED; /* reserved for later */ } cblock_t; typedef struct { - unsigned char num_frames ; - unsigned char ismoredata ; + unsigned char num_frames PACKED; + unsigned char ismoredata PACKED; } trace_info_t; typedef struct { - ip_pkt_t ip_pkt ; - udp_pkt_t udp_pkt ; - wp_mgmt_t wp_mgmt ; - cblock_t cblock ; - trace_info_t trace_info ; - unsigned char data[SIZEOF_MB_DATA_BFR] ; + ip_pkt_t ip_pkt PACKED; + udp_pkt_t udp_pkt PACKED; + wp_mgmt_t wp_mgmt PACKED; + cblock_t cblock PACKED; + trace_info_t trace_info PACKED; + unsigned char data[SIZEOF_MB_DATA_BFR] PACKED; } ss7_udp_pkt_t; #endif @@ -125,7 +127,6 @@ typedef struct { #define UDPMGMT_UDP_PROTOCOL 0x11 #define UDPMGMT_SIGNATURE "CTPIPEAB" /* "STPIPEAB" */ -#pragma pack() #endif diff --git a/patches/kdrivers/include/wanpipe.h b/patches/kdrivers/include/wanpipe.h index 235e0aa..a3e0527 100644 --- a/patches/kdrivers/include/wanpipe.h +++ b/patches/kdrivers/include/wanpipe.h @@ -53,7 +53,7 @@ #include #include #include -# include +#include #else # error "No OS Specified" #endif @@ -364,7 +364,7 @@ typedef struct u8 logging; /* Option to log call messages */ u8 oob_on_modem; /* Option to send modem status to the api */ u16 num_of_ch; /* Number of channels configured by the user */ - struct tq_struct x25_poll_task; + wan_taskq_t x25_poll_task; struct timer_list x25_timer; /* Proc fs */ wan_x25_conf_t x25_adm_conf; @@ -723,15 +723,23 @@ typedef struct unsigned int tdmv_dchan_cfg_on_master; unsigned int tdmv_chan; + unsigned int tdmv_dchan; unsigned int tdmv_dchan_active_ch; void *tdmv_chan_ptr; + unsigned char tdmv_hw_dtmf; + unsigned char led_ctrl; unsigned int tdm_intr_status; void *bar_virt; unsigned short tdm_rx_dma_toggle; unsigned short tdm_tx_dma_toggle; unsigned int tdm_logic_ch_map; + + void *rtp_dev; + int rtp_len; + netskb_t *rx_rtp_skb; + netskb_t *tx_rtp_skb; unsigned long sec_chk_cnt; } sdla_xilinx_t; @@ -778,7 +786,7 @@ typedef struct sdla unsigned char tx_data[MAX_PACKET_SIZE]; /* Tx buffer */ unsigned int tx_len; /* Tx data len */ #endif - void (*isr)(struct sdla* card); /* interrupt service routine */ + WAN_IRQ_RETVAL (*isr)(struct sdla* card); /* interrupt service routine */ void (*poll)(struct sdla* card); /* polling routine */ int (*exec)(struct sdla* card, void* u_cmd, void* u_data); /* Used by the listen() system call */ @@ -804,7 +812,7 @@ typedef struct sdla unsigned char *tty_buf; struct sk_buff_head tty_rx_empty; struct sk_buff_head tty_rx_full; - struct tq_struct tty_task_queue; + wan_taskq_t tty_task_queue; #endif union { @@ -864,10 +872,13 @@ typedef struct sdla unsigned long intcount; + wan_tdmv_conf_t tdmv_conf; #if defined(CONFIG_PRODUCT_WANPIPE_TDM_VOICE) wan_tdmv_iface_t tdmv_iface; wan_tdmv_t wan_tdmv; #endif + + wan_hwec_conf_t hwec_conf; #if defined(CONFIG_PRODUCT_WANPIPE_GENERIC) struct sdla* same_card; @@ -947,7 +958,7 @@ int aft_global_hw_device_init(void); int wanpipe_globals_util_init(void); /* Initialize All Global Tables */ #if defined(__LINUX__) -extern int wanpipe_queue_tq (struct tq_struct *); +extern int wanpipe_queue_tq (wan_taskq_t *); extern int wanpipe_mark_bh (void); extern int change_dev_flags (netdevice_t *, unsigned); extern unsigned long get_ip_address (netdevice_t *dev, int option); @@ -962,6 +973,9 @@ extern void wp_tasklet_per_cpu_init (void); //extern int wan_reply_udp( unsigned char *data, unsigned int mbox_len, int trace_opt); //extern int wan_udp_pkt_type(sdla_t* card,unsigned char *data); +extern int wan_ip_udp_setup(void* card_id, u32 ip, u32 udp_port, + unsigned char *data, unsigned int mbox_len); + extern int wanpipe_sdlc_unregister(netdevice_t *dev); extern int wanpipe_sdlc_register(netdevice_t *dev, void *wp_sdlc_reg); //ALEX_TODAY extern int check_conf_hw_mismatch(sdla_t *card, unsigned char media); diff --git a/patches/kdrivers/include/wanpipe_abstr.h b/patches/kdrivers/include/wanpipe_abstr.h index 0d1474c..ee02e5b 100644 --- a/patches/kdrivers/include/wanpipe_abstr.h +++ b/patches/kdrivers/include/wanpipe_abstr.h @@ -188,7 +188,7 @@ extern void wpabs_trace_info_init(void *trace_ptr, int max_queue); extern void wpabs_set_last_trace_direction(void *trace_ptr, unsigned char direction); extern unsigned char wpabs_get_last_trace_direction(void *trace_ptr); -extern int wpabs_bpf_report(void *dev, void *skb, int); +extern int wpabs_bpf_report(void *dev, void *skb, int,int); #pragma pack(1) typedef struct { diff --git a/patches/kdrivers/include/wanpipe_cfg.h b/patches/kdrivers/include/wanpipe_cfg.h index 46b0458..5d9a933 100644 --- a/patches/kdrivers/include/wanpipe_cfg.h +++ b/patches/kdrivers/include/wanpipe_cfg.h @@ -74,10 +74,10 @@ #define WANOPT_AFT108 8 #define WANOPT_AFT_X 9 #define WANOPT_AFT102 10 +#define WANOPT_AFT_ISDN 11 #define WANOPT_AFT_56K 12 #define WANOPT_AFT101 13 - /* * Configuration options defines. */ @@ -224,7 +224,8 @@ enum { TDM_VOICE, TDM_VOICE_DCHAN, TDM_VOICE_API, - TDM_API + TDM_API, + TRUNK }; /* POS protocols */ @@ -312,6 +313,7 @@ enum { card_type == WANOPT_AFT108) ? "A101/1D/A102/2D/4/4D/8" : \ (card_type == WANOPT_AFT300) ? "A300" : \ (card_type == WANOPT_AFT_ANALOG) ? "A200/400" : \ + (card_type == WANOPT_AFT_ISDN) ? "A500" : \ (card_type == WANOPT_AFT_56K) ? "A056" : \ "Unknown" @@ -467,7 +469,7 @@ typedef struct wan_bitstrm_conf{ unsigned int rx_complete_length; unsigned int rx_complete_timer; - unsigned long rbs_map; + unsigned int rbs_map; }wan_bitstrm_conf_t; @@ -545,21 +547,27 @@ typedef struct wan_lip_fr_dlci unsigned char name[20]; unsigned int down; unsigned char type; -}wan_fr_dlci_t; +} wan_fr_dlci_t; typedef struct wan_xilinx_conf { - unsigned short dma_per_ch; /* DMA buffers per logic channel */ - unsigned short mru; /* MRU of transparent channels */ - unsigned int rbs; /* Robbit signalling support */ - unsigned int data_mux_map; /* Data mux map */ - unsigned int tdmv_span_no; - unsigned int tdmv_dchan; /* hwHDLC: PRI SIG */ - unsigned int rx_crc_bytes; - unsigned int ec_clk_src; /* Octasic Clock Source Port */ - unsigned int ec_persist_disable; /* HW EC Persist */ -}wan_xilinx_conf_t; - + unsigned short dma_per_ch; /* DMA buffers per logic channel */ + unsigned short mru; /* MRU of transparent channels */ + unsigned int rbs; /* Robbit signalling support */ + unsigned int data_mux_map; /* Data mux map */ + //unsigned int tdmv_span_no; + //unsigned int tdmv_dchan; /* hwHDLC: PRI SIG */ + //unsigned char tdmv_hw_dtmf; /* TDMV Enable/Disable HW DTMF */ + unsigned int rx_crc_bytes; +// unsigned int ec_clk_src; /* Octasic Clock Source Port */ +// unsigned int ec_persist_disable; /* HW EC Persist */ + + + unsigned int rtp_ip; + unsigned short rtp_port; + unsigned short rtp_sample; + char rtp_devname[WAN_IFNAME_SZ+1]; +} wan_xilinx_conf_t; typedef struct wan_xilinx_conf_if { @@ -574,9 +582,10 @@ typedef struct wan_xilinx_conf_if unsigned char ss7_mode; unsigned char ss7_lssu_size; unsigned char tdmv_master_if; - unsigned char tdmv_hwec; /* Enable/Disable HW EC */ +// unsigned char tdmv_hwec; /* Enable/Disable HW EC */ unsigned char rbs_cas_idle; /* Initial RBS/CAS value */ - unsigned char dtmf_hw; /* Enable/Disable HW DTMF */ +// unsigned char hwec_dtmf; /* Enable/Disable HW DTMF */ +/* unsigned char tdmv_hwec_map[50];*/ /* Enable/Disable HW EC */ }wan_xilinx_conf_if_t; @@ -648,7 +657,7 @@ typedef struct wan_xdlc_conf { typedef struct wan_sdlc_conf { unsigned char station_configuration; - unsigned long baud_rate; + unsigned int baud_rate; unsigned short max_I_field_length; unsigned short general_operational_config_bits; unsigned short protocol_config_bits; @@ -668,8 +677,8 @@ typedef struct wan_sdlc_conf { typedef struct wan_bscstrm_conf { - unsigned long baud_rate; /* the baud rate */ - unsigned long adapter_frequency; /* the adapter frequecy */ + unsigned int baud_rate; /* the baud rate */ + unsigned int adapter_frequency; /* the adapter frequecy */ unsigned short max_data_length; /* the maximum length of a BSC data block */ unsigned short EBCDIC_encoding; /* EBCDIC/ASCII encoding */ unsigned short Rx_block_type; /* the type of BSC block to be received */ @@ -868,6 +877,21 @@ typedef struct pmc_pmon { } pmc_pmon_t; #endif +typedef struct wan_tdmv_conf_ { + + unsigned int span_no; + unsigned int dchan; /* hwHDLC: PRI SIG */ + unsigned char hw_dtmf; /* TDMV Enable/Disable HW DTMF */ + +} wan_tdmv_conf_t; + +typedef struct wan_hwec_conf_ +{ + unsigned int clk_src; /* Octasic Clock Source Port */ + unsigned int persist_disable;/* HW EC Persist */ + +} wan_hwec_conf_t; + /*---------------------------------------------------------------------------- * WAN device configuration. Passed to ROUTER_SETUP IOCTL. */ @@ -884,9 +908,9 @@ typedef struct wandev_conf char S514_CPU_no[1]; /* S514 PCI adapter CPU number ('A' or 'B') */ unsigned PCI_slot_no; /* S514 PCI adapter slot number */ char auto_pci_cfg; /* S515 PCI automatic slot detection */ - int comm_port; /* Communication Port (PRI=0, SEC=1) */ - unsigned bps; /* data transfer rate */ - unsigned mtu; /* maximum transmit unit size */ + unsigned int comm_port; /* Communication Port (PRI=0, SEC=1) */ + unsigned int bps; /* data transfer rate */ + unsigned int mtu; /* maximum transmit unit size */ unsigned udp_port; /* UDP port for management */ unsigned char ttl; /* Time To Live for UDP security */ unsigned char ft1; /* FT1 Configurator Option */ @@ -931,6 +955,9 @@ typedef struct wandev_conf sdla_fe_cfg_t fe_cfg; /* Front end configurations */ + wan_tdmv_conf_t tdmv_conf; + wan_hwec_conf_t hwec_conf; + unsigned char line_idle; /* IDLE FLAG/ IDLE MARK */ unsigned char ignore_front_end_status; unsigned int max_trace_queue; @@ -988,8 +1015,8 @@ typedef struct wandev_conf #define WANCONFIG_AFT_ANALOG 132 /* AFT Analog Driver */ #define WANCONFIG_ZAP 133 /* Used in wanpipemon when working with Zaptel driver */ #define WANCONFIG_LAPD 134 /* LIP LAPD Q921 Protocol Support */ -#define WANCONFIG_AFT_56K 136 /* AFT 56K Support */ - +#define WANCONFIG_LIP_KATM 135 /* Kernel ATM Stack Support */ +#define WANCONFIG_AFT_56K 136 /* AFT 56K Support */ /*FIXME: This should be taken out, I just //used it so I don't break the apps that are @@ -1015,6 +1042,9 @@ typedef struct wandev_conf (protocol == WANCONFIG_SDLC) ? "SDLC": \ (protocol == WANCONFIG_ATM) ? "ATM": \ (protocol == WANCONFIG_LIP_ATM)? "LIP_ATM": \ + (protocol == WANCONFIG_LIP_KATM)? "LIP_KATM": \ + (protocol == WANCONFIG_LAPB)? "LIP_LAPB": \ + (protocol == WANCONFIG_LAPD)? "LIP_LAPD": \ (protocol == WANCONFIG_POS) ? "Point-of-Sale": \ (protocol == WANCONFIG_AFT) ? "AFT": \ (protocol == WANCONFIG_AFT_TE3) ? "AFT TE3": \ @@ -1027,6 +1057,19 @@ typedef struct wandev_conf (protocol == WANCONFIG_TTY) ? "TTY": "Unknown Protocol" +typedef struct wan_tdmv_if_conf +{ + unsigned char tdmv_echo_off; /* TDMV echo disable */ + unsigned char tdmv_codec; /* TDMV codec */ + +} wan_tdmv_if_conf_t; + +typedef struct wan_hwec_if_conf +{ + unsigned char enable; /* Enable/Disable HW EC */ + +} wan_hwec_if_conf_t; + /*---------------------------------------------------------------------------- * WAN interface (logical channel) configuration (for ROUTER_IFNEW IOCTL). */ @@ -1049,7 +1092,7 @@ typedef struct wanif_conf unsigned char enable_IPX; /* Enable or Disable IPX */ unsigned char inarp; /* Send Inverse ARP requests Y/N */ unsigned inarp_interval; /* sec, between InARP requests */ - unsigned long network_number; /* Network Number for IPX */ + unsigned int network_number; /* Network Number for IPX */ char mc; /* Multicast on or off */ char local_addr[WAN_ADDRESS_SZ+1];/* local media address, ASCIIZ */ unsigned char port; /* board port */ @@ -1114,7 +1157,7 @@ typedef struct wanif_conf unsigned char accept_usr_data[WAN_ADDRESS_SZ+1]; unsigned char inarp_rx; /* Receive Inverse ARP requests Y/N */ - unsigned long active_ch; + unsigned int active_ch; unsigned int max_trace_queue; unsigned char sw_dev_name[WAN_IFNAME_SZ+1]; unsigned char auto_cfg; @@ -1124,8 +1167,10 @@ typedef struct wanif_conf unsigned char station; unsigned char label[WAN_IF_LABEL_SZ+1]; - unsigned char tdmv_echo_off; /* TDMV echo disable */ - unsigned char tdmv_codec; /* TDMV codec */ + wan_tdmv_if_conf_t tdmv; + wan_hwec_if_conf_t hwec; + //unsigned char tdmv_echo_off; /* TDMV echo disable */ + //unsigned char tdmv_codec; /* TDMV codec */ unsigned char single_tx_buf; /* Used in low latency applications */ diff --git a/patches/kdrivers/include/wanpipe_codec.h b/patches/kdrivers/include/wanpipe_codec.h index 414ffaa..835d7da 100644 --- a/patches/kdrivers/include/wanpipe_codec.h +++ b/patches/kdrivers/include/wanpipe_codec.h @@ -25,6 +25,8 @@ #if (defined __FreeBSD__) | (defined __OpenBSD__) #include +#elif defined(__WINDOWS__) +#include #else #include #endif diff --git a/patches/kdrivers/include/wanpipe_common.h b/patches/kdrivers/include/wanpipe_common.h index f889222..e182447 100644 --- a/patches/kdrivers/include/wanpipe_common.h +++ b/patches/kdrivers/include/wanpipe_common.h @@ -2,7 +2,7 @@ * Copyright (c) 2002 * Alex Feldman . All rights reserved. * - * $Id: wanpipe_common.h,v 1.167 2006/10/19 21:32:35 sangoma Exp $ + * $Id: wanpipe_common.h,v 1.175 2007/02/24 00:17:14 sangoma Exp $ */ /**************************************************************************** @@ -282,8 +282,16 @@ extern atomic_t wan_debug_mem; # define WAN_TASKQ_INIT(task, priority, func, arg) \ (task)->tfunc = func; task->data = arg #elif defined(__LINUX__) +/* Due to 2.6.20 kernel the wan_taskq_t is now a direct + * workqueue struct not an abstracted structure */ +# if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)) # define WAN_TASKQ_INIT(task, priority, func, arg) \ - INIT_WORK((&task->tqueue),func,arg) + INIT_WORK((task),func,arg) +# else +# define WAN_TASKQ_INIT(task, priority, func, arg) \ + INIT_WORK((task),func) +# endif + #elif defined(__WINDOWS__) #else # error "Undefined WAN_TASKQ_INIT macro!" @@ -301,7 +309,7 @@ extern atomic_t wan_debug_mem; #elif defined(__LINUX__) # define WAN_IS_TASKQ_SCHEDULE # define WAN_TASKQ_SCHEDULE(task) \ - wan_schedule_task(&task->tqueue) + wan_schedule_task(task) #elif defined(__WINDOWS__) #else # error "Undefined WAN_TASKQ_SCHEDULE macro!" @@ -390,15 +398,36 @@ extern atomic_t wan_debug_mem; #endif #if defined(__LINUX__) +# define WAN_BPF_DIR_IN (1<<0) +# define WAN_BPF_DIR_OUT (1<<1) # define WAN_BPF_REPORT(dev,m) #elif defined(__FreeBSD__) +# define WAN_BPF_DIR_IN (1<<0) +# define WAN_BPF_DIR_OUT (1<<1) # if (__FreeBSD_version > 500000) -# define WAN_BPF_REPORT(dev,m) bpf_mtap((dev)->if_bpf, (m)) +# define WAN_BPF_REPORT(dev,m,d) bpf_mtap((dev)->if_bpf, (m)) # else -# define WAN_BPF_REPORT(dev,m) bpf_mtap((dev), (m)) +# define WAN_BPF_REPORT(dev,m,d) bpf_mtap((dev), (m)) # endif -#elif defined(__OpenBSD__) || defined(__NetBSD__) -# define WAN_BPF_REPORT(dev,m) bpf_mtap((dev)->if_bpf, (m)); +#elif defined(__OpenBSD__) +# if (OpenBSD < 200611) +# define WAN_BPF_DIR_IN (1<<0) +# define WAN_BPF_DIR_OUT (1<<1) +# define WAN_BPF_REPORT(dev,m,d) bpf_mtap((dev)->if_bpf, (m)); +# else +# define WAN_BPF_DIR_IN BPF_DIRECTION_IN +# define WAN_BPF_DIR_OUT BPF_DIRECTION_OUT +# define WAN_BPF_REPORT(dev,m,d) \ + if (dir == WAN_BPF_DIR_IN){ \ + bpf_mtap((dev)->if_bpf, (m), BPF_DIRECTION_IN); \ + }else{ \ + bpf_mtap((dev)->if_bpf, (m), BPF_DIRECTION_OUT); \ + } +# endif +#elif defined(__NetBSD__) +# define WAN_BPF_DIR_IN (1<<0) +# define WAN_BPF_DIR_OUT (1<<1) +# define WAN_BPF_REPORT(dev,m,d) bpf_mtap((dev)->if_bpf, (m)); #elif defined(__WINDOWS__) #else # error "Undefined WAN_BPF_REPORT macro!" @@ -581,7 +610,6 @@ static __inline void* wan_malloc(int size) return ptr; } - static __inline void* wan_kmalloc(int size) { void* ptr = NULL; @@ -604,8 +632,7 @@ static __inline void* wan_kmalloc(int size) DEBUG_ADD_MEM(size); } return ptr; -} - +} /* ** wan_free - @@ -1183,7 +1210,6 @@ static __inline void* wan_skb_alloc(unsigned int len) #endif } - static __inline void* wan_skb_kalloc(unsigned int len) { #if defined(__LINUX__) @@ -1231,7 +1257,7 @@ static __inline void* wan_skb_kalloc(unsigned int len) #else # error "wan_skb_kalloc() function is not supported yet!" #endif -} +} /* @@ -1303,7 +1329,7 @@ static __inline void wan_skb_set_csum(void* skb, unsigned int csum) #elif defined(__OpenBSD__) netskb_t* m = (netskb_t*)skb; if (m){ -# if defined(OpenBSD3_8) || defined(OpenBSD3_9) +# if (OpenBSD >= 200511) m->m_pkthdr.csum_flags = csum; # else m->m_pkthdr.csum = csum; @@ -1333,7 +1359,7 @@ static __inline unsigned int wan_skb_csum(void* skb) return (m) ? m->m_pkthdr.csum_data : 0; #elif defined(__OpenBSD__) netskb_t* m = (netskb_t*)skb; -# if defined(OpenBSD3_8) || defined(OpenBSD3_9) +# if (OpenBSD >= 200511) return (m) ? m->m_pkthdr.csum_flags : 0; # else return (m) ? m->m_pkthdr.csum : 0; @@ -2219,7 +2245,8 @@ static __inline int wan_netif_set_mtu(netdevice_t* dev, unsigned long mtu) } -static __inline void wan_bpf_report(netdevice_t* dev, void* pkt, int flag) +static __inline void +wan_bpf_report(netdevice_t* dev, void* pkt, int flag, int dir) { #if defined(__LINUX__) @@ -2236,9 +2263,9 @@ static __inline void wan_bpf_report(netdevice_t* dev, void* pkt, int flag) m0.m_next = pkt; m0.m_len = 4; m0.m_data = (char*)⁡ - WAN_BPF_REPORT(dev, &m0); + WAN_BPF_REPORT(dev, &m0, dir); }else{ - WAN_BPF_REPORT(dev, pkt); + WAN_BPF_REPORT(dev, pkt, dir); } } #else diff --git a/patches/kdrivers/include/wanpipe_debug.h b/patches/kdrivers/include/wanpipe_debug.h index 2dbaeae..7fddc02 100644 --- a/patches/kdrivers/include/wanpipe_debug.h +++ b/patches/kdrivers/include/wanpipe_debug.h @@ -375,14 +375,14 @@ #if defined(WAN_DEBUG_FUNC) # undef WAN_DEBUG_FUNC_START -# define WAN_DEBUG_FUNC_START DEBUG_EVENT("[%s]: %s:%d: Start (%ld)\n", \ - __FILE__,__FUNCTION__,__LINE__, SYSTEM_TICKS); +# define WAN_DEBUG_FUNC_START DEBUG_EVENT("[%s]: %s:%d: Start (%ld)\n",\ + __FILE__,__FUNCTION__,__LINE__, SYSTEM_TICKS); # undef WAN_DEBUG_FUNC_END -# define WAN_DEBUG_FUNC_END DEBUG_EVENT("[%s]: %s:%d: End (%ld)\n", \ - __FILE__,__FUNCTION__,__LINE__,SYSTEM_TICKS); +# define WAN_DEBUG_FUNC_END DEBUG_EVENT("[%s]: %s:%d: End (%ld)\n", \ + __FILE__,__FUNCTION__,__LINE__,SYSTEM_TICKS); # undef WAN_DEBUG_FUNC_LINE -# define WAN_DEBUG_FUNC_LINE DEBUG_EVENT("[%s]: %s:%d: (%ld)\n", \ - __FILE__,__FUNCTION__,__LINE__,SYSTEM_TICKS); +# define WAN_DEBUG_FUNC_LINE DEBUG_EVENT("[%s]: %s:%d: (%ld)\n", \ + __FILE__,__FUNCTION__,__LINE__,SYSTEM_TICKS); #endif #define WAN_ASSERT(val) if (val){ \ @@ -453,45 +453,70 @@ #define WAN_DEBUG_CHDLC_KPLV_MSG 0x0B #define WAN_DEBUG_CHDLC_UNKNWN_MSG 0x0C - -#define WAN_DEBUG_INIT(card){ \ - wan_tasklet_t* debug_task = &card->debug_task; \ - WAN_TASKLET_INIT(debug_task, 0, &wanpipe_debugging, card);\ - wan_clear_bit(0, (unsigned long*)&card->debug_running); \ - wanpipe_debug_timer_init(card); \ +/* WAN DEBUG timer */ +#define WAN_DEBUG_INIT(card){ \ + wan_tasklet_t* debug_task = &card->debug_task; \ + WAN_TASKLET_INIT(debug_task, 0, &wanpipe_debugging, card); \ + wan_clear_bit(0, (unsigned long*)&card->debug_running); \ + wanpipe_debug_timer_init(card); \ } -#define WAN_DEBUG_END(card){ \ - wan_del_timer(&card->debug_timer); \ - WAN_TASKLET_KILL(&card->debug_task); \ +#define WAN_DEBUG_END(card){ \ + wan_del_timer(&card->debug_timer); \ + WAN_TASKLET_KILL(&card->debug_task); \ } #define WAN_DEBUG_STOP(card) wan_clear_bit(0, &card->debug_running) #if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__WINDOWS__) -# define WAN_DEBUG_START(card) \ - if (!wan_test_bit(0, &card->debug_running)){ \ - wan_set_bit(0, &card->debug_running); \ +# define WAN_DEBUG_START(card) \ + if (!wan_test_bit(0, &card->debug_running)){ \ + wan_set_bit(0, &card->debug_running); \ wan_add_timer(&card->debug_timer, 5*HZ); \ } +#elif defined(__LINUX__) +# define WAN_DEBUG_START(card) \ + if (!wan_test_and_set_bit(0, &card->debug_running)){ \ + wan_add_timer(&card->debug_timer, 5*HZ); \ + } +#else +# error "Undefined WAN_DEBUG_START macro!" +#endif -# define WP_READ_LOCK(lock,flag) { DEBUG_TEST("%s:%d: RLock %u\n",__FILE__,__LINE__,(u32)lock);\ - flag = splimp(); } +#if defined(__OpenBSD__) && (OpenBSD >= 200611) +# define WP_READ_LOCK(lock,flag) { \ + DEBUG_TEST("%s:%d: RLock %u\n",__FILE__,__LINE__,(u32)lock); \ + flag = splnet(); } -# define WP_READ_UNLOCK(lock,flag) { DEBUG_TEST("%s:%d: RULock %u\n",__FILE__,__LINE__,(u32)lock);\ - splx(flag);} +# define WP_READ_UNLOCK(lock,flag) { \ + DEBUG_TEST("%s:%d: RULock %u\n",__FILE__,__LINE__,(u32)lock); \ + splx(flag);} -# define WP_WRITE_LOCK(lock,flag) { DEBUG_TEST("%s:%d: WLock %u\n",__FILE__,__LINE__,(u32)lock); \ - flag = splimp(); } +# define WP_WRITE_LOCK(lock,flag) { \ + DEBUG_TEST("%s:%d: WLock %u\n",__FILE__,__LINE__,(u32)lock); \ + flag = splnet(); } -# define WP_WRITE_UNLOCK(lock,flag) { DEBUG_TEST("%s:%d: WULock %u\n",__FILE__,__LINE__,(u32)lock); \ - splx(flag); } +# define WP_WRITE_UNLOCK(lock,flag) { \ + DEBUG_TEST("%s:%d: WULock %u\n",__FILE__,__LINE__,(u32)lock); \ + splx(flag); } + +#elif defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__WINDOWS__) +# define WP_READ_LOCK(lock,flag) { \ + DEBUG_TEST("%s:%d: RLock %u\n",__FILE__,__LINE__,(u32)lock); \ + flag = splimp(); } + +# define WP_READ_UNLOCK(lock,flag) { \ + DEBUG_TEST("%s:%d: RULock %u\n",__FILE__,__LINE__,(u32)lock); \ + splx(flag);} + +# define WP_WRITE_LOCK(lock,flag) { \ + DEBUG_TEST("%s:%d: WLock %u\n",__FILE__,__LINE__,(u32)lock); \ + flag = splimp(); } + +# define WP_WRITE_UNLOCK(lock,flag) { \ + DEBUG_TEST("%s:%d: WULock %u\n",__FILE__,__LINE__,(u32)lock); \ + splx(flag); } #elif defined(__LINUX__) -# define WAN_DEBUG_START(card) \ - if (!wan_test_and_set_bit(0, &card->debug_running)){\ - wan_add_timer(&card->debug_timer, 5*HZ); \ - } - # define WAN_TIMEOUT(sec) { unsigned long timeout; \ timeout=jiffies; \ while ((jiffies-timeout) # include # include -# if !defined(OpenBSD3_9) +# if (OpenBSD < 200605) # include # endif # include diff --git a/patches/kdrivers/include/wanpipe_katm_iface.h b/patches/kdrivers/include/wanpipe_katm_iface.h new file mode 100644 index 0000000..786ff9e --- /dev/null +++ b/patches/kdrivers/include/wanpipe_katm_iface.h @@ -0,0 +1,63 @@ +/* + * These are the public elements of the Binary katm module. + */ + +#ifndef _WP_KATM_IFACE_H +#define _WP_KATM_IFACE_H + +/* Mandatory Define here */ +#ifdef WANLIP_DRIVER + +#define ETH_P_LAPD 0x0030 + +enum katm_ioctl_cmds { + SIOCG_LAPD_CONF, + SIOCG_LAPD_STATUS, +}; + +extern void *wp_register_katm_prot (void *, + char *, + void *, + wplip_prot_reg_t *); + +extern int wp_unregister_katm_prot (void *); + +extern void *wp_register_katm_chan (void *if_ptr, + void *prot_ptr, + char *devname, + void *cfg_ptr, + unsigned char type); + +extern int wp_unregister_katm_chan (void *chan_ptr); + +extern int wp_katm_open (void *prot_ptr); +extern int wp_katm_close (void *prot_ptr); +extern int wp_katm_rx (void *prot_ptr, void *skb); +extern int wp_katm_bh (void *prot_ptr); +extern int wp_katm_tx (void *prot_ptr, void *skb, int type); +extern int wp_katm_timer (void *prot_ptr, unsigned int *period, + unsigned int carrier_reliable); +extern int wp_katm_pipemon (void *prot_ptr, int cmd, int addr, + unsigned char* data, unsigned int *len); + +extern int wpkatm_bh (void *prot_ptr); + +#endif + + +/* Any public structures shared between LIP and + * Object Code */ + + + + +/* This code should go into wanpipe_cfg.h */ +typedef struct wan_katm_if_conf +{ + /* IMPLEMENT USER CONFIG OPTIONS HERE */ + unsigned char data; + + +}wan_katm_if_conf_t; + +#endif diff --git a/patches/kdrivers/include/wanpipe_kernel.h b/patches/kdrivers/include/wanpipe_kernel.h index 77d9596..8dadc6f 100644 --- a/patches/kdrivers/include/wanpipe_kernel.h +++ b/patches/kdrivers/include/wanpipe_kernel.h @@ -6,6 +6,14 @@ #include +# if defined (__BIG_ENDIAN_BITFIELD) +# define WAN_BIG_ENDIAN 1 +# undef WAN_LITTLE_ENDIAN +# else +# undef WAN_BIG_ENDIAN +# define WAN_LITTLE_ENDIAN 1 +# endif + #if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,9) # define MODULE_LICENSE(a) #endif @@ -63,7 +71,13 @@ }\ } - #define WAN_IRQ_RETVAL(a) return a + #define WAN_IRQ_CALL(fn,args,ret) ret = fn args + #define WAN_IRQ_RETURN(a) return a + #define WAN_IRQ_RETVAL irqreturn_t + #define WAN_IRQ_RETVAL_DECL(ret) irqreturn_t ret = WAN_IRQ_NONE + #define WAN_IRQ_RETVAL_SET(ret, val) ret = val + #define WAN_IRQ_HANDLED IRQ_HANDLED + #define WAN_IRQ_NONE IRQ_NONE #define mark_bh(a) @@ -155,17 +169,19 @@ }\ } - #define WAN_IRQ_RETVAL(a) return - #ifndef IRQ_NONE - # define IRQ_NONE (0) + #define WAN_IRQ_CALL(fn,args,ret) fn args + #define WAN_IRQ_RETURN(a) return + #define WAN_IRQ_RETVAL void + #define WAN_IRQ_RETVAL_DECL(ret) + #define WAN_IRQ_RETVAL_SET(ret, val) + #ifndef WAN_IRQ_NONE + # define WAN_IRQ_NONE (0) #endif - #ifndef IRQ_HANDLED - # define IRQ_HANDLED (1) + #ifndef WAN_IRQ_HANDLED + # define WAN_IRQ_HANDLED (1) #endif - #define irqreturn_t void - #define wan_clear_bit(a,b) clear_bit((a),(b)) #define wan_set_bit(a,b) set_bit((a),(b)) #define wan_test_bit(a,b) test_bit((a),(b)) @@ -174,11 +190,11 @@ static inline struct proc_dir_entry *WP_PDE(const struct inode *inode) { -#if defined(WANPIPE_USE_I_PRIVATE) - return (struct proc_dir_entry *)inode->i_private; -#else - return (struct proc_dir_entry *)inode->u.generic_ip; -#endif + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18) + return (struct proc_dir_entry *)inode->u.generic_ip; + #else + return (struct proc_dir_entry *)inode->i_private; + #endif } #define wp_rcu_read_lock(in_dev) read_lock_bh(&in_dev->lock) @@ -313,17 +329,20 @@ #define ADMIN_CHECK() {if (!capable(CAP_SYS_ADMIN)) return -EPERM;} #define NET_ADMIN_CHECK() {if (!capable(CAP_NET_ADMIN)) return -EPERM;} - #define WAN_IRQ_RETVAL(a) return - #ifndef IRQ_NONE - # define IRQ_NONE (0) + #define WAN_IRQ_CALL(fn,args,ret) fn args + #define WAN_IRQ_RETURN(a) return + #define WAN_IRQ_RETVAL void + #define WAN_IRQ_RETVAL_DECL(ret) + #define WAN_IRQ_RETVAL_SET(ret, val) + #ifndef WAN_IRQ_NONE + # define WAN_IRQ_NONE (0) #endif - #ifndef IRQ_HANDLED - # define IRQ_HANDLED (1) + #ifndef WAN_IRQ_HANDLED + # define WAN_IRQ_HANDLED (1) #endif typedef unsigned long mm_segment_t; - #define irqreturn_t void #ifndef INIT_WORK # define INIT_WORK INIT_TQUEUE @@ -337,11 +356,11 @@ static inline struct proc_dir_entry *WP_PDE(const struct inode *inode) { -#if defined(WANPIPE_USE_I_PRIVATE) - return (struct proc_dir_entry *)inode->i_private; -#else - return (struct proc_dir_entry *)inode->u.generic_ip; -#endif + #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18) + return (struct proc_dir_entry *)inode->u.generic_ip; + #else + return (struct proc_dir_entry *)inode->i_private; + #endif } #else @@ -353,11 +372,11 @@ static inline struct proc_dir_entry *WP_PDE(const struct inode *inode) { -#if defined(WANPIPE_USE_I_PRIVATE) + #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18) return (struct proc_dir_entry *)inode->i_private; -#else + #else return (struct proc_dir_entry *)inode->u.generic_ip; -#endif + #endif } #define test_and_set_bit set_bit @@ -413,17 +432,21 @@ return 0; } - #define WAN_IRQ_RETVAL(a) return - #ifndef IRQ_NONE - # define IRQ_NONE (0) + #define WAN_IRQ_CALL(fn,args,ret) fn args + #define WAN_IRQ_RETURN(a) return + #define WAN_IRQ_RETVAL void + #define WAN_IRQ_RETVAL_DECL(ret) + #define WAN_IRQ_RETVAL_SET(ret, val) + + #ifndef WAN_IRQ_NONE + # define WAN_IRQ_NONE (0) #endif - - #ifndef IRQ_HANDLED - # define IRQ_HANDLED (1) + + #ifndef WAN_IRQ_HANDLED + # define WAN_IRQ_HANDLED (1) #endif typedef unsigned long mm_segment_t; - #define irqreturn_t void #endif diff --git a/patches/kdrivers/include/wanpipe_lapb_iface.h b/patches/kdrivers/include/wanpipe_lapb_iface.h index 4929fdf..8c15d44 100644 --- a/patches/kdrivers/include/wanpipe_lapb_iface.h +++ b/patches/kdrivers/include/wanpipe_lapb_iface.h @@ -27,6 +27,9 @@ typedef struct wp_lapb_reg extern void *wp_register_lapb_prot(void *, char *, void *, wplip_prot_reg_t *); +extern void *wp_register_lapd_prot(void *, char *, + void *, + wplip_prot_reg_t *); extern int wp_unregister_lapb_prot(void *); extern void *wp_register_lapb_chan_prot(void *callback_dev_ptr, diff --git a/patches/kdrivers/include/wanpipe_lip.h b/patches/kdrivers/include/wanpipe_lip.h index 47ca9a8..969df1f 100644 --- a/patches/kdrivers/include/wanpipe_lip.h +++ b/patches/kdrivers/include/wanpipe_lip.h @@ -1,4 +1,4 @@ -/* $Header: /usr/local/cvsroot/wanpipe_common/include/wanpipe_lip.h,v 1.36 2006/07/25 19:44:50 sangoma Exp $ */ +/* $Header: /usr/local/cvsroot/wanpipe_common/include/wanpipe_lip.h,v 1.38 2007/02/21 18:46:09 sangoma Exp $ */ #ifndef _WANPIPE_LIP_HEADER_ #define _WANPIPE_LIP_HEADER_ @@ -19,7 +19,7 @@ # include # include # include -# if defined(CONFIG_PRODUCT_WANPIPE_LAPB) +# if defined(CONFIG_PRODUCT_WANPIPE_LAPB) || defined(CONFIG_PRODUCT_WANPIPE_LIP_LAPD) # include # endif # if defined(CONFIG_PRODUCT_WANPIPE_XDLC) @@ -40,11 +40,11 @@ # include # include # include -# if defined(CONFIG_PRODUCT_WANPIPE_LAPB) +# if defined(CONFIG_PRODUCT_WANPIPE_LAPB) || defined(CONFIG_PRODUCT_WANPIPE_LIP_LAPD) # include # endif -# if defined(CONFIG_PRODUCT_WANPIPE_LAPD) -# include +# if defined(CONFIG_PRODUCT_WANPIPE_LIP_KATM) +# include # endif # if defined(CONFIG_PRODUCT_WANPIPE_XDLC) # include diff --git a/patches/kdrivers/include/wanpipe_tdm_api.h b/patches/kdrivers/include/wanpipe_tdm_api.h index 41649c8..9a274f6 100644 --- a/patches/kdrivers/include/wanpipe_tdm_api.h +++ b/patches/kdrivers/include/wanpipe_tdm_api.h @@ -110,8 +110,7 @@ enum wanpipe_tdm_api_cmds { SIOC_WP_TDM_CLEAR_RX_GAINS, SIOC_WP_TDM_CLEAR_TX_GAINS, - SIOC_WP_TDM_ENABLE_HWEC, - SIOC_WP_TDM_DISABLE_HWEC, + SIOC_WP_TDM_GET_FE_ALARMS, SIOC_WP_TDM_NOTSUPP /* */ @@ -132,8 +131,8 @@ enum wanpipe_tdm_api_events { WP_TDM_EVENT_TXSIG_OFFHOOK, WP_TDM_EVENT_TXSIG_ONHOOK, WP_TDM_EVENT_ONHOOKTRANSFER, - WP_TDM_EVENT_SETPOLARITY - + WP_TDM_EVENT_SETPOLARITY, + WP_TDM_EVENT_FE_ALARM }; #define WPTDM_A_BIT WAN_RBS_SIG_A @@ -154,8 +153,11 @@ typedef struct { unsigned char _event_type; unsigned char _rbs_rx_bits; unsigned int _time_stamp; - u_int16_t channel; + u_int16_t channel; union { + struct { + u_int8_t alarm; + }fe; struct { u_int8_t rbs_bits; }rbs; @@ -191,6 +193,7 @@ typedef struct { #define wp_tdm_api_event_dtmf_port wp_rx_hdr_u.wp_event.u_event.dtmf.port #define wp_tdm_api_event_ohttimer wp_rx_hdr_u.wp_event.u_event.ohttimer #define wp_tdm_api_event_polarity wp_rx_hdr_u.wp_event.u_event.polarity +#define wp_tdm_api_event_fe_alarm wp_rx_hdr_u.wp_event.u_event.fe.alarm } wp_tdm_api_rx_hdr_t; typedef struct { @@ -269,6 +272,7 @@ typedef struct wanpipe_tdm_api_cmd{ unsigned int rbs_tx_bits; /* Tx RBS Bits */ unsigned int hdlc; /* HDLC based device */ unsigned int idle_flag; /* IDLE flag to Tx */ + unsigned int fe_alarms; /* FE Alarms detected */ wp_tdm_chan_stats_t stats; /* TDM Statistics */ wp_tdm_api_rx_hdr_t event; /* TDM Event */ unsigned int data_len; @@ -276,12 +280,12 @@ typedef struct wanpipe_tdm_api_cmd{ }wanpipe_tdm_api_cmd_t; typedef struct wanpipe_tdm_api_event{ - int (*wp_rbs_event)(sng_fd_t fd, unsigned char rbs_bits); int (*wp_dtmf_event)(sng_fd_t fd, unsigned char dtmf, unsigned char type, unsigned char port); int (*wp_rxhook_event)(sng_fd_t fd, unsigned char hook_state); int (*wp_rxring_event)(sng_fd_t fd, unsigned char ring_state); int (*wp_ringtrip_event)(sng_fd_t fd, unsigned char ring_state); + int (*wp_fe_alarm_event)(sng_fd_t fd, unsigned char fe_alarm_event); }wanpipe_tdm_api_event_t; typedef struct wanpipe_tdm_api{ diff --git a/patches/kdrivers/include/wanpipe_version.h b/patches/kdrivers/include/wanpipe_version.h index 1c10f76..f136113 100644 --- a/patches/kdrivers/include/wanpipe_version.h +++ b/patches/kdrivers/include/wanpipe_version.h @@ -6,9 +6,9 @@ #define WANPIPE_COMPANY "Sangoma Technologies Inc" /********** LINUX **********/ -#define WANPIPE_VERSION "2.3.4" -#define WANPIPE_SUB_VERSION "16" -#define WANPIPE_VERSION_BETA 0 +#define WANPIPE_VERSION "3.1.0" +#define WANPIPE_SUB_VERSION "0" +#define WANPIPE_VERSION_BETA 1 #define WANPIPE_LITE_VERSION "1.1.1" /********** FreeBSD **********/ @@ -19,7 +19,7 @@ /********** OpenBSD **********/ #define WANPIPE_VERSION_OpenBSD "1.6.5" -#define WANPIPE_SUB_VERSION_OpenBSD "4" +#define WANPIPE_SUB_VERSION_OpenBSD "8" #define WANPIPE_VERSION_BETA_OpenBSD 1 #define WANPIPE_LITE_VERSION_OpenBSD "1.1.1" diff --git a/patches/kdrivers/include/wanrouter.h b/patches/kdrivers/include/wanrouter.h index 030bb61..c10ef1d 100644 --- a/patches/kdrivers/include/wanrouter.h +++ b/patches/kdrivers/include/wanrouter.h @@ -386,7 +386,7 @@ typedef struct wan_device #endif int (*wanpipe_ioctl) (netdevice_t*, struct ifreq*, int); #endif - unsigned char macAddr[ETHER_ADDR_LEN]; + unsigned char macAddr[ETHER_ADDR_LEN]; sdla_fe_iface_t fe_iface; sdla_fe_notify_iface_t fe_notify_iface; @@ -395,6 +395,7 @@ typedef struct wan_device unsigned long ec_enable_map; unsigned long ec_map; unsigned long ec_intmask; + int (*ec_enable)(void *pcard, int, int); unsigned char (*write_ec)(void*, unsigned short, unsigned char); diff --git a/patches/kdrivers/src/lip/Makefile b/patches/kdrivers/src/lip/Makefile index e9cc35e..cbd49fa 100644 --- a/patches/kdrivers/src/lip/Makefile +++ b/patches/kdrivers/src/lip/Makefile @@ -1,243 +1,73 @@ -# ============================================================================ -# Makefile Multiprotocol WAN Router for Linux. Make Script. # -# Copyright (c) 1995-1997 Sangoma Technologies Inc. All Rights Reserved. -# ---------------------------------------------------------------------------- -# Mar 27 2000 Nenad Corbic Version 2.0.5 to 2.1.2 -# Jan 07, 1999 Jaspreet Singh Version 2.0.4 -# Aug 25, 1998 Jaspreet Singh Version 2.0.3 -# Nov 06, 1997 Jaspreet Singh Version 2.0.0 -# Jul 28, 1997 Jaspreet Singh Version 1.0.5 -# Jul 10, 1997 Jaspreet Singh Version 1.0.4 -# June 3, 1997 Jaspreet Singh Version 1.0.3 -# Jan 15, 1997 Gene Kozin Version 1.0.1. -# Dec 31, 1996 Gene Kozin Initial version. -# ============================================================================ +# Makefile for the Linux network (wan) device drivers. +# +# 3 Aug 2000, Christoph Hellwig +# Rewritten to use lists instead of if-statements. +# -####### DEFINES ############################################################## +FRDIR=../fr +SPPPDIR=../sppp +ATMDIR=../atm +LIP_KATMDIR=../lip_katm +LIP_ATMDIR=../lip_atm +COMMON=../wanpipe +ROUTER=../router -ARCH = $(shell uname -m) +CONFIG_WANPIPE_FR=y +CONFIG_WANPIPE_SPPP=y +CONFIG_WANPIPE_ATM=n +CONFIG_WANPIPE_LIP_KATM=y +CONFIG_WANPIPE_LIP_ATM=y -OUTDIR = mod -TMPDIR = tmp -MODDIR = modinfo -WANDIR = ../wanpipe -FRDIR = ../fr -LAPBDIR = ../lapb -LAPDDIR = ../lapd -XDLCDIR = ../xdlc -SPPPDIR = ../sppp -XMTP2DIR= ../xmtp2 -X25DIR = ../x25 -LIP_ATM_DIR = ../lip_atm -WAN_ROUTER_DIR = /wanpipe/code/router +EXTRA_CFLAGS=$(EXTRA_FLAGS) +EXTRA_CFLAGS+=-DWANLIP_DRIVER -DWPLIP_TTY_SUPPORT -WAN_TTY_SUPPORT=YES -WAN_FR_SUPPORT=YES -WAN_X25_SUPPORT=NO -WAN_CHDLC_PPP_SUPPORT=YES -WAN_XDLC_SUPPORT=YES -WAN_LAPB_SUPPORT=NO -WAN_XMTP2_SUPPORT=NO -WANPIPE_LIP_ATM=YES -WAN_LAPD_SUPPORT=NO -REGPARM=YES +wanpipe_lip-y := wanpipe_lip_iface.o wanpipe_lip_sub.o +wanpipe_lip-y += wanpipe_lip_netdev.o wanpipe_lip_prot.o +wanpipe_lip-y += wanpipe_lip_bh.o wanpipe_lip_ipx.o +wanpipe_lip-y += $(COMMON)/wanpipe_abstr.o $(ROUTER)/wanpipe_linux_iface.o -LIP_LINKED_PROTS= +ifeq "${CONFIG_WANPIPE_FR}" "y" +PRODUCT_DEFINES += -DWPLIP_TTY_SUPPORT +wanpipe_lip-y += wanpipe_lip_tty.o +endif -KERN := $(shell grep 2.4 /usr/src/linux/include/linux/version.h) -KERN_V26 := $(shell grep 2.6 /usr/src/linux/include/linux/version.h) - -ifneq "${KERN}" "" - -MODTYPE=o -K_WAN_DIR=drivers/net/wan - -else - -ifneq "${KERN_V26}" "" - -ifeq "${ARCH}" "x86_64" -#LDFLAGS=-m elf_x86_64 -LD_ELF=-m elf_x86_64 -else -#LDFLAGS=-m elf_i386 -LD_ELF=-m elf_i386 +ifeq "${CONFIG_WANPIPE_FR}" "y" +PRODUCT_DEFINES += -DCONFIG_PRODUCT_WANPIPE_FR +wanpipe_lip-y += $(FRDIR)/wanpipe_fr_iface.o $(FRDIR)/wanpipe_fr_snmp.o +EXTRA_CFLAGS += -I$(FRDIR) -I$(FRDIR)/include endif -MODTYPE=ko -K_WAN_DIR=drivers/net/wan - -else - -MODTYPE=o -K_WAN_DIR=drivers/net - +ifeq "${CONFIG_WANPIPE_SPPP}" "y" +PRODUCT_DEFINES += -DCONFIG_PRODUCT_WANPIPE_CHDLC -DCONFIG_PRODUCT_WANPIPE_PPP +wanpipe_lip-y += $(SPPPDIR)/wanpipe_sppp_iface.o $(SPPPDIR)/wanpipe_sppp_in.o +wanpipe_lip-y += $(SPPPDIR)/wanpipe_sppp_auth.o $(SPPPDIR)/wanpipe_sppp_sub.o +EXTRA_CFLAGS += -I$(SPPPDIR) -I$(SPPPDIR)/include -I/common/sppp/include endif +#ifeq "${CONFIG_WANPIPE_LIP_KATM}" "y" +PRODUCT_DEFINES += -DCONFIG_PRODUCT_WANPIPE_LIP_KATM +wanpipe_lip-y += $(LIP_KATMDIR)/wanpipe_katm_iface.o +wanpipe_lip-y += $(LIP_KATMDIR)/wanpipe_katm_sub.o +EXTRA_CFLAGS += -I$(LIP_KATMDIR) -I$(LIP_KATMDIR)/include -I/common/lip_katm/include +#endif + +#ifeq "${CONFIG_WANPIPE_LIP_ATM}" "y" +PRODUCT_DEFINES += -DCONFIG_PRODUCT_WANPIPE_LIP_ATM +wanpipe_lip-y += $(LIP_ATMDIR)/wanpipe_lip_atm_iface.o +EXTRA_CFLAGS += -I$(LIP_ATMDIR) -I$(LIP_ATMDIR)/include -I/common/lip_atm/include +#endif + +ifeq "${CONFIG_WANPIPE_ATM}" "y" +PRODUCT_DEFINES += -DCONFIG_PRODUCT_WANPIPE_ATM +wanpipe_lip-y += $(ATMDIR)/wanpipe_atm.o +EXTRA_CFLAGS += -I$(ATMDIR) -I$(ATMDIR)/include endif -CFLAGS=$(shell cat /wanpipe/GCFLAGS) -CFLAGS+=-DWANLIP_DRIVER -#CFLAGS=-Wp,-MD,.wanpipe_lip.o.d -nostdinc -iwithprefix include -D__KERNEL__ -D__LINUX__ -Iinclude -I/usr/src/linux/include -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=$(ARCH) -I/usr/src/linux/include/asm-i386/mach-default -O2 -DWANLIP_DRIVER -DMODULE - -#CFLAGS+= -DCONFIG_PRODUCT_WANPIPE_FR -DCONFIG_PRODUCT_WANPIPE_CHDLC -DCONFIG_PRODUCT_WANPIPE_PPP -DCONFIG_PRODUCT_WANPIPE_XDLC -DCONFIG_PRODUCT_WANPIPE_LAPB -DCONFIG_PRODUCT_WANPIPE_XMTP2 - -ifeq "$(WAN_TTY_SUPPORT)" "YES" -CFLAGS+= -DWPLIP_TTY_SUPPORT -TTY_SUPPORT_FILE=$(TMPDIR)/wanpipe_lip_tty.o -endif - -ifeq "$(WAN_FR_SUPPORT)" "YES" -CFLAGS+= -DCONFIG_PRODUCT_WANPIPE_FR -LIP_LINKED_PROTS+= $(FRDIR)/wanpipe_fr.o -endif - -ifeq "${WANPIPE_LIP_ATM}" "YES" -CFLAGS+=-DCONFIG_PRODUCT_WANPIPE_LIP_ATM -LIP_LINKED_PROTS+= $(LIP_ATM_DIR)/wanpipe_lip_atm.o -endif - -ifeq "$(WAN_X25_SUPPORT)" "YES" -CFLAGS+= -DCONFIG_PRODUCT_WANPIPE_X25 -LIP_LINKED_PROTS+= $(X25DIR)/wanpipe_x25.o -endif - -ifeq "$(WAN_CHDLC_PPP_SUPPORT)" "YES" -CFLAGS+= -DCONFIG_PRODUCT_WANPIPE_CHDLC -DCONFIG_PRODUCT_WANPIPE_PPP -LIP_LINKED_PROTS+= $(SPPPDIR)/wanpipe_sppp.o -endif - -ifeq "$(WAN_XDLC_SUPPORT)" "YES" -CFLAGS+= -DCONFIG_PRODUCT_WANPIPE_XDLC -LIP_LINKED_PROTS+= $(XDLCDIR)/wanpipe_xdlc.o -endif - -ifeq "$(WAN_LAPB_SUPPORT)" "YES" -CFLAGS+= -DCONFIG_PRODUCT_WANPIPE_LAPB -LIP_LINKED_PROTS+= $(LAPBDIR)/wanpipe_lapb.o -endif - -ifeq "$(WAN_LAPD_SUPPORT)" "YES" -CFLAGS+= -DCONFIG_PRODUCT_WANPIPE_LAPD -LIP_LINKED_PROTS+= $(LAPDDIR)/wanpipe_lapd.o -endif - -ifeq "$(WAN_XMTP2_SUPPORT)" "YES" -CFLAGS+= -DCONFIG_PRODUCT_WANPIPE_XMTP2 -LIP_LINKED_PROTS+= $(XMTP2DIR)/wanpipe_xmtp2.o -endif -####### RULES ################################################################ - -all: $(OUTDIR)/wanpipe_lip.$(MODTYPE) - @echo "Ok." - -# ----- Multiprotocol WAN router module -------------------------------------- +EXTRA_CFLAGS += $(PRODUCT_DEFINES) -$(OUTDIR)/wanpipe_lip.ko: $(OUTDIR)/wanpipe_lip.o $(MODDIR)/wanpipe_lip.mod.o - ld $(LD_ELF) -r -o $@ $^ - chmod 664 $@ +wanpipe_lip-objs := $(wanpipe_lip-y) -$(MODDIR)/wanpipe_lip.mod.o: $(MODDIR)/wanpipe_lip.mod.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=wanpipe_lip -DKBUILD_MODNAME=wanpipe_lip -c -o $@ $^ - chmod 664 $@ +obj-m += wanpipe_lip.o -#---------------------------------------------------- - -$(OUTDIR)/wanpipe_lip.o: $(TMPDIR)/wanpipe_lip_iface.o $(TMPDIR)/wanpipe_lip_sub.o $(TMPDIR)/wanpipe_lip_netdev.o $(TMPDIR)/wanpipe_lip_prot.o $(TMPDIR)/wanpipe_lip_bh.o $(TMPDIR)/wanpipe_lip_ipx.o $(TMPDIR)/wanpipe_abstr.o $(TMPDIR)/wanpipe_linux_iface.o $(TTY_SUPPORT_FILE) $(LIP_LINKED_PROTS) - ld $(LD_ELF) -r -o $@ $^ - chmod 664 $@ - - -#----------------------------------------------------- - -$(TMPDIR)/wanpipe_lip_iface.o: wanpipe_lip_iface.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=wanpipe_lip_iface -DKBUILD_MODNAME=wanpipe_lip -c -o $@ $^ - chmod 664 $@ - -$(TMPDIR)/wanpipe_lip_sub.o: wanpipe_lip_sub.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=wanpipe_lip_sub -DKBUILD_MODNAME=wanpipe_lip -c -o $@ $^ - chmod 664 $@ - -$(TMPDIR)/wanpipe_lip_netdev.o: wanpipe_lip_netdev.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=wanpipe_lip_netdev -DKBUILD_MODNAME=wanpipe_lip -c -o $@ $^ - chmod 664 $@ - -$(TMPDIR)/wanpipe_lip_prot.o: wanpipe_lip_prot.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=wanpipe_lip_prot -DKBUILD_MODNAME=wanpipe_lip -c -o $@ $^ - chmod 664 $@ - -$(TMPDIR)/wanpipe_lip_bh.o: wanpipe_lip_bh.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=wanpipe_lip_bh -DKBUILD_MODNAME=wanpipe_lip -c -o $@ $^ - chmod 664 $@ - -$(TMPDIR)/wanpipe_lip_tty.o: wanpipe_lip_tty.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=wanpipe_lip_tty -DKBUILD_MODNAME=wanpipe_lip -c -o $@ $^ - chmod 664 $@ - -$(TMPDIR)/wanpipe_lip_ipx.o: wanpipe_lip_ipx.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=wanpipe_lip_ipx -DKBUILD_MODNAME=wanpipe_lip -c -o $@ $^ - chmod 664 $@ - -$(TMPDIR)/wanpipe_abstr.o: $(WANDIR)/wanpipe_abstr.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=wanpipe_abstr -DKBUILD_MODNAME=wanpipe_lip -c -o $@ $^ - chmod 664 $@ - -$(TMPDIR)/wanpipe_linux_iface.o: $(WAN_ROUTER_DIR)/wanpipe_linux_iface.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=wanpipe_linux_iface -DKBUILD_MODNAME=wanpipe_lip -c -o $@ $^ - chmod 664 $@ - - -$(FRDIR)/wanpipe_fr.o: - make -C $(FRDIR) clean - make -C $(FRDIR) all REGPARM=$(REGPARM) - -$(LIP_ATM_DIR)/wanpipe_lip_atm.o: - make -C $(LIP_ATM_DIR) clean - make -C $(LIP_ATM_DIR) all REGPARM=$(REGPARM) - - -$(LAPBDIR)/wanpipe_lapb.o: - make -C $(LAPBDIR) clean - make -C $(LAPBDIR) all REGPARM=$(REGPARM) - -$(LAPDDIR)/wanpipe_lapd.o: - make -C $(LAPDDIR) clean - make -C $(LAPDDIR) all REGPARM=$(REGPARM) - -$(XDLCDIR)/wanpipe_xdlc.o: - make -C $(XDLCDIR) clean - make -C $(XDLCDIR) all REGPARM=$(REGPARM) - -$(SPPPDIR)/wanpipe_sppp.o: - make -C $(SPPPDIR) clean - make -C $(SPPPDIR) all REGPARM=$(REGPARM) - -$(XMTP2DIR)/wanpipe_xmtp2.o: - make -C $(XMTP2DIR) clean - make -C $(XMTP2DIR) all REGPARM=$(REGPARM) - -$(X25DIR)/wanpipe_x25.o: - make -C $(X25DIR) clean - make -C $(X25DIR) all REGPARM=$(REGPARM) - -clean: - rm -f wanpipe_lip.$(MODTYPE) - rm -f *.o* - rm -f mod/*.*o - rm -f tmp/*.*o - rm -f modinfo/*.*o - make -C ../fr clean - make -C ../lapb clean - make -C ../lapd clean - make -C ../xdlc clean - make -C $(SPPPDIR) clean - make -C $(XMTP2DIR) clean - make -C ../x25 clean - -install: - install -D $(OUTDIR)/wanpipe_lip.${MODTYPE} /lib/modules/$(shell uname -r)/kernel/net/wanrouter/wanpipe_lip.${MODTYPE} - -uninstall: - rm -f /lib/modules/$(shell uname -r)/kernel/net/wanrouter/wanpipe_lip.${MODTYPE} diff --git a/patches/kdrivers/src/lip/bin/wanpipe_lapb.gcc2.i386.o b/patches/kdrivers/src/lip/bin/wanpipe_lapb.gcc2.i386.o deleted file mode 100644 index f37d445..0000000 Binary files a/patches/kdrivers/src/lip/bin/wanpipe_lapb.gcc2.i386.o and /dev/null differ diff --git a/patches/kdrivers/src/lip/bin/wanpipe_lapb.gcc2.i686.o b/patches/kdrivers/src/lip/bin/wanpipe_lapb.gcc2.i686.o deleted file mode 100644 index 8db0822..0000000 Binary files a/patches/kdrivers/src/lip/bin/wanpipe_lapb.gcc2.i686.o and /dev/null differ diff --git a/patches/kdrivers/src/lip/bin/wanpipe_lapb.gcc3.i386.o b/patches/kdrivers/src/lip/bin/wanpipe_lapb.gcc3.i386.o index 3ee2cb8..2d7833c 100644 Binary files a/patches/kdrivers/src/lip/bin/wanpipe_lapb.gcc3.i386.o and b/patches/kdrivers/src/lip/bin/wanpipe_lapb.gcc3.i386.o differ diff --git a/patches/kdrivers/src/lip/bin/wanpipe_lapb.gcc3.i386.regparm.o b/patches/kdrivers/src/lip/bin/wanpipe_lapb.gcc3.i386.regparm.o index 726a6f6..eb0fd27 100644 Binary files a/patches/kdrivers/src/lip/bin/wanpipe_lapb.gcc3.i386.regparm.o and b/patches/kdrivers/src/lip/bin/wanpipe_lapb.gcc3.i386.regparm.o differ diff --git a/patches/kdrivers/src/lip/bin/wanpipe_lapb.gcc3.i686.o b/patches/kdrivers/src/lip/bin/wanpipe_lapb.gcc3.i686.o index 2e35b3e..019296d 100644 Binary files a/patches/kdrivers/src/lip/bin/wanpipe_lapb.gcc3.i686.o and b/patches/kdrivers/src/lip/bin/wanpipe_lapb.gcc3.i686.o differ diff --git a/patches/kdrivers/src/lip/bin/wanpipe_lapb.gcc3.i686.regparm.o b/patches/kdrivers/src/lip/bin/wanpipe_lapb.gcc3.i686.regparm.o index 673a903..78c4929 100644 Binary files a/patches/kdrivers/src/lip/bin/wanpipe_lapb.gcc3.i686.regparm.o and b/patches/kdrivers/src/lip/bin/wanpipe_lapb.gcc3.i686.regparm.o differ diff --git a/patches/kdrivers/src/lip/bin/wanpipe_lapb.gcc3.x86_64.o b/patches/kdrivers/src/lip/bin/wanpipe_lapb.gcc3.x86_64.o deleted file mode 100644 index c0aed51..0000000 Binary files a/patches/kdrivers/src/lip/bin/wanpipe_lapb.gcc3.x86_64.o and /dev/null differ diff --git a/patches/kdrivers/src/lip/bin/wanpipe_lapb.gcc3.x86_64.regparm.o b/patches/kdrivers/src/lip/bin/wanpipe_lapb.gcc3.x86_64.regparm.o deleted file mode 100644 index a500206..0000000 Binary files a/patches/kdrivers/src/lip/bin/wanpipe_lapb.gcc3.x86_64.regparm.o and /dev/null differ diff --git a/patches/kdrivers/src/lip/bin/wanpipe_lip_atm.gcc3.i386.o b/patches/kdrivers/src/lip/bin/wanpipe_lip_atm.gcc3.i386.o index 38ece42..1ee33de 100644 Binary files a/patches/kdrivers/src/lip/bin/wanpipe_lip_atm.gcc3.i386.o and b/patches/kdrivers/src/lip/bin/wanpipe_lip_atm.gcc3.i386.o differ diff --git a/patches/kdrivers/src/lip/bin/wanpipe_lip_atm.gcc3.i386.regparm.o b/patches/kdrivers/src/lip/bin/wanpipe_lip_atm.gcc3.i386.regparm.o index a6d0b87..d148ca9 100644 Binary files a/patches/kdrivers/src/lip/bin/wanpipe_lip_atm.gcc3.i386.regparm.o and b/patches/kdrivers/src/lip/bin/wanpipe_lip_atm.gcc3.i386.regparm.o differ diff --git a/patches/kdrivers/src/lip/bin/wanpipe_lip_atm.gcc3.i686.o b/patches/kdrivers/src/lip/bin/wanpipe_lip_atm.gcc3.i686.o index e8bd145..d63a5f5 100644 Binary files a/patches/kdrivers/src/lip/bin/wanpipe_lip_atm.gcc3.i686.o and b/patches/kdrivers/src/lip/bin/wanpipe_lip_atm.gcc3.i686.o differ diff --git a/patches/kdrivers/src/lip/bin/wanpipe_lip_atm.gcc3.i686.regparm.o b/patches/kdrivers/src/lip/bin/wanpipe_lip_atm.gcc3.i686.regparm.o index 92f4c01..fc58154 100644 Binary files a/patches/kdrivers/src/lip/bin/wanpipe_lip_atm.gcc3.i686.regparm.o and b/patches/kdrivers/src/lip/bin/wanpipe_lip_atm.gcc3.i686.regparm.o differ diff --git a/patches/kdrivers/src/lip/bin/wanpipe_sppp.gcc2.i386.o b/patches/kdrivers/src/lip/bin/wanpipe_sppp.gcc2.i386.o index ef57cc1..e1602c3 100644 Binary files a/patches/kdrivers/src/lip/bin/wanpipe_sppp.gcc2.i386.o and b/patches/kdrivers/src/lip/bin/wanpipe_sppp.gcc2.i386.o differ diff --git a/patches/kdrivers/src/lip/bin/wanpipe_sppp.gcc2.i686.o b/patches/kdrivers/src/lip/bin/wanpipe_sppp.gcc2.i686.o index 85c43cb..583dc1d 100644 Binary files a/patches/kdrivers/src/lip/bin/wanpipe_sppp.gcc2.i686.o and b/patches/kdrivers/src/lip/bin/wanpipe_sppp.gcc2.i686.o differ diff --git a/patches/kdrivers/src/lip/bin/wanpipe_sppp.gcc3.i386.o b/patches/kdrivers/src/lip/bin/wanpipe_sppp.gcc3.i386.o index 233eb7d..e0d5e3c 100644 Binary files a/patches/kdrivers/src/lip/bin/wanpipe_sppp.gcc3.i386.o and b/patches/kdrivers/src/lip/bin/wanpipe_sppp.gcc3.i386.o differ diff --git a/patches/kdrivers/src/lip/bin/wanpipe_sppp.gcc3.i386.regparm.o b/patches/kdrivers/src/lip/bin/wanpipe_sppp.gcc3.i386.regparm.o index 55dc837..6cc185f 100644 Binary files a/patches/kdrivers/src/lip/bin/wanpipe_sppp.gcc3.i386.regparm.o and b/patches/kdrivers/src/lip/bin/wanpipe_sppp.gcc3.i386.regparm.o differ diff --git a/patches/kdrivers/src/lip/bin/wanpipe_sppp.gcc3.i686.o b/patches/kdrivers/src/lip/bin/wanpipe_sppp.gcc3.i686.o index a90c237..fae267f 100644 Binary files a/patches/kdrivers/src/lip/bin/wanpipe_sppp.gcc3.i686.o and b/patches/kdrivers/src/lip/bin/wanpipe_sppp.gcc3.i686.o differ diff --git a/patches/kdrivers/src/lip/bin/wanpipe_sppp.gcc3.i686.regparm.o b/patches/kdrivers/src/lip/bin/wanpipe_sppp.gcc3.i686.regparm.o index ce84195..3242d9e 100644 Binary files a/patches/kdrivers/src/lip/bin/wanpipe_sppp.gcc3.i686.regparm.o and b/patches/kdrivers/src/lip/bin/wanpipe_sppp.gcc3.i686.regparm.o differ diff --git a/patches/kdrivers/src/lip/diff b/patches/kdrivers/src/lip/diff new file mode 100644 index 0000000..6314011 --- /dev/null +++ b/patches/kdrivers/src/lip/diff @@ -0,0 +1,452 @@ +Only in lip_katm: CVS +Only in lip_katm: mod +Only in lip_katm: tmp +diff -dur lip_katm.orig/wanpipe_katm.h lip_katm/wanpipe_katm.h +--- lip_katm.orig/wanpipe_katm.h 2007-03-16 16:41:23.000000000 -0500 ++++ lip_katm/wanpipe_katm.h 2007-04-20 21:45:05.537688296 -0400 +@@ -2,10 +2,12 @@ + #ifndef _WAN_KATM_H_ + #define _WAN_KATM_H_ 1 + +-#include "stddef.h" +-#include +-#include "wanpipe_abstr.h" +-#include "wanpipe_cfg.h" ++#include ++ ++//#include ++//#include "wanpipe_abstr.h" ++//#include "wanpipe_cfg.h" ++ + + /* This is the shared header between the LIP + * and this PROTOCOL */ +@@ -30,25 +32,34 @@ + #define AAL5_CRC32_MASK (0xDEBB20E3) /* CRC-32 Mask */ + + ++struct wp_katm_channel; ++ ++ + typedef struct _katm_ + { +- unsigned long critical; ++ unsigned long critical; + + /* Used by lip layer */ +- void *link_dev; +- void *dev; ++ void *link_dev; ++ void *dev; + +- unsigned char type; +- wplip_prot_reg_t reg; +- wan_atm_conf_if_t cfg; +- unsigned char name[WPIFNAMSIZ+1]; +- unsigned char hwdevname[WPIFNAMSIZ+1]; ++ unsigned char type; ++ wplip_prot_reg_t reg; ++ wan_atm_conf_if_t cfg; ++ unsigned char name[WPIFNAMSIZ+1]; ++ unsigned char hwdevname[WPIFNAMSIZ+1]; + int state; +- unsigned int refcnt; + + /* INSERT PROTOCOL SPECIFIC VARIABLES HERE */ + void *atmdev; // + void *sar_dev; ++ ++ WAN_LIST_HEAD(,wp_katm_channel) list_head_ifdev; ++ unsigned int dev_cnt; ++ wan_rwlock_t dev_list_lock; ++ struct wp_katm_channel *cur_tx; ++ ++ atomic_t refcnt; + } wp_katm_t; + + +@@ -95,6 +106,11 @@ + /* Link back to the wp_katm_t device */ + wp_katm_t *atm_link; + void *sar_vcc; ++ ++ wan_skb_queue_t tx_queue; ++ ++ WAN_LIST_ENTRY(wp_katm_channel) list_entry; ++ atomic_t refcnt; + + } wp_katm_channel_t; + +@@ -109,6 +125,9 @@ + void *optval, int optlen); + int wan_lip_katm_sg_send(struct atm_vcc *vcc, unsigned long start, + unsigned long size); ++int wpkatm_priv_bh (wp_katm_t *atm_link); ++void wpkatm_insert_vccdev(wp_katm_t *atm_link, wp_katm_channel_t *atm_chan); ++void wpkatm_remove_vccdev(wp_katm_t *atm_link, wp_katm_channel_t *atm_chan); + //int wp_katm_activate_channel(struct atm_vcc *vcc, wp_katm_channel_t *chan); + + /* ATM Callbacks */ +@@ -123,32 +142,6 @@ + + + +-/* PRIVATE Debug Functions */ +- +-#define wp_dev_hold(dev) do{\ +- wpabs_debug_test("%s:%d (dev_hold) Refnt %i!\n",\ +- __FUNCTION__,__LINE__,dev->refcnt );\ +- dev->refcnt++; \ +- }while(0) +- +-#define wp_dev_put(dev) do{\ +- wpabs_debug_test("%s:%d (wp_dev_put): Refnt %i!\n",\ +- __FUNCTION__,__LINE__,dev->refcnt );\ +- if (--dev->refcnt == 0){\ +- wpabs_debug_test("%s:%d (wp_dev_put): Deallocating!\n",\ +- __FUNCTION__,__LINE__);\ +- wpabs_free(dev);\ +- dev=NULL;\ +- }\ +- }while(0) +- +-#define FUNC_BEGIN() wpabs_debug_test("%s:%d ---Begin---\n",__FUNCTION__,__LINE__); +-#define FUNC_END() wpabs_debug_test("%s:%d ---End---\n\n",__FUNCTION__,__LINE__); +- +-#define FUNC_BEGIN1() wpabs_debug_event("%s:%d ---Begin---\n",__FUNCTION__,__LINE__); +-#define FUNC_END1() wpabs_debug_event("%s:%d ---End---\n\n",__FUNCTION__,__LINE__); +- +- + #endif + + +Only in lip_katm: wanpipe_katm.h~ +diff -dur lip_katm.orig/wanpipe_katm_iface.c lip_katm/wanpipe_katm_iface.c +--- lip_katm.orig/wanpipe_katm_iface.c 2007-03-16 16:41:23.000000000 -0500 ++++ lip_katm/wanpipe_katm_iface.c 2007-04-20 21:45:05.536688448 -0400 +@@ -53,9 +53,6 @@ + int wp_katm_tx(void *prot_ptr, void *skb, int type) + /********************************************************************************************/ + { +- wp_katm_t *prot = (wp_katm_t *)prot_ptr; +- int err; +- + /* This function is not used */ + + wpabs_debug_event("%s %d\n", +@@ -102,7 +99,7 @@ + struct atm_dev *atmdev; + wplip_prot_reg_t katm_callback_ops; + +- int x=0; ++ + + FUNC_BEGIN(); + +@@ -124,9 +121,14 @@ + + /* Copy the LIP call back functions used to call + * the LIP layer */ ++ wpabs_memset(atm_link,0,sizeof(wp_katm_t)); + wpabs_memcpy(&atm_link->reg,prot_reg,sizeof(wplip_prot_reg_t)); + wpabs_strncpy(atm_link->name,devname,sizeof(atm_link->name)-1); + ++ wpabs_memcpy(&atm_link->cfg,cfg_ptr,sizeof(atm_link->cfg)); ++ ++ atm_link->dev_list_lock=RW_LOCK_UNLOCKED; ++ + /* INITIALIZE THE PROTOCOL HERE */ + atmdev = atm_dev_register(devname, &ops, -1, NULL); + if (atmdev == NULL) { +@@ -186,6 +188,8 @@ + wpabs_debug_test("%s: %s %d\n", + atm_link->name,__FUNCTION__,__LINE__); + ++ wan_set_bit(0,&atm_link->critical); ++ + FUNC_BEGIN(); + + wp_unregister_atm_prot(atm_link->sar_dev); +@@ -341,6 +345,12 @@ + return 0; + } + ++ ++int wpkatm_bh (void *atm_link) ++{ ++ return wpkatm_priv_bh(atm_link); ++} ++ + /*====================================================== + * wp_katm_data_indication + * +@@ -404,3 +414,139 @@ + prot->reg.chan_set_state(prot->dev,WAN_DISCONNECTED,NULL,0); + } + } ++ ++int wpkatm_atmdev_tx(wp_katm_channel_t *atm_dev) ++{ ++ wp_katm_t *atm_link = atm_dev->atm_link; ++ netskb_t *skb; ++ int err=0; ++ ++ skb=wan_skb_dequeue(&atm_dev->tx_queue); ++ if (skb){ ++ ++ if (atm_link->dev && atm_link->reg.tx_chan_down){ ++ err = atm_link->reg.tx_chan_down(atm_link->dev,skb); ++ }else{ ++ wpabs_debug_event("%s: %s %d ERROR no tx_chan_down \n", ++ atm_dev->name,__FUNCTION__,__LINE__); ++ wpabs_skb_free(skb); ++ return -1; ++ } ++ ++ if (err != 0){ ++ wan_skb_queue_head(&atm_dev->tx_queue,skb); ++ return 1; ++ } ++ } ++ ++ return 0; ++} ++ ++ ++int wpkatm_priv_bh (wp_katm_t *atm_link) ++{ ++ wp_katm_channel_t *atm_dev=NULL; ++ int err=0; ++ unsigned int timeout_cnt=200; ++ int moretx=0; ++ unsigned long flags; ++ ++ if (!atm_link) { ++ return -1; ++ } ++ ++ if (wan_test_bit(0,&atm_link->critical) ) { ++ DEBUG_EVENT("%s: KATM BH Down\n", ++ atm_link->name); ++ return -1; ++ } ++ ++ if (wan_test_and_set_bit(1,&atm_link->critical)) { ++ return -1; ++ } ++ ++ WP_READ_LOCK(&atm_link->dev_list_lock,flags); ++ ++ atm_dev=WAN_LIST_FIRST(&atm_link->list_head_ifdev); ++ if (!atm_dev){ ++ goto wpkatm_bh_transmit_exit; ++ } ++ ++ for (;;) { ++ if (--timeout_cnt == 0){ ++ DEBUG_EVENT("%s: ATMDEV Priority TxBH Time squeeze\n",atm_link->name); ++ break; ++ } ++ ++ if (!wan_test_bit(ATM_VF_READY,&atm_dev->vcc->flags)) { ++ break; ++ } ++ ++ err = wpkatm_atmdev_tx(atm_dev); ++ if (err){ ++ break; ++ } ++ ++ if (wan_skb_queue_len(&atm_dev->tx_queue) == 0) { ++ break; ++ } ++ } ++ ++ timeout_cnt=5000; ++ ++ if ((atm_dev=atm_link->cur_tx) == NULL){ ++ ++ atm_dev=WAN_LIST_FIRST(&atm_link->list_head_ifdev); ++ if (!atm_dev){ ++ goto wpkatm_bh_transmit_exit; ++ } ++ ++ atm_link->cur_tx=atm_dev; ++ } ++ ++ ++ for (;;){ ++ ++ if (--timeout_cnt == 0){ ++ DEBUG_EVENT("%s: LipDev TxBH Time squeeze\n",atm_link->name); ++ goto wpkatm_bh_transmit_exit; ++ } ++ ++ if (!wan_test_bit(ATM_VF_READY,&atm_dev->vcc->flags)) { ++ goto wpkatm_bh_transmit_skip; ++ } ++ ++ err = wpkatm_atmdev_tx(atm_dev); ++ if (err){ ++ if (wan_skb_queue_len(&atm_dev->tx_queue)) { ++ moretx=1; ++ } ++ goto wpkatm_bh_transmit_exit; ++ } ++ ++ if (wan_skb_queue_len(&atm_dev->tx_queue)) { ++ moretx=1; ++ } ++ ++wpkatm_bh_transmit_skip: ++ ++ atm_dev=WAN_LIST_NEXT(atm_dev,list_entry); ++ if (atm_dev == NULL){ ++ atm_dev=WAN_LIST_FIRST(&atm_link->list_head_ifdev); ++ } ++ ++ if (atm_dev == atm_link->cur_tx){ ++ /* We went through the whole list */ ++ break; ++ } ++ } ++ ++wpkatm_bh_transmit_exit: ++ ++ atm_link->cur_tx=atm_dev; ++ WP_READ_UNLOCK(&atm_link->dev_list_lock,flags); ++ wan_clear_bit(1,&atm_link->critical); ++ ++ return moretx; ++ ++} +Only in lip_katm: wanpipe_katm_iface.c~ +Only in lip_katm: wanpipe_katm_iface.o +Only in lip_katm: .wanpipe_katm_iface.o.cmd +diff -dur lip_katm.orig/wanpipe_katm_sub.c lip_katm/wanpipe_katm_sub.c +--- lip_katm.orig/wanpipe_katm_sub.c 2007-03-16 16:41:23.000000000 -0500 ++++ lip_katm/wanpipe_katm_sub.c 2007-04-20 21:45:05.537688296 -0400 +@@ -38,7 +38,7 @@ + { + unsigned char tx_tclass = vcc->qos.txtp.traffic_class; + unsigned char rx_tclass = vcc->qos.rxtp.traffic_class; +- //wp_katm_t *atm_link = vcc->dev->dev_data; ++ wp_katm_t *atm_link = vcc->dev->dev_data; + wp_katm_channel_t *chan = vcc->dev_data; + if (!chan) { + wpabs_debug_event("%s:%d Error no device\n",__FUNCTION__,__LINE__); +@@ -67,6 +67,8 @@ + wp_unregister_atm_chan(chan->sar_vcc); + chan->sar_vcc=NULL; + ++ wpkatm_remove_vccdev(atm_link,chan); ++ + if(vcc->dev_data) //insurance against locking up + kfree(vcc->dev_data); //Free the chan struct we created in Open + vcc->dev_data = NULL; +@@ -206,6 +208,8 @@ + return result; + } + ++ wpkatm_insert_vccdev(atm_link,chan); ++ + /* Tells the stack that this VC is ready for Tx/Rx */ + wpabs_set_bit(ATM_VF_READY,&vcc->flags); + +@@ -278,12 +282,16 @@ + wpabs_skb_free(nskb); + if (vcc->pop) vcc->pop(vcc,skb); + else dev_kfree_skb(skb); ++ ++ wpkatm_priv_bh(atm_link); ++ + return -1; + } + + if (vcc->pop) vcc->pop(vcc,skb); + else dev_kfree_skb(skb); + ++ wpkatm_priv_bh(atm_link); + + // wpabs_debug_event("%s:%d Send OK\n", + // __FUNCTION__,__LINE__); +@@ -361,6 +369,7 @@ + return 0; + } + ++#define KATM_MAX_Q 200 + int wplip_katm_callback_tx_down (void *lip_dev_ptr, void *skb) + { + wp_katm_channel_t *chan = (wp_katm_channel_t *)lip_dev_ptr; +@@ -373,19 +382,25 @@ + } + return 0; + } ++ ++ if (!skb){ ++ int free_space=KATM_MAX_Q - wan_skb_queue_len(&chan->tx_queue); ++ if (free_space < 0) { ++ return 0; ++ } else { ++ return free_space; ++ } ++ } + +-// wpabs_debug_event("%s: %s %d len=%i\n", +-// chan->name,__FUNCTION__,__LINE__,skb?wpabs_skb_len(skb):-1); +- +- +- if (chan->atm_link->dev && chan->atm_link->reg.tx_chan_down){ +- return chan->atm_link->reg.tx_chan_down(chan->atm_link->dev,skb); +- }else{ +- wpabs_debug_event("%s: %s %d ERROR no tx_chan_down \n", +- chan->name,__FUNCTION__,__LINE__); +- wpabs_skb_free(skb); +- } +- ++ if (wan_skb_queue_len(&chan->tx_queue) >= KATM_MAX_Q){ ++ DEBUG_EVENT("%s: %s() Error Tx queue full\n", ++ chan->name,__FUNCTION__); ++ return 1; ++ } ++ ++ ++ wan_skb_queue_tail(&chan->tx_queue,skb); ++ + return 0; + } + +@@ -409,7 +424,30 @@ + } + + ++void wpkatm_insert_vccdev(wp_katm_t *atm_link, wp_katm_channel_t *atm_chan) ++{ ++ unsigned long flags; ++ ++ WP_WRITE_LOCK(&atm_link->dev_list_lock,flags); ++ WAN_LIST_INSERT_HEAD(&atm_link->list_head_ifdev,atm_chan,list_entry); ++ WAN_DEV_HOLD(atm_chan); ++ atm_link->dev_cnt++; ++ WP_WRITE_UNLOCK(&atm_link->dev_list_lock,flags); ++} ++ ++ ++void wpkatm_remove_vccdev(wp_katm_t *atm_link, wp_katm_channel_t *atm_chan) ++{ ++ unsigned long flags; ++ ++ WP_WRITE_LOCK(&atm_link->dev_list_lock,flags); ++ WAN_DEV_PUT(atm_chan); ++ WAN_LIST_REMOVE(atm_chan,list_entry); ++ atm_link->dev_cnt--; ++ WP_WRITE_UNLOCK(&atm_link->dev_list_lock,flags); + ++ return; ++} + + + +Only in lip_katm: wanpipe_katm_sub.c~ +Only in lip_katm: wanpipe_katm_sub.o +Only in lip_katm: .wanpipe_katm_sub.o.cmd diff --git a/patches/kdrivers/src/lip/lip b/patches/kdrivers/src/lip/lip new file mode 120000 index 0000000..eb5348a --- /dev/null +++ b/patches/kdrivers/src/lip/lip @@ -0,0 +1 @@ +/root/3.1.X/wanpipe/patches/kdrivers/src/lip \ No newline at end of file diff --git a/patches/kdrivers/src/lip/lip_katm.orig/Makefile b/patches/kdrivers/src/lip/lip_katm.orig/Makefile new file mode 100644 index 0000000..27afc71 --- /dev/null +++ b/patches/kdrivers/src/lip/lip_katm.orig/Makefile @@ -0,0 +1,67 @@ +# ============================================================================ +# Makefile Multiprotocol WAN Router for Linux. Make Script. +# +# Copyright (c) 1995-1997 Sangoma Technologies Inc. All Rights Reserved. +# ---------------------------------------------------------------------------- +# Mar 27 2000 Nenad Corbic Version 2.0.5 to 2.1.2 +# Jan 07, 1999 Jaspreet Singh Version 2.0.4 +# Aug 25, 1998 Jaspreet Singh Version 2.0.3 +# Nov 06, 1997 Jaspreet Singh Version 2.0.0 +# Jul 28, 1997 Jaspreet Singh Version 1.0.5 +# Jul 10, 1997 Jaspreet Singh Version 1.0.4 +# June 3, 1997 Jaspreet Singh Version 1.0.3 +# Jan 15, 1997 Gene Kozin Version 1.0.1. +# Dec 31, 1996 Gene Kozin Initial version. +# ============================================================================ + +####### DEFINES ############################################################## + +# Build Options. +ARCH=i686 + +# Project File Paths. +TMPDIR = tmp +LOCINC = /lib/modules/$(shell uname -r)/build/include +VPATH = $(LOCINC):$(TMPDIR) +ARCH := $(shell uname -m) +MODDIR = modinfo +REGPARM = NO +ARCH_DEF= -mpreferred-stack-boundary=2 -march=$(ARCH) +LD=ld + +ifeq "${ARCH}" "x86_64" + +LDFLAGS=-m elf_x86_64 + +CFLAGS=-nostdinc -iwithprefix include -D__LINUX__ -Dlinux -D__KERNEL__ -DWANLIP_DRIVER -Iinclude/ -I../include -I$(LOCINC) -I../include/common -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -mno-red-zone -mcmodel=kernel -pipe -fno-reorder-blocks -Wno-sign-compare -O2 -fomit-frame-pointer -DMODULE + +else + +LDFLAGS=-m elf_i386 + +CFLAGS=-nostdinc -iwithprefix include -DWANLIP_DRIVER -D__KERNEL__ -D__LINUX__ -I../include -Iinclude -I$(LOCINC) -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -pipe $(ARCH_DEF) -O2 + +endif + +ifeq "${REGPARM}" "YES" + CFLAGS+= -mregparm=3 +endif + + +####### RULES ################################################################ + +all: wanpipe_katm.o + @echo "Ok." + +# ----- Multiprotocol WAN router module -------------------------------------- +wanpipe_katm.o: $(TMPDIR)/wanpipe_katm_iface.o + $(LD) $(LDFLAGS) -r -o $@ $^ + chmod 664 $@ + +$(TMPDIR)/wanpipe_katm_iface.o: wanpipe_katm_iface.c + $(CC) $(CFLAGS) -DKBUILD_BASENAME=wanpipe_katm_iface -DKBUILD_MODNAME=wanpipe_katm -c -o $@ $< + +clean: + rm -f *.o + rm -f tmp/*.o + rm -f mod/*.o diff --git a/patches/kdrivers/src/lip/lip_katm.orig/Makefile.BSD b/patches/kdrivers/src/lip/lip_katm.orig/Makefile.BSD new file mode 100644 index 0000000..9242216 --- /dev/null +++ b/patches/kdrivers/src/lip/lip_katm.orig/Makefile.BSD @@ -0,0 +1,53 @@ +# ============================================================================ +# Makefile Multiprotocol WAN Router for Linux. Make Script. +# +# Copyright (c) 1995-1997 Sangoma Technologies Inc. All Rights Reserved. +# ---------------------------------------------------------------------------- +# Mar 27 2000 Nenad Corbic Version 2.0.5 to 2.1.2 +# Jan 07, 1999 Jaspreet Singh Version 2.0.4 +# Aug 25, 1998 Jaspreet Singh Version 2.0.3 +# Nov 06, 1997 Jaspreet Singh Version 2.0.0 +# Jul 28, 1997 Jaspreet Singh Version 1.0.5 +# Jul 10, 1997 Jaspreet Singh Version 1.0.4 +# June 3, 1997 Jaspreet Singh Version 1.0.3 +# Jan 15, 1997 Gene Kozin Version 1.0.1. +# Dec 31, 1996 Gene Kozin Initial version. +# ============================================================================ + +####### DEFINES ############################################################## + +ARCH=i686 + +ARCH_DEF=-march=$(ARCH) +ARCH_ASM=asm-i386 +REGPARM=NO + +OBJS=wanpipe_sppp_in.o wanpipe_sppp_sub.o wanpipe_sppp_iface.o wanpipe_sppp_auth.o +CFLAGS= -DWANLIP_DRIVER -Wall -Wstrict-prototypes -I../include -I/sys -I./include + +####### RULES ################################################################ + +all: wanpipe_sppp.o + @echo "Ok." + +# ----- Multiprotocol WAN router module -------------------------------------- +wanpipe_sppp.o: $(OBJS) + ld -r -o $@ $(OBJS) + chmod 664 $@ + +wanpipe_sppp_in.o: wanpipe_sppp_in.c + $(CC) $(CFLAGS) -c -o $@ $< + +wanpipe_sppp_sub.o: wanpipe_sppp_sub.c + $(CC) $(CFLAGS) -c -o $@ $< + +wanpipe_sppp_iface.o: wanpipe_sppp_iface.c + $(CC) $(CFLAGS) -c -o $@ $< + +wanpipe_sppp_auth.o: wanpipe_sppp_auth.c + $(CC) $(CFLAGS) -c -o $@ $< + +clean: + rm -f *.o + + diff --git a/patches/kdrivers/src/lip/lip_katm.orig/Makefile.Linux b/patches/kdrivers/src/lip/lip_katm.orig/Makefile.Linux new file mode 100644 index 0000000..27afc71 --- /dev/null +++ b/patches/kdrivers/src/lip/lip_katm.orig/Makefile.Linux @@ -0,0 +1,67 @@ +# ============================================================================ +# Makefile Multiprotocol WAN Router for Linux. Make Script. +# +# Copyright (c) 1995-1997 Sangoma Technologies Inc. All Rights Reserved. +# ---------------------------------------------------------------------------- +# Mar 27 2000 Nenad Corbic Version 2.0.5 to 2.1.2 +# Jan 07, 1999 Jaspreet Singh Version 2.0.4 +# Aug 25, 1998 Jaspreet Singh Version 2.0.3 +# Nov 06, 1997 Jaspreet Singh Version 2.0.0 +# Jul 28, 1997 Jaspreet Singh Version 1.0.5 +# Jul 10, 1997 Jaspreet Singh Version 1.0.4 +# June 3, 1997 Jaspreet Singh Version 1.0.3 +# Jan 15, 1997 Gene Kozin Version 1.0.1. +# Dec 31, 1996 Gene Kozin Initial version. +# ============================================================================ + +####### DEFINES ############################################################## + +# Build Options. +ARCH=i686 + +# Project File Paths. +TMPDIR = tmp +LOCINC = /lib/modules/$(shell uname -r)/build/include +VPATH = $(LOCINC):$(TMPDIR) +ARCH := $(shell uname -m) +MODDIR = modinfo +REGPARM = NO +ARCH_DEF= -mpreferred-stack-boundary=2 -march=$(ARCH) +LD=ld + +ifeq "${ARCH}" "x86_64" + +LDFLAGS=-m elf_x86_64 + +CFLAGS=-nostdinc -iwithprefix include -D__LINUX__ -Dlinux -D__KERNEL__ -DWANLIP_DRIVER -Iinclude/ -I../include -I$(LOCINC) -I../include/common -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -mno-red-zone -mcmodel=kernel -pipe -fno-reorder-blocks -Wno-sign-compare -O2 -fomit-frame-pointer -DMODULE + +else + +LDFLAGS=-m elf_i386 + +CFLAGS=-nostdinc -iwithprefix include -DWANLIP_DRIVER -D__KERNEL__ -D__LINUX__ -I../include -Iinclude -I$(LOCINC) -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -pipe $(ARCH_DEF) -O2 + +endif + +ifeq "${REGPARM}" "YES" + CFLAGS+= -mregparm=3 +endif + + +####### RULES ################################################################ + +all: wanpipe_katm.o + @echo "Ok." + +# ----- Multiprotocol WAN router module -------------------------------------- +wanpipe_katm.o: $(TMPDIR)/wanpipe_katm_iface.o + $(LD) $(LDFLAGS) -r -o $@ $^ + chmod 664 $@ + +$(TMPDIR)/wanpipe_katm_iface.o: wanpipe_katm_iface.c + $(CC) $(CFLAGS) -DKBUILD_BASENAME=wanpipe_katm_iface -DKBUILD_MODNAME=wanpipe_katm -c -o $@ $< + +clean: + rm -f *.o + rm -f tmp/*.o + rm -f mod/*.o diff --git a/patches/kdrivers/src/lip/lip_katm.orig/wanpipe_katm.h b/patches/kdrivers/src/lip/lip_katm.orig/wanpipe_katm.h new file mode 100644 index 0000000..8a5a4da --- /dev/null +++ b/patches/kdrivers/src/lip/lip_katm.orig/wanpipe_katm.h @@ -0,0 +1,154 @@ + +#ifndef _WAN_KATM_H_ +#define _WAN_KATM_H_ 1 + +#include "stddef.h" +#include +#include "wanpipe_abstr.h" +#include "wanpipe_cfg.h" + +/* This is the shared header between the LIP + * and this PROTOCOL */ +#include "wanpipe_katm_iface.h" + +#include +#include + +#include + +#define WPIFNAMSIZ 20 + +/* RWM Added #defines to limit speed to T1 rates / connections */ +/* This will have to increase for E1, specifically the CELL_RATE */ +#define LOG2_NUM_VPIS 0 +#define LOG2_NUM_VCIS_PER_VPI 14 +#define AFT101_CELL_RATE 3622 /* (8000*24)/46.875 from Cisco's website */ + +/* Default AAL5 Maximum Transmission Unit (and length of AAL5 buffers) */ +#define AAL5_MTU (10 + 1586 + 8) /* LLC/SNAP hdr + max-eth-frame-size + AAL5 trailer */ +#define AAL5_BUFLEN (((AAL5_MTU + 47)/48)*48) /* Round up to n*48 bytes */ +#define AAL5_CRC32_MASK (0xDEBB20E3) /* CRC-32 Mask */ + + +typedef struct _katm_ +{ + unsigned long critical; + + /* Used by lip layer */ + void *link_dev; + void *dev; + + unsigned char type; + wplip_prot_reg_t reg; + wan_atm_conf_if_t cfg; + unsigned char name[WPIFNAMSIZ+1]; + unsigned char hwdevname[WPIFNAMSIZ+1]; + int state; + unsigned int refcnt; + + /* INSERT PROTOCOL SPECIFIC VARIABLES HERE */ + void *atmdev; // + void *sar_dev; +} wp_katm_t; + + + +typedef struct wp_katm_header +{ + /* IMPLEMENT PROTOCOL HEADER HERE */ + +} wp_katm_header_t; + +typedef struct wp_katm_channel +{ + /****************************** + * Stuff used by all channels * + ******************************/ + struct atm_dev *dev; /* Points back at device */ + int chanid; /* Channel ID used by CPM */ + unchar aal; /* ATM_AAL0 or ATM_AAL5 */ + unchar traffic_class; /* UBR, ABR, CBR, NONE, ANYCLASS */ + /******************************************************** + * Stuff used by all channels except the Raw Cell Queue * + ********************************************************/ + struct atm_vcc *vcc; /* Ptr to socket layer per VC info */ + unchar vpi; /* VPI in use */ + ushort vci; /* VCI in use */ + + /******************************************** + * Stuff used by rx and bidir channels only * + ********************************************/ + int rx_ring_size; /* Num rx BDs and skbuffs for this channel */ + struct sk_buff** rx_skbuff; /* points to rx_ring_size sk_buff ptrs */ + int rx_tail; /* read next from rbase[rx_tail] */ +#ifdef MULTI_BUFFER_FRAMES + struct sk_buff* lskb; /* for AAL5 frames larger than AAL5_BUFLEN */ +#endif + + /*********************************************** + * Stuff used by CBR tx or bidir channels only * + ***********************************************/ + ulong tx_cellrate; /* Requested Transmission data rate (CBR only) */ + + char name[WPIFNAMSIZ+1]; + + /* Link back to the wp_katm_t device */ + wp_katm_t *atm_link; + void *sar_vcc; + +} wp_katm_channel_t; + + +/* PRIVATE Function Prototypes Go Here */ +int wan_lip_katm_open(struct atm_vcc *vcc); +void wan_lip_katm_close(struct atm_vcc *vcc); +int wan_lip_katm_send(struct atm_vcc *vcc,struct sk_buff *skb); +int wan_lip_katm_setsockopt(struct atm_vcc *vcc, int level, int optname, + void *optval, int optlen); +int wan_lip_katm_getsockopt(struct atm_vcc *vcc, int level, int optname, + void *optval, int optlen); +int wan_lip_katm_sg_send(struct atm_vcc *vcc, unsigned long start, + unsigned long size); +//int wp_katm_activate_channel(struct atm_vcc *vcc, wp_katm_channel_t *chan); + +/* ATM Callbacks */ +int wplip_katm_prot_rx_up (void *lip_dev_ptr, void *skb, int type); +int wplip_katm_link_callback_tx_down (void *wplink_id, void *skb); +int wplip_katm_callback_tx_down (void *lip_dev_ptr, void *skb); +int wplip_katm_lipdev_prot_change_state(void *wplip_id,int state, + unsigned char *data, int len); +int wplip_katm_link_prot_change_state (void *wplip_id,int state, unsigned char *data, int len); + +int wp_katm_data_transmit(wp_katm_t *prot, void *skb); + + + +/* PRIVATE Debug Functions */ + +#define wp_dev_hold(dev) do{\ + wpabs_debug_test("%s:%d (dev_hold) Refnt %i!\n",\ + __FUNCTION__,__LINE__,dev->refcnt );\ + dev->refcnt++; \ + }while(0) + +#define wp_dev_put(dev) do{\ + wpabs_debug_test("%s:%d (wp_dev_put): Refnt %i!\n",\ + __FUNCTION__,__LINE__,dev->refcnt );\ + if (--dev->refcnt == 0){\ + wpabs_debug_test("%s:%d (wp_dev_put): Deallocating!\n",\ + __FUNCTION__,__LINE__);\ + wpabs_free(dev);\ + dev=NULL;\ + }\ + }while(0) + +#define FUNC_BEGIN() wpabs_debug_test("%s:%d ---Begin---\n",__FUNCTION__,__LINE__); +#define FUNC_END() wpabs_debug_test("%s:%d ---End---\n\n",__FUNCTION__,__LINE__); + +#define FUNC_BEGIN1() wpabs_debug_event("%s:%d ---Begin---\n",__FUNCTION__,__LINE__); +#define FUNC_END1() wpabs_debug_event("%s:%d ---End---\n\n",__FUNCTION__,__LINE__); + + +#endif + + diff --git a/patches/kdrivers/src/lip/lip_katm.orig/wanpipe_katm_iface.c b/patches/kdrivers/src/lip/lip_katm.orig/wanpipe_katm_iface.c new file mode 100644 index 0000000..ed4b917 --- /dev/null +++ b/patches/kdrivers/src/lip/lip_katm.orig/wanpipe_katm_iface.c @@ -0,0 +1,406 @@ +/***************************************************************************** +* wanpipe_katm_iface.c +* +* WANPIPE Protocol Template Module +* +* Author: Nenad Corbic +* +* Copyright: (c)2007 Sangoma Technologies 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 of the License, or (at your option) any later version. +* ============================================================================ +* This module: +* This module 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. +*/ + +#include "wanpipe_katm.h" +static int wp_katm_data_indication(wp_katm_t *prot, void *skb); + +static const struct atmdev_ops ops = { + .open = wan_lip_katm_open, + .close = wan_lip_katm_close, + .ioctl = NULL, + .getsockopt = wan_lip_katm_getsockopt, + .setsockopt = wan_lip_katm_setsockopt, + .send = wan_lip_katm_send, + .phy_put = NULL, + .phy_get = NULL, + .change_qos = NULL, + .proc_read = NULL, + .owner = THIS_MODULE, +}; + +/* Just here for easy reference until we get this working +const struct atmdev_ops mpc8260sar_ops = { + open:mpc8260sar_open, + close:mpc8260sar_close, + ioctl:mpc8260sar_ioctl, + getsockopt:mpc8260sar_getsockopt, + setsockopt:mpc8260sar_setsockopt, + send:mpc8260sar_send, + sg_send:mpc8260sar_sg_send, + change_qos:mpc8260sar_change_qos, + proc_read:mpc8260sar_proc_read, + owner:THIS_MODULE, +}; */ + +int wp_katm_tx(void *prot_ptr, void *skb, int type) +/********************************************************************************************/ +{ + wp_katm_t *prot = (wp_katm_t *)prot_ptr; + int err; + + /* This function is not used */ + + wpabs_debug_event("%s %d\n", + __FUNCTION__,__LINE__); + + /* The higher layer has given us a frame. + * + * Put a header on the frame and send it out. + * Or queue it and take care of it in custom + * state machine */ + + return -1; +} + +/*====================================================== + * wp_katm_data_transmit + * + * Transmitt the ppp packet to the lower layer, + * vi its master (tx_dev) device. + * + */ +int wp_katm_data_transmit(wp_katm_t *prot, void *skb) +/********************************************************************************************/ +{ + + if (prot->link_dev && prot->reg.tx_link_down){ + return prot->reg.tx_link_down(prot->link_dev,skb); + }else{ + wpabs_debug_event("%s: Critical error link dev=%p tx_link_down=%p\n", + __FUNCTION__,prot->link_dev,prot->reg.tx_link_down); + + } + + return 1; +} + +void *wp_register_katm_prot(void *link_ptr, + char *devname, + void *cfg_ptr, + wplip_prot_reg_t *prot_reg) +/********************************************************************************************/ +{ + wp_katm_t *atm_link; + struct atm_dev *atmdev; + wplip_prot_reg_t katm_callback_ops; + + int x=0; + + FUNC_BEGIN(); + + wpabs_debug_event("%s: %s %d\n", + devname,__FUNCTION__,__LINE__); + + if (!devname || !cfg_ptr || !prot_reg){ + wpabs_debug_event("%s:%d: Assert Error invalid args\n", + __FUNCTION__,__LINE__); + return NULL; + } + + atm_link=wpabs_malloc(sizeof(wp_katm_t)); + if (!atm_link){ + wpabs_debug_event( "katm: Failed to create protocol %s\n", + devname); + return NULL; + } + + /* Copy the LIP call back functions used to call + * the LIP layer */ + wpabs_memcpy(&atm_link->reg,prot_reg,sizeof(wplip_prot_reg_t)); + wpabs_strncpy(atm_link->name,devname,sizeof(atm_link->name)-1); + + /* INITIALIZE THE PROTOCOL HERE */ + atmdev = atm_dev_register(devname, &ops, -1, NULL); + if (atmdev == NULL) { + wpabs_debug_event("%s: couldn't register atm device!\n", devname); + wpabs_free(atm_link); + return NULL; + } + + katm_callback_ops.prot_set_state = wplip_katm_link_prot_change_state; + katm_callback_ops.chan_set_state = wplip_katm_lipdev_prot_change_state; + katm_callback_ops.mtu = 1500; + katm_callback_ops.tx_link_down = wplip_katm_link_callback_tx_down; + katm_callback_ops.tx_chan_down = wplip_katm_callback_tx_down; + katm_callback_ops.rx_up = wplip_katm_prot_rx_up; + katm_callback_ops.get_ipv4_addr = NULL; + katm_callback_ops.set_ipv4_addr = NULL; + katm_callback_ops.kick_task = NULL; + + + atm_link->sar_dev = wp_register_atm_prot(atm_link,"wanpipe_atm_link",&cfg_ptr,&katm_callback_ops); + if (!atm_link->sar_dev) { + wpabs_debug_event("%s: couldn't register sar device!\n", devname); + atm_dev_deregister(atm_link->atmdev); + wpabs_free(atm_link); + return NULL; + } + + /* This saves the previously allocated structure, we probably + should consider making this static, so that it is not allocated + in a seperate memory region for speed purposes, less paging? */ + atmdev->dev_data = atm_link; + + /* RWM Added 2/21/2007 Let the ATM stack know our limits */ + atmdev->ci_range.vpi_bits = LOG2_NUM_VPIS; + atmdev->ci_range.vci_bits = LOG2_NUM_VCIS_PER_VPI; + atmdev->link_rate = AFT101_CELL_RATE; + + atm_link->atmdev = atmdev; + + /* Initialize the LINK pointer used to call + * the LIP layer */ + atm_link->link_dev = link_ptr; + + FUNC_END(); + + /* Pass the atm_link pointer to the LIP Layer, so + * that LIP can call us with it */ + + return atm_link; +} + +int wp_unregister_katm_prot(void *prot_ptr) +/********************************************************************************************/ +{ + wp_katm_t *atm_link =(wp_katm_t*)prot_ptr; + + wpabs_debug_test("%s: %s %d\n", + atm_link->name,__FUNCTION__,__LINE__); + + FUNC_BEGIN(); + + wp_unregister_atm_prot(atm_link->sar_dev); + + atm_link->sar_dev=NULL; + + /* UNREGISTER LINK HERE */ + if (atm_link->atmdev) { + atm_dev_deregister(atm_link->atmdev); + atm_link->atmdev=NULL; + } + + /* Free the allocated Protocol structure */ + wp_dev_put(atm_link); + + FUNC_END(); + return 0; +} + + +void *wp_register_katm_chan(void *if_ptr, + void *prot_ptr, + char *devname, + void *cfg_ptr, + unsigned char type) +/********************************************************************************************/ +{ + wp_katm_t *atm_link =(wp_katm_t*)prot_ptr; + wan_atm_conf_if_t *cfg = (wan_atm_conf_if_t *)cfg_ptr; + + + wpabs_strncpy(atm_link->name,devname,sizeof(atm_link->name)-1); + wpabs_memcpy(&atm_link->cfg,cfg,sizeof(atm_link->cfg)); + + wpabs_debug_test("%s: %s %d\n", + atm_link->name,__FUNCTION__,__LINE__); + + /* Note we are not allocating a channel device + * because this example is for non multiplexed + * protocols. Thus keep using the prot device + * that is already registered */ + atm_link->dev = if_ptr; + atm_link->type= type; + + /* CONFIGURE/INITIALIZE THE PROTOCOL STRUCTURE */ + + return atm_link; +} + + +int wp_unregister_katm_chan(void *chan_ptr) +/********************************************************************************************/ +{ + wp_katm_t *atm_link =(wp_katm_t*)chan_ptr; + + wpabs_debug_test("%s: %s %d\n", + atm_link->name,__FUNCTION__,__LINE__); + /* UNREGISTER CHAN FROM PROTOCOL */ + + atm_link->dev=NULL; + + return 0; +} + + +int wp_katm_open(void *prot_ptr) +/********************************************************************************************/ +{ + wp_katm_t *prot =(wp_katm_t*)prot_ptr; + + wpabs_debug_test("%s: %s %d\n", + prot->name,__FUNCTION__,__LINE__); + + /* OPEN CONFIGURATION + * (ifconfig up) + * + */ + + return 0; +} + +int wp_katm_close(void *prot_ptr) +/********************************************************************************************/ +{ + wp_katm_t *prot =(wp_katm_t*)prot_ptr; + + wpabs_debug_test("%s: %s %d\n", + prot->name,__FUNCTION__,__LINE__); + /* CLOSE CONFIGURATION + * (ifconfig down) + * + */ + + return 0; +} + + +int wp_katm_rx (void *prot_ptr, void * skb) +/********************************************************************************************/ +{ + wp_katm_t *prot =(wp_katm_t*)prot_ptr; + if (!prot->sar_dev) { + wpabs_skb_free(skb); + return 0; + } + + wpabs_debug_test("%s: %s %d %d\n", + prot->name,__FUNCTION__,__LINE__,wpabs_skb_len(skb)); + + return wp_atm_rx(prot->sar_dev,skb); + +} + + + +int wp_katm_timer(void *prot_ptr, unsigned int *timeout, unsigned int carrier_reliable) +/********************************************************************************************/ +{ + wp_katm_t *prot = (wp_katm_t *)prot_ptr; + + if (!prot->sar_dev) { + *timeout=wpabs_get_hz(); + return 0; + } + + if (carrier_reliable) { + prot->state=WAN_CONNECTED; + } else { + prot->state=WAN_DISCONNECTED; + } + + wpabs_debug_test("%s: %s %d carrier=%i \n", + prot->name,__FUNCTION__,__LINE__,carrier_reliable); + + wp_atm_timer(prot->sar_dev,timeout,carrier_reliable); + + return 0; +} + + +int wp_katm_pipemon(void *prot_ptr, int cmd, int addr, + unsigned char* data, unsigned int *len) +/********************************************************************************************/ +{ + wp_katm_t *prot = (wp_katm_t *)prot_ptr; + + prot = prot; + + *len=1; + + /* IMPLEMENT PIPEMON COMMANDS */ + + return 0; +} + +/*====================================================== + * wp_katm_data_indication + * + * Transmitt the lapb packet to the lower layer, + * vi its master (tx_dev) device. + * + */ +static int wp_katm_data_indication(wp_katm_t *prot, void *skb) +/********************************************************************************************/ +{ + wpabs_debug_event("%s: %s() Len=%i\n", + prot->name,__FUNCTION__,wpabs_skb_len(skb)); + + if (prot->dev){ + return prot->reg.rx_up(prot->dev,skb,prot->type); + } + + return 1; +} + + + +/********************************************************** + * Private Functions + **********************************************************/ + + +/*====================================================== + * prot_connect_indication + * + * Indicate to the upper layer that the + * lower layer is connected and that it should + * start its connection process. + */ +void wp_connect_indication(wp_katm_t *prot, int reason) +/********************************************************************************************/ +{ + wpabs_debug_event("%s: %s() Reason=%i\n", + prot->name,__FUNCTION__,reason); + + if (prot->dev && prot->reg.chan_set_state){ + prot->reg.chan_set_state(prot->dev,WAN_CONNECTED,NULL, 0); + } +} + + +/*====================================================== + * prot_disconnect_indication + * + * Indicate to the upper layer (x25) that the + * lapb is layer is disconnected and that it should + * drop the connection. + */ +void wp_disconnect_indication(wp_katm_t *prot, int reason) +/********************************************************************************************/ +{ + wpabs_debug_event("%s: %s() Reason=%i\n", + prot->name,__FUNCTION__,reason); + + if (prot->dev && prot->reg.chan_set_state){ + prot->reg.chan_set_state(prot->dev,WAN_DISCONNECTED,NULL,0); + } +} diff --git a/patches/kdrivers/src/lip/lip_katm.orig/wanpipe_katm_sub.c b/patches/kdrivers/src/lip/lip_katm.orig/wanpipe_katm_sub.c new file mode 100644 index 0000000..40d0c1c --- /dev/null +++ b/patches/kdrivers/src/lip/lip_katm.orig/wanpipe_katm_sub.c @@ -0,0 +1,417 @@ + +/* IMPLEMENT PRIVATE FUNCTIONS USED BY THE PROTOCOL */ +#include "wanpipe_katm.h" + + +int +wan_lip_katm_setsockopt(struct atm_vcc *vcc, int level, int optname, + void *optval, int optlen) +{ + wpabs_debug_event("%s:%d\n",__FUNCTION__,__LINE__); + return -EINVAL; +} + +int +wan_lip_katm_getsockopt(struct atm_vcc *vcc, int level, int optname, + void *optval, int optlen) +{ + wpabs_debug_event("%s:%d\n",__FUNCTION__,__LINE__); + return -EINVAL; +} + +/* This is not implemented yet, so I have it remarked out */ +int +wan_lip_katm_sg_send(struct atm_vcc *vcc, unsigned long start, + unsigned long size) +{ + /* Scatter/Gather sending */ + wpabs_debug_event("%s:%d Size %lu %lu\n",__FUNCTION__,__LINE__,start,size); + return vcc->qos.aal == ATM_AAL5 && !((start | size) & 3); + /* don't tolerate misalignment */ +} +/*============================================================= + wan_lip_katm_close + +*/ + +void wan_lip_katm_close(struct atm_vcc *vcc) +{ + unsigned char tx_tclass = vcc->qos.txtp.traffic_class; + unsigned char rx_tclass = vcc->qos.rxtp.traffic_class; + //wp_katm_t *atm_link = vcc->dev->dev_data; + wp_katm_channel_t *chan = vcc->dev_data; + if (!chan) { + wpabs_debug_event("%s:%d Error no device\n",__FUNCTION__,__LINE__); + return; + } + + wpabs_debug_event("%s: %s %d\n", chan->name,__FUNCTION__,__LINE__); + + wpabs_clear_bit(ATM_VF_READY,&vcc->flags); + + // Is there a receive interface open ? + if (rx_tclass != ATM_NONE) { + /* TODO: do any HW cleanup for turning off reception on this channel */ + /* Also clean up any buffers that might bave been alloced for RX*/ + } + // Is there a transmit interface open ? + if (tx_tclass != ATM_NONE) { + /* TODO: do any HW cleanup for turning off transmission on this channel */ + /* Also clean up any buffers that might bave been alloced for TX*/ + } + + chan->atm_link=NULL; + + wp_atm_close_chan(chan->sar_vcc); + + wp_unregister_atm_chan(chan->sar_vcc); + chan->sar_vcc=NULL; + + if(vcc->dev_data) //insurance against locking up + kfree(vcc->dev_data); //Free the chan struct we created in Open + vcc->dev_data = NULL; + + wpabs_clear_bit(ATM_VF_ADDR,&vcc->flags); +} + +/*============================================================= + wp_katm_activate_channel + +*/ + +static int wp_katm_activate_channel(struct atm_vcc *vcc, wp_katm_channel_t * chan) +{ + unsigned char rx_traffic_class = vcc->qos.rxtp.traffic_class; + unsigned char tx_traffic_class = vcc->qos.txtp.traffic_class; + wan_atm_conf_if_t atm_cfg; + int err; + + wp_katm_t *atm_link=vcc->dev->dev_data; //Get Hardware device pointer + if (!atm_link) { + wpabs_debug_event("%s:%d Error no device\n",__FUNCTION__,__LINE__); + return -ENODEV; + } + + wpabs_debug_event("%s:%d: %s\n",__FUNCTION__,__LINE__,atm_link->name); + + + wpabs_memcpy(&atm_cfg,&atm_link->cfg,sizeof(wan_atm_conf_if_t)); + + // Is a receive interface required ? + if (rx_traffic_class != ATM_NONE) { + //enable receive only interface + //return on error otherwise + } + if (tx_traffic_class != ATM_NONE) { + // Only currently support UBR and CBR tx classes + if (!((tx_traffic_class == ATM_UBR) || (tx_traffic_class == ATM_CBR))) { + printk(KERN_WARNING "tx traffic class not supported\n"); + return -EINVAL; + } + //enable tx channel + } + + atm_cfg.vpi=chan->vpi; + atm_cfg.vci=chan->vci; + + chan->sar_vcc = wp_register_atm_chan(chan, + atm_link->sar_dev, + atm_link->name, + &atm_cfg, + WPLIP_RAW); + if (!chan->sar_vcc) { + wpabs_debug_event("%s:%d Error failed to register atm vcc\n",__FUNCTION__,__LINE__); + return -EINVAL; + } + + err=wp_atm_open_chan(chan->sar_vcc); + if (err) { + wpabs_debug_event("%s:%d Error failed to open atm vcc\n",__FUNCTION__,__LINE__); + wp_unregister_atm_chan(chan->sar_vcc); + return -EINVAL; + } + + return 0; +} + + + +/* RWM - After talking with the ATM stack maintainer, I have learned that +the 2nd and 3rd parameters are deprecated. We do not need to use +them here. All VCC's are kept in a kernel maintained hash list, and will be +passed in with the atm_vcc struct */ +int wan_lip_katm_open(struct atm_vcc *vcc) //, short vpi, int vci) +{ + wp_katm_t *atm_link = vcc->dev->dev_data; //Device data is passed in + wp_katm_channel_t *chan = NULL; //each new vcc chan data unallocated + unsigned char rx_traffic_class = vcc->qos.rxtp.traffic_class; + unsigned char tx_traffic_class = vcc->qos.txtp.traffic_class; + int result; + + wpabs_debug_event("%s: %s %d AAL=%s\n", atm_link->name,__FUNCTION__,__LINE__, + vcc->qos.aal == ATM_AAL0 ? "AAL0" : + (vcc->qos.aal == ATM_AAL5 ? "AAL5" : "OTHER") ); + + /* Make sure we are opening an AAL0 or AAL5 connection */ + /* Though this level doesn't parse the AAL5 protocol */ + /* It is responsible for allowing that connection type to be established */ + if ((vcc->qos.aal != ATM_AAL0) && (vcc->qos.aal != ATM_AAL5)) { + wpabs_debug_event("ATM_AALx was invalid for this driver\n"); + return -EINVAL; + } + + /* Make sure traffic class is valid */ + if ((rx_traffic_class == ATM_NONE) && (tx_traffic_class == ATM_NONE)) { + wpabs_debug_event("rx and tx traffic class not specified\n"); + return -EINVAL; + } + + /* Set open bit in progress, this lets the stack know that the requested address + is now in use. */ + wpabs_set_bit(ATM_VF_ADDR,&vcc->flags); + + /* TODO: Ok here we need to actually open the channel, or at least + manipulate hardware 'open' and 'activate' a channel. This should + be comprised of allocated rx/tx buffers as needed, + based on the traffic classes, buffer descriptors */ + + chan = kmalloc(sizeof(wp_katm_channel_t), GFP_KERNEL); + if (!chan) { + wpabs_clear_bit(ATM_VF_ADDR,&vcc->flags); + wpabs_debug_event("Unable to allocate chan during open\n"); + return -ENOMEM; + } + wpabs_memset(chan,0,sizeof(wp_katm_channel_t)); + wpabs_memcpy(chan->name,atm_link->name,sizeof(chan->name)); + + chan->aal = vcc->qos.aal; + chan->vcc = vcc; + + chan->atm_link = atm_link; + + + /* ToDo: Need to assign all the values for chan here */ + + vcc->dev_data = chan; /* save channel structure */ + + /* Assign VPI and VCI in both atm_vcc and cpm_channel_t */ + chan->vpi = vcc->vpi; + chan->vci = vcc->vci; + wpabs_debug_event("RWM: Open vcc->vpi=%d : vcc->vci=%d\n", vcc->vpi, vcc->vci); + + if ((result = wp_katm_activate_channel(vcc, chan))) { + //wp_katm_undo_activate_channel(vcc, chan); + //could we just call close here instead? + wan_lip_katm_close(vcc); + return result; + } + + /* Tells the stack that this VC is ready for Tx/Rx */ + wpabs_set_bit(ATM_VF_READY,&vcc->flags); + + return 0; +} + + + + +int wan_lip_katm_send(struct atm_vcc *vcc,struct sk_buff *skb) +{ + wp_katm_t *atm_link=vcc->dev->dev_data; //Get Hardware device pointer + wp_katm_channel_t *chan= (wp_katm_channel_t*)vcc->dev_data; //channel pointer, not sure if we need this here. + int err; + struct sk_buff *nskb; + +// wpabs_debug_event("%s:%d Size %i %s\n", +// __FUNCTION__,__LINE__,wpabs_skb_len(skb), +// vcc->qos.aal == ATM_AAL0 ? "AAL0" : +// (vcc->qos.aal == ATM_AAL5 ? "AAL5" : "OTHER") ); + +//This for documentation only +//#define ATM_SKB(skb) (((struct atm_skb_data *) (skb)->cb)) + +#if 0 + { + unsigned char *data=wpabs_skb_data(skb); + int i; + for (i=0;ipop) vcc->pop(vcc,skb); + else dev_kfree_skb(skb); + return 0; + } + + if (!skb) { + wpabs_debug_event("!skb in eni_send ?\n"); + if (vcc->pop) vcc->pop(vcc,skb); + else dev_kfree_skb(skb); + return -EINVAL; + } + + if (vcc->qos.aal == ATM_AAL0) { + wpabs_debug_event("RWM: AAL0 send in progress?\n"); + if (skb->len != ATM_CELL_SIZE-1) { + if (vcc->pop) vcc->pop(vcc,skb); + else dev_kfree_skb(skb); + return -EINVAL; + } else { + *(u32 *) skb->data = htonl(*(u32 *) skb->data); + } + } + + + nskb=skb_clone(skb,GFP_KERNEL); + if (!nskb) { + if (vcc->pop) vcc->pop(vcc,skb); + else dev_kfree_skb(skb); + return -ENOMEM; + } + + err = wp_atm_tx(chan->sar_vcc,nskb,0); + + if (err) { + wpabs_skb_free(nskb); + if (vcc->pop) vcc->pop(vcc,skb); + else dev_kfree_skb(skb); + return -1; + } + + if (vcc->pop) vcc->pop(vcc,skb); + else dev_kfree_skb(skb); + + +// wpabs_debug_event("%s:%d Send OK\n", +// __FUNCTION__,__LINE__); + + return 0; +} + +int wan_lip_katm_rx(wp_katm_channel_t *chan, struct sk_buff *skb) +{ + struct atm_vcc *vcc = chan->vcc; + if (!vcc) { + wpabs_debug_event("%s:%d %s, VPI:VCI=%d:%d\n", + __FUNCTION__,__LINE__, chan->name, chan->vpi, chan->vci); + wpabs_skb_free(skb); + return 0; + } + +// wpabs_debug_event("%s: %s VPI:VCI=%d:%d Line:%d\n", +// chan->name, __FUNCTION__, chan->vpi, chan->vci, __LINE__); + + + if (vcc->qos.aal == ATM_AAL0) { + wpabs_debug_event("%s: Received AAL0 packet!\n", __FUNCTION__); + *(unsigned long *) skb->data = + ntohl(*(unsigned long *) skb->data); + } + + vcc->push(vcc,skb); + + return 0; +} + +//------------------------------------------------------- +// Private Callback Funcitons + +int wplip_katm_link_prot_change_state (void *wplip_id,int state, unsigned char *data, int len) +{ + wp_katm_t *atm_link = (wp_katm_t *)wplip_id; + if (!atm_link) { + return 0; + } + + atm_link->reg.prot_set_state(atm_link->link_dev, + state, + data, + len); + + wpabs_debug_event("%s: %s %d\n", + atm_link->name,__FUNCTION__,__LINE__); + return 0; +} + +int wplip_katm_lipdev_prot_change_state(void *wplip_id,int state, + unsigned char *data, int len) +{ + wp_katm_channel_t *chan = (wp_katm_channel_t *)wplip_id; + wp_katm_t *atm_link = chan->atm_link; + if (!atm_link) { + return 0; + } + + atm_link->reg.chan_set_state(atm_link->dev, + state, + data, + len); + + wpabs_debug_event("%s: %s %d\n", + atm_link->name,__FUNCTION__,__LINE__); + return 0; +} + +int wplip_katm_link_callback_tx_down (void *wplink_id, void *skb) +{ + + return 0; +} + +int wplip_katm_callback_tx_down (void *lip_dev_ptr, void *skb) +{ + wp_katm_channel_t *chan = (wp_katm_channel_t *)lip_dev_ptr; + + if (!chan->atm_link) { + wpabs_debug_event("%s: %s %d ERROR no atm_link\n", + chan->name,__FUNCTION__,__LINE__); + if (skb) { + wpabs_skb_free(skb); + } + return 0; + } + +// wpabs_debug_event("%s: %s %d len=%i\n", +// chan->name,__FUNCTION__,__LINE__,skb?wpabs_skb_len(skb):-1); + + + if (chan->atm_link->dev && chan->atm_link->reg.tx_chan_down){ + return chan->atm_link->reg.tx_chan_down(chan->atm_link->dev,skb); + }else{ + wpabs_debug_event("%s: %s %d ERROR no tx_chan_down \n", + chan->name,__FUNCTION__,__LINE__); + wpabs_skb_free(skb); + } + + return 0; +} + +int wplip_katm_prot_rx_up (void *lip_dev_ptr, void *skb, int type) +{ + wp_katm_channel_t *chan = (wp_katm_channel_t *)lip_dev_ptr; + wp_katm_t *atm_link = chan->atm_link; + + if (!atm_link || !type) { //Kill all non zero types for now, including OAM + wpabs_debug_event("%s %d Killing skb type=%d len=%i\n", + __FUNCTION__,__LINE__,type, wpabs_skb_len(skb)); + wpabs_skb_free(skb); + return 0; + } + +// wpabs_debug_event("%s %d len=%i\n", +// __FUNCTION__,__LINE__,wpabs_skb_len(skb)); + + wan_lip_katm_rx(chan,skb); + return 0; +} + + + + + + + + diff --git a/patches/kdrivers/src/lip/lip_katm/Makefile b/patches/kdrivers/src/lip/lip_katm/Makefile new file mode 120000 index 0000000..b00583b --- /dev/null +++ b/patches/kdrivers/src/lip/lip_katm/Makefile @@ -0,0 +1 @@ +Makefile.Linux \ No newline at end of file diff --git a/patches/kdrivers/src/lip/lip_katm/Makefile.BSD b/patches/kdrivers/src/lip/lip_katm/Makefile.BSD new file mode 100644 index 0000000..9242216 --- /dev/null +++ b/patches/kdrivers/src/lip/lip_katm/Makefile.BSD @@ -0,0 +1,53 @@ +# ============================================================================ +# Makefile Multiprotocol WAN Router for Linux. Make Script. +# +# Copyright (c) 1995-1997 Sangoma Technologies Inc. All Rights Reserved. +# ---------------------------------------------------------------------------- +# Mar 27 2000 Nenad Corbic Version 2.0.5 to 2.1.2 +# Jan 07, 1999 Jaspreet Singh Version 2.0.4 +# Aug 25, 1998 Jaspreet Singh Version 2.0.3 +# Nov 06, 1997 Jaspreet Singh Version 2.0.0 +# Jul 28, 1997 Jaspreet Singh Version 1.0.5 +# Jul 10, 1997 Jaspreet Singh Version 1.0.4 +# June 3, 1997 Jaspreet Singh Version 1.0.3 +# Jan 15, 1997 Gene Kozin Version 1.0.1. +# Dec 31, 1996 Gene Kozin Initial version. +# ============================================================================ + +####### DEFINES ############################################################## + +ARCH=i686 + +ARCH_DEF=-march=$(ARCH) +ARCH_ASM=asm-i386 +REGPARM=NO + +OBJS=wanpipe_sppp_in.o wanpipe_sppp_sub.o wanpipe_sppp_iface.o wanpipe_sppp_auth.o +CFLAGS= -DWANLIP_DRIVER -Wall -Wstrict-prototypes -I../include -I/sys -I./include + +####### RULES ################################################################ + +all: wanpipe_sppp.o + @echo "Ok." + +# ----- Multiprotocol WAN router module -------------------------------------- +wanpipe_sppp.o: $(OBJS) + ld -r -o $@ $(OBJS) + chmod 664 $@ + +wanpipe_sppp_in.o: wanpipe_sppp_in.c + $(CC) $(CFLAGS) -c -o $@ $< + +wanpipe_sppp_sub.o: wanpipe_sppp_sub.c + $(CC) $(CFLAGS) -c -o $@ $< + +wanpipe_sppp_iface.o: wanpipe_sppp_iface.c + $(CC) $(CFLAGS) -c -o $@ $< + +wanpipe_sppp_auth.o: wanpipe_sppp_auth.c + $(CC) $(CFLAGS) -c -o $@ $< + +clean: + rm -f *.o + + diff --git a/patches/kdrivers/src/lip/lip_katm/Makefile.Linux b/patches/kdrivers/src/lip/lip_katm/Makefile.Linux new file mode 100644 index 0000000..27afc71 --- /dev/null +++ b/patches/kdrivers/src/lip/lip_katm/Makefile.Linux @@ -0,0 +1,67 @@ +# ============================================================================ +# Makefile Multiprotocol WAN Router for Linux. Make Script. +# +# Copyright (c) 1995-1997 Sangoma Technologies Inc. All Rights Reserved. +# ---------------------------------------------------------------------------- +# Mar 27 2000 Nenad Corbic Version 2.0.5 to 2.1.2 +# Jan 07, 1999 Jaspreet Singh Version 2.0.4 +# Aug 25, 1998 Jaspreet Singh Version 2.0.3 +# Nov 06, 1997 Jaspreet Singh Version 2.0.0 +# Jul 28, 1997 Jaspreet Singh Version 1.0.5 +# Jul 10, 1997 Jaspreet Singh Version 1.0.4 +# June 3, 1997 Jaspreet Singh Version 1.0.3 +# Jan 15, 1997 Gene Kozin Version 1.0.1. +# Dec 31, 1996 Gene Kozin Initial version. +# ============================================================================ + +####### DEFINES ############################################################## + +# Build Options. +ARCH=i686 + +# Project File Paths. +TMPDIR = tmp +LOCINC = /lib/modules/$(shell uname -r)/build/include +VPATH = $(LOCINC):$(TMPDIR) +ARCH := $(shell uname -m) +MODDIR = modinfo +REGPARM = NO +ARCH_DEF= -mpreferred-stack-boundary=2 -march=$(ARCH) +LD=ld + +ifeq "${ARCH}" "x86_64" + +LDFLAGS=-m elf_x86_64 + +CFLAGS=-nostdinc -iwithprefix include -D__LINUX__ -Dlinux -D__KERNEL__ -DWANLIP_DRIVER -Iinclude/ -I../include -I$(LOCINC) -I../include/common -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -mno-red-zone -mcmodel=kernel -pipe -fno-reorder-blocks -Wno-sign-compare -O2 -fomit-frame-pointer -DMODULE + +else + +LDFLAGS=-m elf_i386 + +CFLAGS=-nostdinc -iwithprefix include -DWANLIP_DRIVER -D__KERNEL__ -D__LINUX__ -I../include -Iinclude -I$(LOCINC) -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -pipe $(ARCH_DEF) -O2 + +endif + +ifeq "${REGPARM}" "YES" + CFLAGS+= -mregparm=3 +endif + + +####### RULES ################################################################ + +all: wanpipe_katm.o + @echo "Ok." + +# ----- Multiprotocol WAN router module -------------------------------------- +wanpipe_katm.o: $(TMPDIR)/wanpipe_katm_iface.o + $(LD) $(LDFLAGS) -r -o $@ $^ + chmod 664 $@ + +$(TMPDIR)/wanpipe_katm_iface.o: wanpipe_katm_iface.c + $(CC) $(CFLAGS) -DKBUILD_BASENAME=wanpipe_katm_iface -DKBUILD_MODNAME=wanpipe_katm -c -o $@ $< + +clean: + rm -f *.o + rm -f tmp/*.o + rm -f mod/*.o diff --git a/patches/kdrivers/src/lip/lip_katm/wanpipe_katm.h b/patches/kdrivers/src/lip/lip_katm/wanpipe_katm.h new file mode 100644 index 0000000..8f3ccef --- /dev/null +++ b/patches/kdrivers/src/lip/lip_katm/wanpipe_katm.h @@ -0,0 +1,147 @@ + +#ifndef _WAN_KATM_H_ +#define _WAN_KATM_H_ 1 + +#include + +//#include +//#include "wanpipe_abstr.h" +//#include "wanpipe_cfg.h" + + +/* This is the shared header between the LIP + * and this PROTOCOL */ +#include "wanpipe_katm_iface.h" + +#include +#include + +#include + +#define WPIFNAMSIZ 20 + +/* RWM Added #defines to limit speed to T1 rates / connections */ +/* This will have to increase for E1, specifically the CELL_RATE */ +#define LOG2_NUM_VPIS 0 +#define LOG2_NUM_VCIS_PER_VPI 14 +#define AFT101_CELL_RATE 3622 /* (8000*24)/46.875 from Cisco's website */ + +/* Default AAL5 Maximum Transmission Unit (and length of AAL5 buffers) */ +#define AAL5_MTU (10 + 1586 + 8) /* LLC/SNAP hdr + max-eth-frame-size + AAL5 trailer */ +#define AAL5_BUFLEN (((AAL5_MTU + 47)/48)*48) /* Round up to n*48 bytes */ +#define AAL5_CRC32_MASK (0xDEBB20E3) /* CRC-32 Mask */ + + +struct wp_katm_channel; + + +typedef struct _katm_ +{ + unsigned long critical; + + /* Used by lip layer */ + void *link_dev; + void *dev; + + unsigned char type; + wplip_prot_reg_t reg; + wan_atm_conf_if_t cfg; + unsigned char name[WPIFNAMSIZ+1]; + unsigned char hwdevname[WPIFNAMSIZ+1]; + int state; + + /* INSERT PROTOCOL SPECIFIC VARIABLES HERE */ + void *atmdev; // + void *sar_dev; + + WAN_LIST_HEAD(,wp_katm_channel) list_head_ifdev; + unsigned int dev_cnt; + wan_rwlock_t dev_list_lock; + struct wp_katm_channel *cur_tx; + + atomic_t refcnt; +} wp_katm_t; + + + +typedef struct wp_katm_header +{ + /* IMPLEMENT PROTOCOL HEADER HERE */ + +} wp_katm_header_t; + +typedef struct wp_katm_channel +{ + /****************************** + * Stuff used by all channels * + ******************************/ + struct atm_dev *dev; /* Points back at device */ + int chanid; /* Channel ID used by CPM */ + unchar aal; /* ATM_AAL0 or ATM_AAL5 */ + unchar traffic_class; /* UBR, ABR, CBR, NONE, ANYCLASS */ + /******************************************************** + * Stuff used by all channels except the Raw Cell Queue * + ********************************************************/ + struct atm_vcc *vcc; /* Ptr to socket layer per VC info */ + unchar vpi; /* VPI in use */ + ushort vci; /* VCI in use */ + + /******************************************** + * Stuff used by rx and bidir channels only * + ********************************************/ + int rx_ring_size; /* Num rx BDs and skbuffs for this channel */ + struct sk_buff** rx_skbuff; /* points to rx_ring_size sk_buff ptrs */ + int rx_tail; /* read next from rbase[rx_tail] */ +#ifdef MULTI_BUFFER_FRAMES + struct sk_buff* lskb; /* for AAL5 frames larger than AAL5_BUFLEN */ +#endif + + /*********************************************** + * Stuff used by CBR tx or bidir channels only * + ***********************************************/ + ulong tx_cellrate; /* Requested Transmission data rate (CBR only) */ + + char name[WPIFNAMSIZ+1]; + + /* Link back to the wp_katm_t device */ + wp_katm_t *atm_link; + void *sar_vcc; + + wan_skb_queue_t tx_queue; + + WAN_LIST_ENTRY(wp_katm_channel) list_entry; + atomic_t refcnt; + +} wp_katm_channel_t; + + +/* PRIVATE Function Prototypes Go Here */ +int wan_lip_katm_open(struct atm_vcc *vcc); +void wan_lip_katm_close(struct atm_vcc *vcc); +int wan_lip_katm_send(struct atm_vcc *vcc,struct sk_buff *skb); +int wan_lip_katm_setsockopt(struct atm_vcc *vcc, int level, int optname, + void *optval, int optlen); +int wan_lip_katm_getsockopt(struct atm_vcc *vcc, int level, int optname, + void *optval, int optlen); +int wan_lip_katm_sg_send(struct atm_vcc *vcc, unsigned long start, + unsigned long size); +int wpkatm_priv_bh (wp_katm_t *atm_link); +void wpkatm_insert_vccdev(wp_katm_t *atm_link, wp_katm_channel_t *atm_chan); +void wpkatm_remove_vccdev(wp_katm_t *atm_link, wp_katm_channel_t *atm_chan); +//int wp_katm_activate_channel(struct atm_vcc *vcc, wp_katm_channel_t *chan); + +/* ATM Callbacks */ +int wplip_katm_prot_rx_up (void *lip_dev_ptr, void *skb, int type); +int wplip_katm_link_callback_tx_down (void *wplink_id, void *skb); +int wplip_katm_callback_tx_down (void *lip_dev_ptr, void *skb); +int wplip_katm_lipdev_prot_change_state(void *wplip_id,int state, + unsigned char *data, int len); +int wplip_katm_link_prot_change_state (void *wplip_id,int state, unsigned char *data, int len); + +int wp_katm_data_transmit(wp_katm_t *prot, void *skb); + + + +#endif + + diff --git a/patches/kdrivers/src/lip/lip_katm/wanpipe_katm.h~ b/patches/kdrivers/src/lip/lip_katm/wanpipe_katm.h~ new file mode 100644 index 0000000..3f8642d --- /dev/null +++ b/patches/kdrivers/src/lip/lip_katm/wanpipe_katm.h~ @@ -0,0 +1,145 @@ + +#ifndef _WAN_KATM_H_ +#define _WAN_KATM_H_ 1 + +#include + +//#include +//#include "wanpipe_abstr.h" +//#include "wanpipe_cfg.h" + + +/* This is the shared header between the LIP + * and this PROTOCOL */ +#include "wanpipe_katm_iface.h" + +#include +#include + +#include + +#define WPIFNAMSIZ 20 + +/* RWM Added #defines to limit speed to T1 rates / connections */ +/* This will have to increase for E1, specifically the CELL_RATE */ +#define LOG2_NUM_VPIS 0 +#define LOG2_NUM_VCIS_PER_VPI 14 +#define AFT101_CELL_RATE 3622 /* (8000*24)/46.875 from Cisco's website */ + +/* Default AAL5 Maximum Transmission Unit (and length of AAL5 buffers) */ +#define AAL5_MTU (10 + 1586 + 8) /* LLC/SNAP hdr + max-eth-frame-size + AAL5 trailer */ +#define AAL5_BUFLEN (((AAL5_MTU + 47)/48)*48) /* Round up to n*48 bytes */ +#define AAL5_CRC32_MASK (0xDEBB20E3) /* CRC-32 Mask */ + + +struct wp_katm_channel; + + +typedef struct _katm_ +{ + unsigned long critical; + + /* Used by lip layer */ + void *link_dev; + void *dev; + + unsigned char type; + wplip_prot_reg_t reg; + wan_atm_conf_if_t cfg; + unsigned char name[WPIFNAMSIZ+1]; + unsigned char hwdevname[WPIFNAMSIZ+1]; + int state; + + /* INSERT PROTOCOL SPECIFIC VARIABLES HERE */ + void *atmdev; // + void *sar_dev; + + WAN_LIST_HEAD(,wp_katm_channel) list_head_ifdev; + unsigned int dev_cnt; + wan_rwlock_t dev_list_lock; + struct wp_katm_channel *cur_tx; + + atomic_t refcnt; +} wp_katm_t; + + + +typedef struct wp_katm_header +{ + /* IMPLEMENT PROTOCOL HEADER HERE */ + +} wp_katm_header_t; + +typedef struct wp_katm_channel +{ + /****************************** + * Stuff used by all channels * + ******************************/ + struct atm_dev *dev; /* Points back at device */ + int chanid; /* Channel ID used by CPM */ + unchar aal; /* ATM_AAL0 or ATM_AAL5 */ + unchar traffic_class; /* UBR, ABR, CBR, NONE, ANYCLASS */ + /******************************************************** + * Stuff used by all channels except the Raw Cell Queue * + ********************************************************/ + struct atm_vcc *vcc; /* Ptr to socket layer per VC info */ + unchar vpi; /* VPI in use */ + ushort vci; /* VCI in use */ + + /******************************************** + * Stuff used by rx and bidir channels only * + ********************************************/ + int rx_ring_size; /* Num rx BDs and skbuffs for this channel */ + struct sk_buff** rx_skbuff; /* points to rx_ring_size sk_buff ptrs */ + int rx_tail; /* read next from rbase[rx_tail] */ +#ifdef MULTI_BUFFER_FRAMES + struct sk_buff* lskb; /* for AAL5 frames larger than AAL5_BUFLEN */ +#endif + + /*********************************************** + * Stuff used by CBR tx or bidir channels only * + ***********************************************/ + ulong tx_cellrate; /* Requested Transmission data rate (CBR only) */ + + char name[WPIFNAMSIZ+1]; + + /* Link back to the wp_katm_t device */ + wp_katm_t *atm_link; + void *sar_vcc; + + wan_skb_queue_t tx_queue; + + WAN_LIST_ENTRY(wp_katm_channel) list_entry; + atomic_t refcnt; + +} wp_katm_channel_t; + + +/* PRIVATE Function Prototypes Go Here */ +int wan_lip_katm_open(struct atm_vcc *vcc); +void wan_lip_katm_close(struct atm_vcc *vcc); +int wan_lip_katm_send(struct atm_vcc *vcc,struct sk_buff *skb); +int wan_lip_katm_setsockopt(struct atm_vcc *vcc, int level, int optname, + void *optval, int optlen); +int wan_lip_katm_getsockopt(struct atm_vcc *vcc, int level, int optname, + void *optval, int optlen); +int wan_lip_katm_sg_send(struct atm_vcc *vcc, unsigned long start, + unsigned long size); +int wpkatm_priv_bh (wp_katm_t *atm_link); +//int wp_katm_activate_channel(struct atm_vcc *vcc, wp_katm_channel_t *chan); + +/* ATM Callbacks */ +int wplip_katm_prot_rx_up (void *lip_dev_ptr, void *skb, int type); +int wplip_katm_link_callback_tx_down (void *wplink_id, void *skb); +int wplip_katm_callback_tx_down (void *lip_dev_ptr, void *skb); +int wplip_katm_lipdev_prot_change_state(void *wplip_id,int state, + unsigned char *data, int len); +int wplip_katm_link_prot_change_state (void *wplip_id,int state, unsigned char *data, int len); + +int wp_katm_data_transmit(wp_katm_t *prot, void *skb); + + + +#endif + + diff --git a/patches/kdrivers/src/lip/lip_katm/wanpipe_katm_iface.c b/patches/kdrivers/src/lip/lip_katm/wanpipe_katm_iface.c new file mode 100644 index 0000000..ec22cf1 --- /dev/null +++ b/patches/kdrivers/src/lip/lip_katm/wanpipe_katm_iface.c @@ -0,0 +1,552 @@ +/***************************************************************************** +* wanpipe_katm_iface.c +* +* WANPIPE Protocol Template Module +* +* Author: Nenad Corbic +* +* Copyright: (c)2007 Sangoma Technologies 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 of the License, or (at your option) any later version. +* ============================================================================ +* This module: +* This module 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. +*/ + +#include "wanpipe_katm.h" +static int wp_katm_data_indication(wp_katm_t *prot, void *skb); + +static const struct atmdev_ops ops = { + .open = wan_lip_katm_open, + .close = wan_lip_katm_close, + .ioctl = NULL, + .getsockopt = wan_lip_katm_getsockopt, + .setsockopt = wan_lip_katm_setsockopt, + .send = wan_lip_katm_send, + .phy_put = NULL, + .phy_get = NULL, + .change_qos = NULL, + .proc_read = NULL, + .owner = THIS_MODULE, +}; + +/* Just here for easy reference until we get this working +const struct atmdev_ops mpc8260sar_ops = { + open:mpc8260sar_open, + close:mpc8260sar_close, + ioctl:mpc8260sar_ioctl, + getsockopt:mpc8260sar_getsockopt, + setsockopt:mpc8260sar_setsockopt, + send:mpc8260sar_send, + sg_send:mpc8260sar_sg_send, + change_qos:mpc8260sar_change_qos, + proc_read:mpc8260sar_proc_read, + owner:THIS_MODULE, +}; */ + +int wp_katm_tx(void *prot_ptr, void *skb, int type) +/********************************************************************************************/ +{ + /* This function is not used */ + + wpabs_debug_event("%s %d\n", + __FUNCTION__,__LINE__); + + /* The higher layer has given us a frame. + * + * Put a header on the frame and send it out. + * Or queue it and take care of it in custom + * state machine */ + + return -1; +} + +/*====================================================== + * wp_katm_data_transmit + * + * Transmitt the ppp packet to the lower layer, + * vi its master (tx_dev) device. + * + */ +int wp_katm_data_transmit(wp_katm_t *prot, void *skb) +/********************************************************************************************/ +{ + + if (prot->link_dev && prot->reg.tx_link_down){ + return prot->reg.tx_link_down(prot->link_dev,skb); + }else{ + wpabs_debug_event("%s: Critical error link dev=%p tx_link_down=%p\n", + __FUNCTION__,prot->link_dev,prot->reg.tx_link_down); + + } + + return 1; +} + +void *wp_register_katm_prot(void *link_ptr, + char *devname, + void *cfg_ptr, + wplip_prot_reg_t *prot_reg) +/********************************************************************************************/ +{ + wp_katm_t *atm_link; + struct atm_dev *atmdev; + wplip_prot_reg_t katm_callback_ops; + + + + FUNC_BEGIN(); + + wpabs_debug_event("%s: %s %d\n", + devname,__FUNCTION__,__LINE__); + + if (!devname || !cfg_ptr || !prot_reg){ + wpabs_debug_event("%s:%d: Assert Error invalid args\n", + __FUNCTION__,__LINE__); + return NULL; + } + + atm_link=wpabs_malloc(sizeof(wp_katm_t)); + if (!atm_link){ + wpabs_debug_event( "katm: Failed to create protocol %s\n", + devname); + return NULL; + } + + /* Copy the LIP call back functions used to call + * the LIP layer */ + wpabs_memset(atm_link,0,sizeof(wp_katm_t)); + wpabs_memcpy(&atm_link->reg,prot_reg,sizeof(wplip_prot_reg_t)); + wpabs_strncpy(atm_link->name,devname,sizeof(atm_link->name)-1); + + wpabs_memcpy(&atm_link->cfg,cfg_ptr,sizeof(atm_link->cfg)); + + atm_link->dev_list_lock=RW_LOCK_UNLOCKED; + + /* INITIALIZE THE PROTOCOL HERE */ + atmdev = atm_dev_register(devname, &ops, -1, NULL); + if (atmdev == NULL) { + wpabs_debug_event("%s: couldn't register atm device!\n", devname); + wpabs_free(atm_link); + return NULL; + } + + katm_callback_ops.prot_set_state = wplip_katm_link_prot_change_state; + katm_callback_ops.chan_set_state = wplip_katm_lipdev_prot_change_state; + katm_callback_ops.mtu = 1500; + katm_callback_ops.tx_link_down = wplip_katm_link_callback_tx_down; + katm_callback_ops.tx_chan_down = wplip_katm_callback_tx_down; + katm_callback_ops.rx_up = wplip_katm_prot_rx_up; + katm_callback_ops.get_ipv4_addr = NULL; + katm_callback_ops.set_ipv4_addr = NULL; + katm_callback_ops.kick_task = NULL; + + + atm_link->sar_dev = wp_register_atm_prot(atm_link,"wanpipe_atm_link",&cfg_ptr,&katm_callback_ops); + if (!atm_link->sar_dev) { + wpabs_debug_event("%s: couldn't register sar device!\n", devname); + atm_dev_deregister(atm_link->atmdev); + wpabs_free(atm_link); + return NULL; + } + + /* This saves the previously allocated structure, we probably + should consider making this static, so that it is not allocated + in a seperate memory region for speed purposes, less paging? */ + atmdev->dev_data = atm_link; + + /* RWM Added 2/21/2007 Let the ATM stack know our limits */ + atmdev->ci_range.vpi_bits = LOG2_NUM_VPIS; + atmdev->ci_range.vci_bits = LOG2_NUM_VCIS_PER_VPI; + atmdev->link_rate = AFT101_CELL_RATE; + + atm_link->atmdev = atmdev; + + /* Initialize the LINK pointer used to call + * the LIP layer */ + atm_link->link_dev = link_ptr; + + FUNC_END(); + + /* Pass the atm_link pointer to the LIP Layer, so + * that LIP can call us with it */ + + return atm_link; +} + +int wp_unregister_katm_prot(void *prot_ptr) +/********************************************************************************************/ +{ + wp_katm_t *atm_link =(wp_katm_t*)prot_ptr; + + wpabs_debug_test("%s: %s %d\n", + atm_link->name,__FUNCTION__,__LINE__); + + wan_set_bit(0,&atm_link->critical); + + FUNC_BEGIN(); + + wp_unregister_atm_prot(atm_link->sar_dev); + + atm_link->sar_dev=NULL; + + /* UNREGISTER LINK HERE */ + if (atm_link->atmdev) { + atm_dev_deregister(atm_link->atmdev); + atm_link->atmdev=NULL; + } + + /* Free the allocated Protocol structure */ + wp_dev_put(atm_link); + + FUNC_END(); + return 0; +} + + +void *wp_register_katm_chan(void *if_ptr, + void *prot_ptr, + char *devname, + void *cfg_ptr, + unsigned char type) +/********************************************************************************************/ +{ + wp_katm_t *atm_link =(wp_katm_t*)prot_ptr; + wan_atm_conf_if_t *cfg = (wan_atm_conf_if_t *)cfg_ptr; + + + wpabs_strncpy(atm_link->name,devname,sizeof(atm_link->name)-1); + wpabs_memcpy(&atm_link->cfg,cfg,sizeof(atm_link->cfg)); + + wpabs_debug_test("%s: %s %d\n", + atm_link->name,__FUNCTION__,__LINE__); + + /* Note we are not allocating a channel device + * because this example is for non multiplexed + * protocols. Thus keep using the prot device + * that is already registered */ + atm_link->dev = if_ptr; + atm_link->type= type; + + /* CONFIGURE/INITIALIZE THE PROTOCOL STRUCTURE */ + + return atm_link; +} + + +int wp_unregister_katm_chan(void *chan_ptr) +/********************************************************************************************/ +{ + wp_katm_t *atm_link =(wp_katm_t*)chan_ptr; + + wpabs_debug_test("%s: %s %d\n", + atm_link->name,__FUNCTION__,__LINE__); + /* UNREGISTER CHAN FROM PROTOCOL */ + + atm_link->dev=NULL; + + return 0; +} + + +int wp_katm_open(void *prot_ptr) +/********************************************************************************************/ +{ + wp_katm_t *prot =(wp_katm_t*)prot_ptr; + + wpabs_debug_test("%s: %s %d\n", + prot->name,__FUNCTION__,__LINE__); + + /* OPEN CONFIGURATION + * (ifconfig up) + * + */ + + return 0; +} + +int wp_katm_close(void *prot_ptr) +/********************************************************************************************/ +{ + wp_katm_t *prot =(wp_katm_t*)prot_ptr; + + wpabs_debug_test("%s: %s %d\n", + prot->name,__FUNCTION__,__LINE__); + /* CLOSE CONFIGURATION + * (ifconfig down) + * + */ + + return 0; +} + + +int wp_katm_rx (void *prot_ptr, void * skb) +/********************************************************************************************/ +{ + wp_katm_t *prot =(wp_katm_t*)prot_ptr; + if (!prot->sar_dev) { + wpabs_skb_free(skb); + return 0; + } + + wpabs_debug_test("%s: %s %d %d\n", + prot->name,__FUNCTION__,__LINE__,wpabs_skb_len(skb)); + + return wp_atm_rx(prot->sar_dev,skb); + +} + + + +int wp_katm_timer(void *prot_ptr, unsigned int *timeout, unsigned int carrier_reliable) +/********************************************************************************************/ +{ + wp_katm_t *prot = (wp_katm_t *)prot_ptr; + + if (!prot->sar_dev) { + *timeout=wpabs_get_hz(); + return 0; + } + + if (carrier_reliable) { + prot->state=WAN_CONNECTED; + } else { + prot->state=WAN_DISCONNECTED; + } + + wpabs_debug_test("%s: %s %d carrier=%i \n", + prot->name,__FUNCTION__,__LINE__,carrier_reliable); + + wp_atm_timer(prot->sar_dev,timeout,carrier_reliable); + + return 0; +} + + +int wp_katm_pipemon(void *prot_ptr, int cmd, int addr, + unsigned char* data, unsigned int *len) +/********************************************************************************************/ +{ + wp_katm_t *prot = (wp_katm_t *)prot_ptr; + + prot = prot; + + *len=1; + + /* IMPLEMENT PIPEMON COMMANDS */ + + return 0; +} + + +int wpkatm_bh (void *atm_link) +{ + return wpkatm_priv_bh(atm_link); +} + +/*====================================================== + * wp_katm_data_indication + * + * Transmitt the lapb packet to the lower layer, + * vi its master (tx_dev) device. + * + */ +static int wp_katm_data_indication(wp_katm_t *prot, void *skb) +/********************************************************************************************/ +{ + wpabs_debug_event("%s: %s() Len=%i\n", + prot->name,__FUNCTION__,wpabs_skb_len(skb)); + + if (prot->dev){ + return prot->reg.rx_up(prot->dev,skb,prot->type); + } + + return 1; +} + + + +/********************************************************** + * Private Functions + **********************************************************/ + + +/*====================================================== + * prot_connect_indication + * + * Indicate to the upper layer that the + * lower layer is connected and that it should + * start its connection process. + */ +void wp_connect_indication(wp_katm_t *prot, int reason) +/********************************************************************************************/ +{ + wpabs_debug_event("%s: %s() Reason=%i\n", + prot->name,__FUNCTION__,reason); + + if (prot->dev && prot->reg.chan_set_state){ + prot->reg.chan_set_state(prot->dev,WAN_CONNECTED,NULL, 0); + } +} + + +/*====================================================== + * prot_disconnect_indication + * + * Indicate to the upper layer (x25) that the + * lapb is layer is disconnected and that it should + * drop the connection. + */ +void wp_disconnect_indication(wp_katm_t *prot, int reason) +/********************************************************************************************/ +{ + wpabs_debug_event("%s: %s() Reason=%i\n", + prot->name,__FUNCTION__,reason); + + if (prot->dev && prot->reg.chan_set_state){ + prot->reg.chan_set_state(prot->dev,WAN_DISCONNECTED,NULL,0); + } +} + +int wpkatm_atmdev_tx(wp_katm_channel_t *atm_dev) +{ + wp_katm_t *atm_link = atm_dev->atm_link; + netskb_t *skb; + int err=0; + + skb=wan_skb_dequeue(&atm_dev->tx_queue); + if (skb){ + + if (atm_link->dev && atm_link->reg.tx_chan_down){ + err = atm_link->reg.tx_chan_down(atm_link->dev,skb); + }else{ + wpabs_debug_event("%s: %s %d ERROR no tx_chan_down \n", + atm_dev->name,__FUNCTION__,__LINE__); + wpabs_skb_free(skb); + return -1; + } + + if (err != 0){ + wan_skb_queue_head(&atm_dev->tx_queue,skb); + return 1; + } + } + + return 0; +} + + +int wpkatm_priv_bh (wp_katm_t *atm_link) +{ + wp_katm_channel_t *atm_dev=NULL; + int err=0; + unsigned int timeout_cnt=200; + int moretx=0; + unsigned long flags; + + if (!atm_link) { + return -1; + } + + if (wan_test_bit(0,&atm_link->critical) ) { + DEBUG_EVENT("%s: KATM BH Down\n", + atm_link->name); + return -1; + } + + if (wan_test_and_set_bit(1,&atm_link->critical)) { + return -1; + } + + WP_READ_LOCK(&atm_link->dev_list_lock,flags); + + atm_dev=WAN_LIST_FIRST(&atm_link->list_head_ifdev); + if (!atm_dev){ + goto wpkatm_bh_transmit_exit; + } + + for (;;) { + if (--timeout_cnt == 0){ + DEBUG_EVENT("%s: ATMDEV Priority TxBH Time squeeze\n",atm_link->name); + break; + } + + if (!wan_test_bit(ATM_VF_READY,&atm_dev->vcc->flags)) { + break; + } + + err = wpkatm_atmdev_tx(atm_dev); + if (err){ + break; + } + + if (wan_skb_queue_len(&atm_dev->tx_queue) == 0) { + break; + } + } + + timeout_cnt=5000; + + if ((atm_dev=atm_link->cur_tx) == NULL){ + + atm_dev=WAN_LIST_FIRST(&atm_link->list_head_ifdev); + if (!atm_dev){ + goto wpkatm_bh_transmit_exit; + } + + atm_link->cur_tx=atm_dev; + } + + + for (;;){ + + if (--timeout_cnt == 0){ + DEBUG_EVENT("%s: LipDev TxBH Time squeeze\n",atm_link->name); + goto wpkatm_bh_transmit_exit; + } + + if (!wan_test_bit(ATM_VF_READY,&atm_dev->vcc->flags)) { + goto wpkatm_bh_transmit_skip; + } + + err = wpkatm_atmdev_tx(atm_dev); + if (err){ + if (wan_skb_queue_len(&atm_dev->tx_queue)) { + moretx=1; + } + goto wpkatm_bh_transmit_exit; + } + + if (wan_skb_queue_len(&atm_dev->tx_queue)) { + moretx=1; + } + +wpkatm_bh_transmit_skip: + + atm_dev=WAN_LIST_NEXT(atm_dev,list_entry); + if (atm_dev == NULL){ + atm_dev=WAN_LIST_FIRST(&atm_link->list_head_ifdev); + } + + if (atm_dev == atm_link->cur_tx){ + /* We went through the whole list */ + break; + } + } + +wpkatm_bh_transmit_exit: + + atm_link->cur_tx=atm_dev; + WP_READ_UNLOCK(&atm_link->dev_list_lock,flags); + wan_clear_bit(1,&atm_link->critical); + + return moretx; + +} diff --git a/patches/kdrivers/src/lip/lip_katm/wanpipe_katm_iface.c~ b/patches/kdrivers/src/lip/lip_katm/wanpipe_katm_iface.c~ new file mode 100644 index 0000000..5c84f9c --- /dev/null +++ b/patches/kdrivers/src/lip/lip_katm/wanpipe_katm_iface.c~ @@ -0,0 +1,552 @@ +/***************************************************************************** +* wanpipe_katm_iface.c +* +* WANPIPE Protocol Template Module +* +* Author: Nenad Corbic +* +* Copyright: (c)2007 Sangoma Technologies 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 of the License, or (at your option) any later version. +* ============================================================================ +* This module: +* This module 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. +*/ + +#include "wanpipe_katm.h" +static int wp_katm_data_indication(wp_katm_t *prot, void *skb); + +static const struct atmdev_ops ops = { + .open = wan_lip_katm_open, + .close = wan_lip_katm_close, + .ioctl = NULL, + .getsockopt = wan_lip_katm_getsockopt, + .setsockopt = wan_lip_katm_setsockopt, + .send = wan_lip_katm_send, + .phy_put = NULL, + .phy_get = NULL, + .change_qos = NULL, + .proc_read = NULL, + .owner = THIS_MODULE, +}; + +/* Just here for easy reference until we get this working +const struct atmdev_ops mpc8260sar_ops = { + open:mpc8260sar_open, + close:mpc8260sar_close, + ioctl:mpc8260sar_ioctl, + getsockopt:mpc8260sar_getsockopt, + setsockopt:mpc8260sar_setsockopt, + send:mpc8260sar_send, + sg_send:mpc8260sar_sg_send, + change_qos:mpc8260sar_change_qos, + proc_read:mpc8260sar_proc_read, + owner:THIS_MODULE, +}; */ + +int wp_katm_tx(void *prot_ptr, void *skb, int type) +/********************************************************************************************/ +{ + /* This function is not used */ + + wpabs_debug_event("%s %d\n", + __FUNCTION__,__LINE__); + + /* The higher layer has given us a frame. + * + * Put a header on the frame and send it out. + * Or queue it and take care of it in custom + * state machine */ + + return -1; +} + +/*====================================================== + * wp_katm_data_transmit + * + * Transmitt the ppp packet to the lower layer, + * vi its master (tx_dev) device. + * + */ +int wp_katm_data_transmit(wp_katm_t *prot, void *skb) +/********************************************************************************************/ +{ + + if (prot->link_dev && prot->reg.tx_link_down){ + return prot->reg.tx_link_down(prot->link_dev,skb); + }else{ + wpabs_debug_event("%s: Critical error link dev=%p tx_link_down=%p\n", + __FUNCTION__,prot->link_dev,prot->reg.tx_link_down); + + } + + return 1; +} + +void *wp_register_katm_prot(void *link_ptr, + char *devname, + void *cfg_ptr, + wplip_prot_reg_t *prot_reg) +/********************************************************************************************/ +{ + wp_katm_t *atm_link; + struct atm_dev *atmdev; + wplip_prot_reg_t katm_callback_ops; + + + + FUNC_BEGIN(); + + wpabs_debug_event("%s: %s %d\n", + devname,__FUNCTION__,__LINE__); + + if (!devname || !cfg_ptr || !prot_reg){ + wpabs_debug_event("%s:%d: Assert Error invalid args\n", + __FUNCTION__,__LINE__); + return NULL; + } + + atm_link=wpabs_malloc(sizeof(wp_katm_t)); + if (!atm_link){ + wpabs_debug_event( "katm: Failed to create protocol %s\n", + devname); + return NULL; + } + + /* Copy the LIP call back functions used to call + * the LIP layer */ + wpabs_memset(atm_link,0,sizeof(wp_katm_t)); + wpabs_memcpy(&atm_link->reg,prot_reg,sizeof(wplip_prot_reg_t)); + wpabs_strncpy(atm_link->name,devname,sizeof(atm_link->name)-1); + + wpabs_memcpy(&atm_link->cfg,cfg_ptr,sizeof(atm_link->cfg)); + + atm_link->dev_list_lock=RW_LOCK_UNLOCKED; + + /* INITIALIZE THE PROTOCOL HERE */ + atmdev = atm_dev_register(devname, &ops, -1, NULL); + if (atmdev == NULL) { + wpabs_debug_event("%s: couldn't register atm device!\n", devname); + wpabs_free(atm_link); + return NULL; + } + + katm_callback_ops.prot_set_state = wplip_katm_link_prot_change_state; + katm_callback_ops.chan_set_state = wplip_katm_lipdev_prot_change_state; + katm_callback_ops.mtu = 1500; + katm_callback_ops.tx_link_down = wplip_katm_link_callback_tx_down; + katm_callback_ops.tx_chan_down = wplip_katm_callback_tx_down; + katm_callback_ops.rx_up = wplip_katm_prot_rx_up; + katm_callback_ops.get_ipv4_addr = NULL; + katm_callback_ops.set_ipv4_addr = NULL; + katm_callback_ops.kick_task = NULL; + + + atm_link->sar_dev = wp_register_atm_prot(atm_link,"wanpipe_atm_link",&cfg_ptr,&katm_callback_ops); + if (!atm_link->sar_dev) { + wpabs_debug_event("%s: couldn't register sar device!\n", devname); + atm_dev_deregister(atm_link->atmdev); + wpabs_free(atm_link); + return NULL; + } + + /* This saves the previously allocated structure, we probably + should consider making this static, so that it is not allocated + in a seperate memory region for speed purposes, less paging? */ + atmdev->dev_data = atm_link; + + /* RWM Added 2/21/2007 Let the ATM stack know our limits */ + atmdev->ci_range.vpi_bits = LOG2_NUM_VPIS; + atmdev->ci_range.vci_bits = LOG2_NUM_VCIS_PER_VPI; + atmdev->link_rate = AFT101_CELL_RATE; + + atm_link->atmdev = atmdev; + + /* Initialize the LINK pointer used to call + * the LIP layer */ + atm_link->link_dev = link_ptr; + + FUNC_END(); + + /* Pass the atm_link pointer to the LIP Layer, so + * that LIP can call us with it */ + + return atm_link; +} + +int wp_unregister_katm_prot(void *prot_ptr) +/********************************************************************************************/ +{ + wp_katm_t *atm_link =(wp_katm_t*)prot_ptr; + + wpabs_debug_test("%s: %s %d\n", + atm_link->name,__FUNCTION__,__LINE__); + + wan_set_bit(0,&atm_link->critical); + + FUNC_BEGIN(); + + wp_unregister_atm_prot(atm_link->sar_dev); + + atm_link->sar_dev=NULL; + + /* UNREGISTER LINK HERE */ + if (atm_link->atmdev) { + atm_dev_deregister(atm_link->atmdev); + atm_link->atmdev=NULL; + } + + /* Free the allocated Protocol structure */ + wp_dev_put(atm_link); + + FUNC_END(); + return 0; +} + + +void *wp_register_katm_chan(void *if_ptr, + void *prot_ptr, + char *devname, + void *cfg_ptr, + unsigned char type) +/********************************************************************************************/ +{ + wp_katm_t *atm_link =(wp_katm_t*)prot_ptr; + wan_atm_conf_if_t *cfg = (wan_atm_conf_if_t *)cfg_ptr; + + + wpabs_strncpy(atm_link->name,devname,sizeof(atm_link->name)-1); + wpabs_memcpy(&atm_link->cfg,cfg,sizeof(atm_link->cfg)); + + wpabs_debug_test("%s: %s %d\n", + atm_link->name,__FUNCTION__,__LINE__); + + /* Note we are not allocating a channel device + * because this example is for non multiplexed + * protocols. Thus keep using the prot device + * that is already registered */ + atm_link->dev = if_ptr; + atm_link->type= type; + + /* CONFIGURE/INITIALIZE THE PROTOCOL STRUCTURE */ + + return atm_link; +} + + +int wp_unregister_katm_chan(void *chan_ptr) +/********************************************************************************************/ +{ + wp_katm_t *atm_link =(wp_katm_t*)chan_ptr; + + wpabs_debug_test("%s: %s %d\n", + atm_link->name,__FUNCTION__,__LINE__); + /* UNREGISTER CHAN FROM PROTOCOL */ + + atm_link->dev=NULL; + + return 0; +} + + +int wp_katm_open(void *prot_ptr) +/********************************************************************************************/ +{ + wp_katm_t *prot =(wp_katm_t*)prot_ptr; + + wpabs_debug_test("%s: %s %d\n", + prot->name,__FUNCTION__,__LINE__); + + /* OPEN CONFIGURATION + * (ifconfig up) + * + */ + + return 0; +} + +int wp_katm_close(void *prot_ptr) +/********************************************************************************************/ +{ + wp_katm_t *prot =(wp_katm_t*)prot_ptr; + + wpabs_debug_test("%s: %s %d\n", + prot->name,__FUNCTION__,__LINE__); + /* CLOSE CONFIGURATION + * (ifconfig down) + * + */ + + return 0; +} + + +int wp_katm_rx (void *prot_ptr, void * skb) +/********************************************************************************************/ +{ + wp_katm_t *prot =(wp_katm_t*)prot_ptr; + if (!prot->sar_dev) { + wpabs_skb_free(skb); + return 0; + } + + wpabs_debug_test("%s: %s %d %d\n", + prot->name,__FUNCTION__,__LINE__,wpabs_skb_len(skb)); + + return wp_atm_rx(prot->sar_dev,skb); + +} + + + +int wp_katm_timer(void *prot_ptr, unsigned int *timeout, unsigned int carrier_reliable) +/********************************************************************************************/ +{ + wp_katm_t *prot = (wp_katm_t *)prot_ptr; + + if (!prot->sar_dev) { + *timeout=wpabs_get_hz(); + return 0; + } + + if (carrier_reliable) { + prot->state=WAN_CONNECTED; + } else { + prot->state=WAN_DISCONNECTED; + } + + wpabs_debug_test("%s: %s %d carrier=%i \n", + prot->name,__FUNCTION__,__LINE__,carrier_reliable); + + wp_atm_timer(prot->sar_dev,timeout,carrier_reliable); + + return 0; +} + + +int wp_katm_pipemon(void *prot_ptr, int cmd, int addr, + unsigned char* data, unsigned int *len) +/********************************************************************************************/ +{ + wp_katm_t *prot = (wp_katm_t *)prot_ptr; + + prot = prot; + + *len=1; + + /* IMPLEMENT PIPEMON COMMANDS */ + + return 0; +} + + +int wpkatm_bh (void *atm_link) +{ + return wpkatm_priv_bh(atm_link); +} + +/*====================================================== + * wp_katm_data_indication + * + * Transmitt the lapb packet to the lower layer, + * vi its master (tx_dev) device. + * + */ +static int wp_katm_data_indication(wp_katm_t *prot, void *skb) +/********************************************************************************************/ +{ + wpabs_debug_event("%s: %s() Len=%i\n", + prot->name,__FUNCTION__,wpabs_skb_len(skb)); + + if (prot->dev){ + return prot->reg.rx_up(prot->dev,skb,prot->type); + } + + return 1; +} + + + +/********************************************************** + * Private Functions + **********************************************************/ + + +/*====================================================== + * prot_connect_indication + * + * Indicate to the upper layer that the + * lower layer is connected and that it should + * start its connection process. + */ +void wp_connect_indication(wp_katm_t *prot, int reason) +/********************************************************************************************/ +{ + wpabs_debug_event("%s: %s() Reason=%i\n", + prot->name,__FUNCTION__,reason); + + if (prot->dev && prot->reg.chan_set_state){ + prot->reg.chan_set_state(prot->dev,WAN_CONNECTED,NULL, 0); + } +} + + +/*====================================================== + * prot_disconnect_indication + * + * Indicate to the upper layer (x25) that the + * lapb is layer is disconnected and that it should + * drop the connection. + */ +void wp_disconnect_indication(wp_katm_t *prot, int reason) +/********************************************************************************************/ +{ + wpabs_debug_event("%s: %s() Reason=%i\n", + prot->name,__FUNCTION__,reason); + + if (prot->dev && prot->reg.chan_set_state){ + prot->reg.chan_set_state(prot->dev,WAN_DISCONNECTED,NULL,0); + } +} + +int wpkatm_atmdev_tx(wp_katm_channel_t *atm_dev) +{ + wp_katm_t *atm_link = atm_dev->atm_link; + netskb *skb; + int err=0; + + skb=wan_skb_dequeue(&atm_dev->tx_queue); + if (skb){ + + if (atm_link->dev && atm_link->reg.tx_chan_down){ + err = atm_link->reg.tx_chan_down(atm_link->dev,skb); + }else{ + wpabs_debug_event("%s: %s %d ERROR no tx_chan_down \n", + atm_dev->name,__FUNCTION__,__LINE__); + wpabs_skb_free(skb); + return -1; + } + + if (err != 0){ + wan_skb_queue_head(&atm_dev->tx_queue,skb); + return 1; + } + } + + return 0; +} + + +int wpkatm_priv_bh (wp_katm_t *atm_link) +{ + wp_katm_channel_t *atm_dev=NULL; + int err=0; + unsigned int timeout_cnt=200; + int moretx=0; + unsigned long flags; + + if (!atm_link) { + return -1; + } + + if (wan_test_bit(0,&atm_link->critical) ) { + DEBUG_EVENT("%s: KATM BH Down\n", + atm_link->name); + return -1; + } + + if (wan_test_and_set_bit(1,&atm_link->critical)) { + return -1; + } + + WP_READ_LOCK(&atm_link->dev_list_lock,flags); + + atm_dev=WAN_LIST_FIRST(&atm_link->list_head_ifdev); + if (!atm_dev){ + goto wpkatm_bh_transmit_exit; + } + + for (;;) { + if (--timeout_cnt == 0){ + DEBUG_EVENT("%s: ATMDEV Priority TxBH Time squeeze\n",atm_link->name); + break; + } + + if (!wan_test_bit(ATM_VF_READY,&atm_dev->vcc->flags)) { + break; + } + + err = wpkatm_atmdev_tx(atm_dev); + if (err){ + break; + } + + if (wan_skb_queue_len(&atm_dev->tx_queue) == 0) { + break; + } + } + + timeout_cnt=5000; + + if ((atm_dev=atm_link->cur_tx) == NULL){ + + atm_dev=WAN_LIST_FIRST(&atm_link->list_head_ifdev); + if (!atm_dev){ + goto wpkatm_bh_transmit_exit; + } + + atm_link->cur_tx=atm_dev; + } + + + for (;;){ + + if (--timeout_cnt == 0){ + DEBUG_EVENT("%s: LipDev TxBH Time squeeze\n",atm_link->name); + goto wpkatm_bh_transmit_exit; + } + + if (!wan_test_bit(ATM_VF_READY,&atm_dev->vcc->flags)) { + goto wpkatm_bh_transmit_skip; + } + + err = wpkatm_atmdev_tx(atm_dev); + if (err){ + if (wan_skb_queue_len(&atm_dev->tx_queue)) { + moretx=1; + } + goto wpkatm_bh_transmit_exit; + } + + if (wan_skb_queue_len(&atm_dev->tx_queue)) { + moretx=1; + } + +wpkatm_bh_transmit_skip: + + atm_dev=WAN_LIST_NEXT(atm_dev,list_entry); + if (atm_dev == NULL){ + atm_dev=WAN_LIST_FIRST(&atm_link->list_head_ifdev); + } + + if (atm_dev == atm_link->cur_tx){ + /* We went through the whole list */ + break; + } + } + +wpkatm_bh_transmit_exit: + + atm_link->cur_tx=atm_dev; + WP_READ_UNLOCK(&atm_link->dev_list_lock,flags); + wan_clear_bit(1,&atm_link->critical); + + return moretx; + +} diff --git a/patches/kdrivers/src/lip/lip_katm/wanpipe_katm_iface.o b/patches/kdrivers/src/lip/lip_katm/wanpipe_katm_iface.o new file mode 100644 index 0000000..100eb5b Binary files /dev/null and b/patches/kdrivers/src/lip/lip_katm/wanpipe_katm_iface.o differ diff --git a/patches/kdrivers/src/lip/lip_katm/wanpipe_katm_sub.c b/patches/kdrivers/src/lip/lip_katm/wanpipe_katm_sub.c new file mode 100644 index 0000000..8305260 --- /dev/null +++ b/patches/kdrivers/src/lip/lip_katm/wanpipe_katm_sub.c @@ -0,0 +1,456 @@ + +/* IMPLEMENT PRIVATE FUNCTIONS USED BY THE PROTOCOL */ +#include "wanpipe_katm.h" + + +int +wan_lip_katm_setsockopt(struct atm_vcc *vcc, int level, int optname, + void *optval, int optlen) +{ + wpabs_debug_event("%s:%d\n",__FUNCTION__,__LINE__); + return -EINVAL; +} + +int +wan_lip_katm_getsockopt(struct atm_vcc *vcc, int level, int optname, + void *optval, int optlen) +{ + wpabs_debug_event("%s:%d\n",__FUNCTION__,__LINE__); + return -EINVAL; +} + +/* This is not implemented yet, so I have it remarked out */ +int +wan_lip_katm_sg_send(struct atm_vcc *vcc, unsigned long start, + unsigned long size) +{ + /* Scatter/Gather sending */ + wpabs_debug_event("%s:%d Size %lu %lu\n",__FUNCTION__,__LINE__,start,size); + return vcc->qos.aal == ATM_AAL5 && !((start | size) & 3); + /* don't tolerate misalignment */ +} +/*============================================================= + wan_lip_katm_close + +*/ + +void wan_lip_katm_close(struct atm_vcc *vcc) +{ + unsigned char tx_tclass = vcc->qos.txtp.traffic_class; + unsigned char rx_tclass = vcc->qos.rxtp.traffic_class; + wp_katm_t *atm_link = vcc->dev->dev_data; + wp_katm_channel_t *chan = vcc->dev_data; + if (!chan) { + wpabs_debug_event("%s:%d Error no device\n",__FUNCTION__,__LINE__); + return; + } + + wpabs_debug_event("%s: %s %d\n", chan->name,__FUNCTION__,__LINE__); + + wpabs_clear_bit(ATM_VF_READY,&vcc->flags); + + // Is there a receive interface open ? + if (rx_tclass != ATM_NONE) { + /* TODO: do any HW cleanup for turning off reception on this channel */ + /* Also clean up any buffers that might bave been alloced for RX*/ + } + // Is there a transmit interface open ? + if (tx_tclass != ATM_NONE) { + /* TODO: do any HW cleanup for turning off transmission on this channel */ + /* Also clean up any buffers that might bave been alloced for TX*/ + } + + chan->atm_link=NULL; + + wp_atm_close_chan(chan->sar_vcc); + + wp_unregister_atm_chan(chan->sar_vcc); + chan->sar_vcc=NULL; + + wpkatm_remove_vccdev(atm_link,chan); + + if(vcc->dev_data) //insurance against locking up + kfree(vcc->dev_data); //Free the chan struct we created in Open + vcc->dev_data = NULL; + + wpabs_clear_bit(ATM_VF_ADDR,&vcc->flags); +} + +/*============================================================= + wp_katm_activate_channel + +*/ + +static int wp_katm_activate_channel(struct atm_vcc *vcc, wp_katm_channel_t * chan) +{ + unsigned char rx_traffic_class = vcc->qos.rxtp.traffic_class; + unsigned char tx_traffic_class = vcc->qos.txtp.traffic_class; + wan_atm_conf_if_t atm_cfg; + int err; + + wp_katm_t *atm_link=vcc->dev->dev_data; //Get Hardware device pointer + if (!atm_link) { + wpabs_debug_event("%s:%d Error no device\n",__FUNCTION__,__LINE__); + return -ENODEV; + } + + wpabs_debug_event("%s:%d: %s\n",__FUNCTION__,__LINE__,atm_link->name); + + + wpabs_memcpy(&atm_cfg,&atm_link->cfg,sizeof(wan_atm_conf_if_t)); + + // Is a receive interface required ? + if (rx_traffic_class != ATM_NONE) { + //enable receive only interface + //return on error otherwise + } + if (tx_traffic_class != ATM_NONE) { + // Only currently support UBR and CBR tx classes + if (!((tx_traffic_class == ATM_UBR) || (tx_traffic_class == ATM_CBR))) { + printk(KERN_WARNING "tx traffic class not supported\n"); + return -EINVAL; + } + //enable tx channel + } + + atm_cfg.vpi=chan->vpi; + atm_cfg.vci=chan->vci; + + chan->sar_vcc = wp_register_atm_chan(chan, + atm_link->sar_dev, + atm_link->name, + &atm_cfg, + WPLIP_RAW); + if (!chan->sar_vcc) { + wpabs_debug_event("%s:%d Error failed to register atm vcc\n",__FUNCTION__,__LINE__); + return -EINVAL; + } + + err=wp_atm_open_chan(chan->sar_vcc); + if (err) { + wpabs_debug_event("%s:%d Error failed to open atm vcc\n",__FUNCTION__,__LINE__); + wp_unregister_atm_chan(chan->sar_vcc); + return -EINVAL; + } + + return 0; +} + + + +/* RWM - After talking with the ATM stack maintainer, I have learned that +the 2nd and 3rd parameters are deprecated. We do not need to use +them here. All VCC's are kept in a kernel maintained hash list, and will be +passed in with the atm_vcc struct */ +int wan_lip_katm_open(struct atm_vcc *vcc) //, short vpi, int vci) +{ + wp_katm_t *atm_link = vcc->dev->dev_data; //Device data is passed in + wp_katm_channel_t *chan = NULL; //each new vcc chan data unallocated + unsigned char rx_traffic_class = vcc->qos.rxtp.traffic_class; + unsigned char tx_traffic_class = vcc->qos.txtp.traffic_class; + int result; + + wpabs_debug_event("%s: %s %d AAL=%s\n", atm_link->name,__FUNCTION__,__LINE__, + vcc->qos.aal == ATM_AAL0 ? "AAL0" : + (vcc->qos.aal == ATM_AAL5 ? "AAL5" : "OTHER") ); + + /* Make sure we are opening an AAL0 or AAL5 connection */ + /* Though this level doesn't parse the AAL5 protocol */ + /* It is responsible for allowing that connection type to be established */ + if ((vcc->qos.aal != ATM_AAL0) && (vcc->qos.aal != ATM_AAL5)) { + wpabs_debug_event("ATM_AALx was invalid for this driver\n"); + return -EINVAL; + } + + /* Make sure traffic class is valid */ + if ((rx_traffic_class == ATM_NONE) && (tx_traffic_class == ATM_NONE)) { + wpabs_debug_event("rx and tx traffic class not specified\n"); + return -EINVAL; + } + + /* Set open bit in progress, this lets the stack know that the requested address + is now in use. */ + wpabs_set_bit(ATM_VF_ADDR,&vcc->flags); + + /* TODO: Ok here we need to actually open the channel, or at least + manipulate hardware 'open' and 'activate' a channel. This should + be comprised of allocated rx/tx buffers as needed, + based on the traffic classes, buffer descriptors */ + + chan = kmalloc(sizeof(wp_katm_channel_t), GFP_KERNEL); + if (!chan) { + wpabs_clear_bit(ATM_VF_ADDR,&vcc->flags); + wpabs_debug_event("Unable to allocate chan during open\n"); + return -ENOMEM; + } + wpabs_memset(chan,0,sizeof(wp_katm_channel_t)); + wpabs_memcpy(chan->name,atm_link->name,sizeof(chan->name)); + + chan->aal = vcc->qos.aal; + chan->vcc = vcc; + + chan->atm_link = atm_link; + + + /* ToDo: Need to assign all the values for chan here */ + + vcc->dev_data = chan; /* save channel structure */ + + /* Assign VPI and VCI in both atm_vcc and cpm_channel_t */ + chan->vpi = vcc->vpi; + chan->vci = vcc->vci; + wpabs_debug_event("RWM: Open vcc->vpi=%d : vcc->vci=%d\n", vcc->vpi, vcc->vci); + + if ((result = wp_katm_activate_channel(vcc, chan))) { + //wp_katm_undo_activate_channel(vcc, chan); + //could we just call close here instead? + wan_lip_katm_close(vcc); + return result; + } + + wpkatm_insert_vccdev(atm_link,chan); + + /* Tells the stack that this VC is ready for Tx/Rx */ + wpabs_set_bit(ATM_VF_READY,&vcc->flags); + + return 0; +} + + + + +int wan_lip_katm_send(struct atm_vcc *vcc,struct sk_buff *skb) +{ + wp_katm_t *atm_link=vcc->dev->dev_data; //Get Hardware device pointer + wp_katm_channel_t *chan= (wp_katm_channel_t*)vcc->dev_data; //channel pointer, not sure if we need this here. + int err; + struct sk_buff *nskb; + +// wpabs_debug_event("%s:%d Size %i %s\n", +// __FUNCTION__,__LINE__,wpabs_skb_len(skb), +// vcc->qos.aal == ATM_AAL0 ? "AAL0" : +// (vcc->qos.aal == ATM_AAL5 ? "AAL5" : "OTHER") ); + +//This for documentation only +//#define ATM_SKB(skb) (((struct atm_skb_data *) (skb)->cb)) + +#if 0 + { + unsigned char *data=wpabs_skb_data(skb); + int i; + for (i=0;ipop) vcc->pop(vcc,skb); + else dev_kfree_skb(skb); + return 0; + } + + if (!skb) { + wpabs_debug_event("!skb in eni_send ?\n"); + if (vcc->pop) vcc->pop(vcc,skb); + else dev_kfree_skb(skb); + return -EINVAL; + } + + if (vcc->qos.aal == ATM_AAL0) { + wpabs_debug_event("RWM: AAL0 send in progress?\n"); + if (skb->len != ATM_CELL_SIZE-1) { + if (vcc->pop) vcc->pop(vcc,skb); + else dev_kfree_skb(skb); + return -EINVAL; + } else { + *(u32 *) skb->data = htonl(*(u32 *) skb->data); + } + } + + + nskb=skb_clone(skb,GFP_KERNEL); + if (!nskb) { + if (vcc->pop) vcc->pop(vcc,skb); + else dev_kfree_skb(skb); + return -ENOMEM; + } + + err = wp_atm_tx(chan->sar_vcc,nskb,0); + + if (err) { + wpabs_skb_free(nskb); + if (vcc->pop) vcc->pop(vcc,skb); + else dev_kfree_skb(skb); + + wpkatm_priv_bh(atm_link); + + return -1; + } + + if (vcc->pop) vcc->pop(vcc,skb); + else dev_kfree_skb(skb); + + wpkatm_priv_bh(atm_link); + +// wpabs_debug_event("%s:%d Send OK\n", +// __FUNCTION__,__LINE__); + + return 0; +} + +int wan_lip_katm_rx(wp_katm_channel_t *chan, struct sk_buff *skb) +{ + struct atm_vcc *vcc = chan->vcc; + if (!vcc) { + wpabs_debug_event("%s:%d %s, VPI:VCI=%d:%d\n", + __FUNCTION__,__LINE__, chan->name, chan->vpi, chan->vci); + wpabs_skb_free(skb); + return 0; + } + +// wpabs_debug_event("%s: %s VPI:VCI=%d:%d Line:%d\n", +// chan->name, __FUNCTION__, chan->vpi, chan->vci, __LINE__); + + + if (vcc->qos.aal == ATM_AAL0) { + wpabs_debug_event("%s: Received AAL0 packet!\n", __FUNCTION__); + *(unsigned long *) skb->data = + ntohl(*(unsigned long *) skb->data); + } + + vcc->push(vcc,skb); + + return 0; +} + +//------------------------------------------------------- +// Private Callback Funcitons + +int wplip_katm_link_prot_change_state (void *wplip_id,int state, unsigned char *data, int len) +{ + wp_katm_t *atm_link = (wp_katm_t *)wplip_id; + if (!atm_link) { + return 0; + } + + atm_link->reg.prot_set_state(atm_link->link_dev, + state, + data, + len); + + wpabs_debug_event("%s: %s %d\n", + atm_link->name,__FUNCTION__,__LINE__); + return 0; +} + +int wplip_katm_lipdev_prot_change_state(void *wplip_id,int state, + unsigned char *data, int len) +{ + wp_katm_channel_t *chan = (wp_katm_channel_t *)wplip_id; + wp_katm_t *atm_link = chan->atm_link; + if (!atm_link) { + return 0; + } + + atm_link->reg.chan_set_state(atm_link->dev, + state, + data, + len); + + wpabs_debug_event("%s: %s %d\n", + atm_link->name,__FUNCTION__,__LINE__); + return 0; +} + +int wplip_katm_link_callback_tx_down (void *wplink_id, void *skb) +{ + + return 0; +} + +#define KATM_MAX_Q 200 +int wplip_katm_callback_tx_down (void *lip_dev_ptr, void *skb) +{ + wp_katm_channel_t *chan = (wp_katm_channel_t *)lip_dev_ptr; + + if (!chan->atm_link) { + wpabs_debug_event("%s: %s %d ERROR no atm_link\n", + chan->name,__FUNCTION__,__LINE__); + if (skb) { + wpabs_skb_free(skb); + } + return 0; + } + + if (!skb){ + int free_space=KATM_MAX_Q - wan_skb_queue_len(&chan->tx_queue); + if (free_space < 0) { + return 0; + } else { + return free_space; + } + } + + if (wan_skb_queue_len(&chan->tx_queue) >= KATM_MAX_Q){ + DEBUG_EVENT("%s: %s() Error Tx queue full\n", + chan->name,__FUNCTION__); + return 1; + } + + + wan_skb_queue_tail(&chan->tx_queue,skb); + + return 0; +} + +int wplip_katm_prot_rx_up (void *lip_dev_ptr, void *skb, int type) +{ + wp_katm_channel_t *chan = (wp_katm_channel_t *)lip_dev_ptr; + wp_katm_t *atm_link = chan->atm_link; + + if (!atm_link || !type) { //Kill all non zero types for now, including OAM + wpabs_debug_event("%s %d Killing skb type=%d len=%i\n", + __FUNCTION__,__LINE__,type, wpabs_skb_len(skb)); + wpabs_skb_free(skb); + return 0; + } + +// wpabs_debug_event("%s %d len=%i\n", +// __FUNCTION__,__LINE__,wpabs_skb_len(skb)); + + wan_lip_katm_rx(chan,skb); + return 0; +} + + +void wpkatm_insert_vccdev(wp_katm_t *atm_link, wp_katm_channel_t *atm_chan) +{ + unsigned long flags; + + WP_WRITE_LOCK(&atm_link->dev_list_lock,flags); + WAN_LIST_INSERT_HEAD(&atm_link->list_head_ifdev,atm_chan,list_entry); + WAN_DEV_HOLD(atm_chan); + atm_link->dev_cnt++; + WP_WRITE_UNLOCK(&atm_link->dev_list_lock,flags); +} + + +void wpkatm_remove_vccdev(wp_katm_t *atm_link, wp_katm_channel_t *atm_chan) +{ + unsigned long flags; + + WP_WRITE_LOCK(&atm_link->dev_list_lock,flags); + WAN_DEV_PUT(atm_chan); + WAN_LIST_REMOVE(atm_chan,list_entry); + atm_link->cur_tx=NULL; + atm_link->dev_cnt--; + WP_WRITE_UNLOCK(&atm_link->dev_list_lock,flags); + + return; +} + + + + + diff --git a/patches/kdrivers/src/lip/lip_katm/wanpipe_katm_sub.c~ b/patches/kdrivers/src/lip/lip_katm/wanpipe_katm_sub.c~ new file mode 100644 index 0000000..41baac6 --- /dev/null +++ b/patches/kdrivers/src/lip/lip_katm/wanpipe_katm_sub.c~ @@ -0,0 +1,455 @@ + +/* IMPLEMENT PRIVATE FUNCTIONS USED BY THE PROTOCOL */ +#include "wanpipe_katm.h" + + +int +wan_lip_katm_setsockopt(struct atm_vcc *vcc, int level, int optname, + void *optval, int optlen) +{ + wpabs_debug_event("%s:%d\n",__FUNCTION__,__LINE__); + return -EINVAL; +} + +int +wan_lip_katm_getsockopt(struct atm_vcc *vcc, int level, int optname, + void *optval, int optlen) +{ + wpabs_debug_event("%s:%d\n",__FUNCTION__,__LINE__); + return -EINVAL; +} + +/* This is not implemented yet, so I have it remarked out */ +int +wan_lip_katm_sg_send(struct atm_vcc *vcc, unsigned long start, + unsigned long size) +{ + /* Scatter/Gather sending */ + wpabs_debug_event("%s:%d Size %lu %lu\n",__FUNCTION__,__LINE__,start,size); + return vcc->qos.aal == ATM_AAL5 && !((start | size) & 3); + /* don't tolerate misalignment */ +} +/*============================================================= + wan_lip_katm_close + +*/ + +void wan_lip_katm_close(struct atm_vcc *vcc) +{ + unsigned char tx_tclass = vcc->qos.txtp.traffic_class; + unsigned char rx_tclass = vcc->qos.rxtp.traffic_class; + wp_katm_t *atm_link = vcc->dev->dev_data; + wp_katm_channel_t *chan = vcc->dev_data; + if (!chan) { + wpabs_debug_event("%s:%d Error no device\n",__FUNCTION__,__LINE__); + return; + } + + wpabs_debug_event("%s: %s %d\n", chan->name,__FUNCTION__,__LINE__); + + wpabs_clear_bit(ATM_VF_READY,&vcc->flags); + + // Is there a receive interface open ? + if (rx_tclass != ATM_NONE) { + /* TODO: do any HW cleanup for turning off reception on this channel */ + /* Also clean up any buffers that might bave been alloced for RX*/ + } + // Is there a transmit interface open ? + if (tx_tclass != ATM_NONE) { + /* TODO: do any HW cleanup for turning off transmission on this channel */ + /* Also clean up any buffers that might bave been alloced for TX*/ + } + + chan->atm_link=NULL; + + wp_atm_close_chan(chan->sar_vcc); + + wp_unregister_atm_chan(chan->sar_vcc); + chan->sar_vcc=NULL; + + wpkatm_remove_vccdev(atm_link,chan); + + if(vcc->dev_data) //insurance against locking up + kfree(vcc->dev_data); //Free the chan struct we created in Open + vcc->dev_data = NULL; + + wpabs_clear_bit(ATM_VF_ADDR,&vcc->flags); +} + +/*============================================================= + wp_katm_activate_channel + +*/ + +static int wp_katm_activate_channel(struct atm_vcc *vcc, wp_katm_channel_t * chan) +{ + unsigned char rx_traffic_class = vcc->qos.rxtp.traffic_class; + unsigned char tx_traffic_class = vcc->qos.txtp.traffic_class; + wan_atm_conf_if_t atm_cfg; + int err; + + wp_katm_t *atm_link=vcc->dev->dev_data; //Get Hardware device pointer + if (!atm_link) { + wpabs_debug_event("%s:%d Error no device\n",__FUNCTION__,__LINE__); + return -ENODEV; + } + + wpabs_debug_event("%s:%d: %s\n",__FUNCTION__,__LINE__,atm_link->name); + + + wpabs_memcpy(&atm_cfg,&atm_link->cfg,sizeof(wan_atm_conf_if_t)); + + // Is a receive interface required ? + if (rx_traffic_class != ATM_NONE) { + //enable receive only interface + //return on error otherwise + } + if (tx_traffic_class != ATM_NONE) { + // Only currently support UBR and CBR tx classes + if (!((tx_traffic_class == ATM_UBR) || (tx_traffic_class == ATM_CBR))) { + printk(KERN_WARNING "tx traffic class not supported\n"); + return -EINVAL; + } + //enable tx channel + } + + atm_cfg.vpi=chan->vpi; + atm_cfg.vci=chan->vci; + + chan->sar_vcc = wp_register_atm_chan(chan, + atm_link->sar_dev, + atm_link->name, + &atm_cfg, + WPLIP_RAW); + if (!chan->sar_vcc) { + wpabs_debug_event("%s:%d Error failed to register atm vcc\n",__FUNCTION__,__LINE__); + return -EINVAL; + } + + err=wp_atm_open_chan(chan->sar_vcc); + if (err) { + wpabs_debug_event("%s:%d Error failed to open atm vcc\n",__FUNCTION__,__LINE__); + wp_unregister_atm_chan(chan->sar_vcc); + return -EINVAL; + } + + return 0; +} + + + +/* RWM - After talking with the ATM stack maintainer, I have learned that +the 2nd and 3rd parameters are deprecated. We do not need to use +them here. All VCC's are kept in a kernel maintained hash list, and will be +passed in with the atm_vcc struct */ +int wan_lip_katm_open(struct atm_vcc *vcc) //, short vpi, int vci) +{ + wp_katm_t *atm_link = vcc->dev->dev_data; //Device data is passed in + wp_katm_channel_t *chan = NULL; //each new vcc chan data unallocated + unsigned char rx_traffic_class = vcc->qos.rxtp.traffic_class; + unsigned char tx_traffic_class = vcc->qos.txtp.traffic_class; + int result; + + wpabs_debug_event("%s: %s %d AAL=%s\n", atm_link->name,__FUNCTION__,__LINE__, + vcc->qos.aal == ATM_AAL0 ? "AAL0" : + (vcc->qos.aal == ATM_AAL5 ? "AAL5" : "OTHER") ); + + /* Make sure we are opening an AAL0 or AAL5 connection */ + /* Though this level doesn't parse the AAL5 protocol */ + /* It is responsible for allowing that connection type to be established */ + if ((vcc->qos.aal != ATM_AAL0) && (vcc->qos.aal != ATM_AAL5)) { + wpabs_debug_event("ATM_AALx was invalid for this driver\n"); + return -EINVAL; + } + + /* Make sure traffic class is valid */ + if ((rx_traffic_class == ATM_NONE) && (tx_traffic_class == ATM_NONE)) { + wpabs_debug_event("rx and tx traffic class not specified\n"); + return -EINVAL; + } + + /* Set open bit in progress, this lets the stack know that the requested address + is now in use. */ + wpabs_set_bit(ATM_VF_ADDR,&vcc->flags); + + /* TODO: Ok here we need to actually open the channel, or at least + manipulate hardware 'open' and 'activate' a channel. This should + be comprised of allocated rx/tx buffers as needed, + based on the traffic classes, buffer descriptors */ + + chan = kmalloc(sizeof(wp_katm_channel_t), GFP_KERNEL); + if (!chan) { + wpabs_clear_bit(ATM_VF_ADDR,&vcc->flags); + wpabs_debug_event("Unable to allocate chan during open\n"); + return -ENOMEM; + } + wpabs_memset(chan,0,sizeof(wp_katm_channel_t)); + wpabs_memcpy(chan->name,atm_link->name,sizeof(chan->name)); + + chan->aal = vcc->qos.aal; + chan->vcc = vcc; + + chan->atm_link = atm_link; + + + /* ToDo: Need to assign all the values for chan here */ + + vcc->dev_data = chan; /* save channel structure */ + + /* Assign VPI and VCI in both atm_vcc and cpm_channel_t */ + chan->vpi = vcc->vpi; + chan->vci = vcc->vci; + wpabs_debug_event("RWM: Open vcc->vpi=%d : vcc->vci=%d\n", vcc->vpi, vcc->vci); + + if ((result = wp_katm_activate_channel(vcc, chan))) { + //wp_katm_undo_activate_channel(vcc, chan); + //could we just call close here instead? + wan_lip_katm_close(vcc); + return result; + } + + wpkatm_insert_vccdev(atm_link,chan); + + /* Tells the stack that this VC is ready for Tx/Rx */ + wpabs_set_bit(ATM_VF_READY,&vcc->flags); + + return 0; +} + + + + +int wan_lip_katm_send(struct atm_vcc *vcc,struct sk_buff *skb) +{ + wp_katm_t *atm_link=vcc->dev->dev_data; //Get Hardware device pointer + wp_katm_channel_t *chan= (wp_katm_channel_t*)vcc->dev_data; //channel pointer, not sure if we need this here. + int err; + struct sk_buff *nskb; + +// wpabs_debug_event("%s:%d Size %i %s\n", +// __FUNCTION__,__LINE__,wpabs_skb_len(skb), +// vcc->qos.aal == ATM_AAL0 ? "AAL0" : +// (vcc->qos.aal == ATM_AAL5 ? "AAL5" : "OTHER") ); + +//This for documentation only +//#define ATM_SKB(skb) (((struct atm_skb_data *) (skb)->cb)) + +#if 0 + { + unsigned char *data=wpabs_skb_data(skb); + int i; + for (i=0;ipop) vcc->pop(vcc,skb); + else dev_kfree_skb(skb); + return 0; + } + + if (!skb) { + wpabs_debug_event("!skb in eni_send ?\n"); + if (vcc->pop) vcc->pop(vcc,skb); + else dev_kfree_skb(skb); + return -EINVAL; + } + + if (vcc->qos.aal == ATM_AAL0) { + wpabs_debug_event("RWM: AAL0 send in progress?\n"); + if (skb->len != ATM_CELL_SIZE-1) { + if (vcc->pop) vcc->pop(vcc,skb); + else dev_kfree_skb(skb); + return -EINVAL; + } else { + *(u32 *) skb->data = htonl(*(u32 *) skb->data); + } + } + + + nskb=skb_clone(skb,GFP_KERNEL); + if (!nskb) { + if (vcc->pop) vcc->pop(vcc,skb); + else dev_kfree_skb(skb); + return -ENOMEM; + } + + err = wp_atm_tx(chan->sar_vcc,nskb,0); + + if (err) { + wpabs_skb_free(nskb); + if (vcc->pop) vcc->pop(vcc,skb); + else dev_kfree_skb(skb); + + wpkatm_priv_bh(atm_link); + + return -1; + } + + if (vcc->pop) vcc->pop(vcc,skb); + else dev_kfree_skb(skb); + + wpkatm_priv_bh(atm_link); + +// wpabs_debug_event("%s:%d Send OK\n", +// __FUNCTION__,__LINE__); + + return 0; +} + +int wan_lip_katm_rx(wp_katm_channel_t *chan, struct sk_buff *skb) +{ + struct atm_vcc *vcc = chan->vcc; + if (!vcc) { + wpabs_debug_event("%s:%d %s, VPI:VCI=%d:%d\n", + __FUNCTION__,__LINE__, chan->name, chan->vpi, chan->vci); + wpabs_skb_free(skb); + return 0; + } + +// wpabs_debug_event("%s: %s VPI:VCI=%d:%d Line:%d\n", +// chan->name, __FUNCTION__, chan->vpi, chan->vci, __LINE__); + + + if (vcc->qos.aal == ATM_AAL0) { + wpabs_debug_event("%s: Received AAL0 packet!\n", __FUNCTION__); + *(unsigned long *) skb->data = + ntohl(*(unsigned long *) skb->data); + } + + vcc->push(vcc,skb); + + return 0; +} + +//------------------------------------------------------- +// Private Callback Funcitons + +int wplip_katm_link_prot_change_state (void *wplip_id,int state, unsigned char *data, int len) +{ + wp_katm_t *atm_link = (wp_katm_t *)wplip_id; + if (!atm_link) { + return 0; + } + + atm_link->reg.prot_set_state(atm_link->link_dev, + state, + data, + len); + + wpabs_debug_event("%s: %s %d\n", + atm_link->name,__FUNCTION__,__LINE__); + return 0; +} + +int wplip_katm_lipdev_prot_change_state(void *wplip_id,int state, + unsigned char *data, int len) +{ + wp_katm_channel_t *chan = (wp_katm_channel_t *)wplip_id; + wp_katm_t *atm_link = chan->atm_link; + if (!atm_link) { + return 0; + } + + atm_link->reg.chan_set_state(atm_link->dev, + state, + data, + len); + + wpabs_debug_event("%s: %s %d\n", + atm_link->name,__FUNCTION__,__LINE__); + return 0; +} + +int wplip_katm_link_callback_tx_down (void *wplink_id, void *skb) +{ + + return 0; +} + +#define KATM_MAX_Q 200 +int wplip_katm_callback_tx_down (void *lip_dev_ptr, void *skb) +{ + wp_katm_channel_t *chan = (wp_katm_channel_t *)lip_dev_ptr; + + if (!chan->atm_link) { + wpabs_debug_event("%s: %s %d ERROR no atm_link\n", + chan->name,__FUNCTION__,__LINE__); + if (skb) { + wpabs_skb_free(skb); + } + return 0; + } + + if (!skb){ + int free_space=KATM_MAX_Q - wan_skb_queue_len(&chan->tx_queue); + if (free_space < 0) { + return 0; + } else { + return free_space; + } + } + + if (wan_skb_queue_len(&chan->tx_queue) >= KATM_MAX_Q){ + DEBUG_EVENT("%s: %s() Error Tx queue full\n", + chan->name,__FUNCTION__); + return 1; + } + + + wan_skb_queue_tail(&chan->tx_queue,skb); + + return 0; +} + +int wplip_katm_prot_rx_up (void *lip_dev_ptr, void *skb, int type) +{ + wp_katm_channel_t *chan = (wp_katm_channel_t *)lip_dev_ptr; + wp_katm_t *atm_link = chan->atm_link; + + if (!atm_link || !type) { //Kill all non zero types for now, including OAM + wpabs_debug_event("%s %d Killing skb type=%d len=%i\n", + __FUNCTION__,__LINE__,type, wpabs_skb_len(skb)); + wpabs_skb_free(skb); + return 0; + } + +// wpabs_debug_event("%s %d len=%i\n", +// __FUNCTION__,__LINE__,wpabs_skb_len(skb)); + + wan_lip_katm_rx(chan,skb); + return 0; +} + + +void wpkatm_insert_vccdev(wp_katm_t *atm_link, wp_katm_channel_t *atm_chan) +{ + unsigned long flags; + + WP_WRITE_LOCK(&atm_link->dev_list_lock,flags); + WAN_LIST_INSERT_HEAD(&atm_link->list_head_ifdev,atm_chan,list_entry); + WAN_DEV_HOLD(atm_chan); + atm_link->dev_cnt++; + WP_WRITE_UNLOCK(&atm_link->dev_list_lock,flags); +} + + +void wpkatm_remove_vccdev(wp_katm_t *atm_link, wp_katm_channel_t *atm_chan) +{ + unsigned long flags; + + WP_WRITE_LOCK(&atm_link->dev_list_lock,flags); + WAN_DEV_PUT(atm_chan); + WAN_LIST_REMOVE(atm_chan,list_entry); + atm_link->dev_cnt--; + WP_WRITE_UNLOCK(&atm_link->dev_list_lock,flags); + + return; +} + + + + + diff --git a/patches/kdrivers/src/lip/lip_katm/wanpipe_katm_sub.o b/patches/kdrivers/src/lip/lip_katm/wanpipe_katm_sub.o new file mode 100644 index 0000000..a5b7b7b Binary files /dev/null and b/patches/kdrivers/src/lip/lip_katm/wanpipe_katm_sub.o differ diff --git a/patches/kdrivers/src/lip/wanpipe_lip_iface.c b/patches/kdrivers/src/lip/wanpipe_lip_iface.c index 896c4f4..4f2f5f0 100644 --- a/patches/kdrivers/src/lip/wanpipe_lip_iface.c +++ b/patches/kdrivers/src/lip/wanpipe_lip_iface.c @@ -52,8 +52,12 @@ static int wplip_unreg(void *reg_ptr); #if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) static void wplip_if_task (void *arg, int dummy); #else +# if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)) static void wplip_if_task (void *arg); -#endif +# else +static void wplip_if_task (struct work_struct *work); +# endif +#endif extern int register_wanpipe_lip_protocol (wplip_reg_t *lip_reg); extern void unregister_wanpipe_lip_protocol (void); @@ -238,6 +242,10 @@ static int wplip_if_reg(void *lip_link_ptr, char *dev_name, wanif_conf_t *conf) usedby = BRIDGE; }else if(strcmp(conf->usedby, "BRIDGE_NODE") == 0){ usedby = BRIDGE_NODE; +#if defined(__OpenBSD__) + }else if(strcmp(conf->usedby, "TRUNK") == 0){ + usedby = TRUNK; +#endif }else{ DEBUG_EVENT( "%s: LIP device invalid 'usedby': %s\n", dev_name, conf->usedby); @@ -263,7 +271,6 @@ static int wplip_if_reg(void *lip_link_ptr, char *dev_name, wanif_conf_t *conf) lip_dev->common.state = WAN_DISCONNECTED; WAN_NETIF_CARRIER_OFF(lip_dev->common.dev); - #if defined(__LINUX__) if (conf->true_if_encoding){ DEBUG_EVENT("%s: LIP: Setting IF Type to Broadcast\n",dev_name); @@ -298,6 +305,11 @@ static int wplip_if_reg(void *lip_link_ptr, char *dev_name, wanif_conf_t *conf) lip_dev->name); break; + case TRUNK: + DEBUG_EVENT( "%s: Running in TRUNK mode\n", + lip_dev->name); + break; + default: DEBUG_EVENT( "%s: LIP device invalid 'usedby': %s\n", lip_dev->name, conf->usedby); @@ -346,16 +358,15 @@ static int wplip_if_reg(void *lip_link_ptr, char *dev_name, wanif_conf_t *conf) } lip_link->latency_qlen=lip_dev->common.dev->tx_queue_len; #endif - - + if (lip_link->state == WAN_CONNECTED){ DEBUG_TEST("%s: LIP CREATE Link already on!\n", lip_dev->name); WAN_NETIF_CARRIER_ON(lip_dev->common.dev); WAN_NETIF_WAKE_QUEUE(lip_dev->common.dev); wplip_trigger_bh(lip_dev->lip_link); - } - + } + DEBUG_TEST("%s: LIP LIPDEV Created %p Magic 0x%lX\n", lip_link->name, lip_dev, @@ -645,6 +656,7 @@ int wplip_data_rx_up(wplip_dev_t* lip_dev, void *skb) #endif #if 0 + #LAPB SHOULD PUSH BACK TO THE STACK wan_skb_pull(skb,sizeof(wan_api_rx_hdr_t)); #else wan_skb_free(skb); @@ -818,7 +830,7 @@ int wplip_lipdev_prot_change_state(void *wplip_id,int state, } if (state == WAN_CONNECTED){ - lip_dev->common.state = state; + lip_dev->common.state = state; WAN_NETIF_CARRIER_ON(lip_dev->common.dev); WAN_NETIF_START_QUEUE(lip_dev->common.dev); wan_update_api_state(lip_dev); @@ -1217,7 +1229,9 @@ int wplip_set_ipv4_addr (void *wplip_id, } if (ifa && si){ int error; +#if defined(__FreeBSD__) struct in_ifaddr *ia; +#endif #if defined(__NetBSD__) && (__NetBSD_Version__ >= 103080000) struct sockaddr_in new_sin = *si; @@ -1319,11 +1333,20 @@ static int wplip_change_dev_flags (netdevice_t *dev, unsigned flags) #if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) static void wplip_if_task (void *arg, int dummy) #else +# if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)) static void wplip_if_task (void *arg) +# else +static void wplip_if_task (struct work_struct *work) +# endif #endif { -#ifdef __LINUX__ +#if defined(__LINUX__) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)) + wplip_dev_t *lip_dev=(wplip_dev_t *)container_of(work, wplip_dev_t, if_task); +#else wplip_dev_t *lip_dev=(wplip_dev_t *)arg; +#endif wplip_link_t *lip_link; netdevice_t *dev; @@ -1438,11 +1461,11 @@ int wanpipe_lip_init(void *arg) int err; if (WANPIPE_VERSION_BETA){ - DEBUG_EVENT("%s Beta%s-%s %s\n", - wplip_fullname, WANPIPE_SUB_VERSION, WANPIPE_VERSION, WANPIPE_COPYRIGHT_DATES); + DEBUG_EVENT("%s Beta %s.%s %s\n", + wplip_fullname, WANPIPE_VERSION, WANPIPE_SUB_VERSION,wplip_copyright); }else{ - DEBUG_EVENT("%s Stable %s-%s %s\n", - wplip_fullname, WANPIPE_VERSION, WANPIPE_SUB_VERSION, WANPIPE_COPYRIGHT_DATES); + DEBUG_EVENT("%s Stable %s.%s %s\n", + wplip_fullname, WANPIPE_VERSION, WANPIPE_SUB_VERSION, wplip_copyright); } err=wplip_init_prot(); diff --git a/patches/kdrivers/src/lip/wanpipe_lip_prot.c b/patches/kdrivers/src/lip/wanpipe_lip_prot.c index dea0777..60a5913 100644 --- a/patches/kdrivers/src/lip/wanpipe_lip_prot.c +++ b/patches/kdrivers/src/lip/wanpipe_lip_prot.c @@ -20,7 +20,11 @@ static void wplip_prot_timer(wan_timer_arg_t arg); #if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) static void wplip_port_task (void *arg, int); #else +# if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)) static void wplip_port_task (void *arg); +# else +static void wplip_port_task (struct work_struct *work); +# endif #endif @@ -155,9 +159,16 @@ int wplip_reg_lipdev_prot(wplip_dev_t *lip_dev, wanif_conf_t *conf) } #endif #ifdef CONFIG_PRODUCT_WANPIPE_LIP_ATM - if (lip_dev->protocol == WANCONFIG_LIP_ATM){ - lip_dev->max_mtu_sz=MAX_ATM_TX_BUF; - lip_dev->max_mtu_sz_orig=MAX_ATM_TX_BUF; + if (lip_dev->protocol == WANCONFIG_LIP_ATM || + lip_dev->protocol == WANCONFIG_LIP_KATM){ + int mtu=conf->u.atm.mtu; + if (mtu) { + lip_dev->max_mtu_sz = mtu/53 * 5; + lip_dev->max_mtu_sz_orig=lip_dev->max_mtu_sz; + } else { + lip_dev->max_mtu_sz=MAX_ATM_TX_BUF; + lip_dev->max_mtu_sz_orig=MAX_ATM_TX_BUF; + } } #endif @@ -301,8 +312,9 @@ int wplip_prot_oob(wplip_dev_t *lip_dev, unsigned char *data, int len) switch (lip_dev->protocol){ -#ifdef CONFIG_PRODUCT_WANPIPE_LAPB +#if defined(CONFIG_PRODUCT_WANPIPE_LIP_LAPB) || defined(CONFIG_PRODUCT_WANPIPE_LIP_LAPD) case WANCONFIG_LAPB: + case WANCONFIG_LAPD: skb=wan_skb_alloc(sizeof(wan_api_rx_hdr_t)); if (!skb){ return -1; @@ -525,10 +537,24 @@ int wplip_prot_udp_snmp_pkt(wplip_dev_t * lip_dev, int cmd, struct ifreq* ifr) #if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) static void wplip_port_task (void *arg, int dummy) #else +# if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)) static void wplip_port_task (void *arg) +# else +static void wplip_port_task (struct work_struct *work) +# endif #endif { + +#if defined(__LINUX__) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)) + wplip_link_t *lip_link=(wplip_link_t *)container_of(work, wplip_link_t, prot_task); +#else wplip_link_t *lip_link=(wplip_link_t *)arg; +#endif +#else + wplip_link_t *lip_link=(wplip_link_t *)arg; +#endif + wplip_prot_iface_t *prot_iface; if (wan_test_bit(WPLIP_LINK_DOWN,&lip_link->tq_working)){ @@ -614,6 +640,16 @@ static int wplip_prot_rx_up(void *lip_dev_ptr, void *skb, int type) switch (type){ case WPLIP_RAW: + + if ((lip_dev->protocol == WANCONFIG_LIP_ATM || + lip_dev->protocol == WANCONFIG_LIP_ATM) && + lip_dev->common.usedby != API) { + /* If ATM is not in API mode + Dont pass RAW Cells up the stack */ + wan_skb_free(skb); + break; + } + wplip_data_rx_up(lip_dev,skb); break; @@ -621,12 +657,7 @@ static int wplip_prot_rx_up(void *lip_dev_ptr, void *skb, int type) wan_skb_set_protocol(skb,ETH_P_IP); wplip_data_rx_up(lip_dev,skb); break; -#ifdef CONFIG_PRODUCT_WANPIPE_LAPD - case WPLIP_LAPD: - wan_skb_set_protocol(skb,ETH_P_LAPD); - wplip_data_rx_up(lip_dev,skb); - break; -#endif + case WPLIP_IPV6: wan_skb_set_protocol(skb,ETH_P_IPV6); wplip_data_rx_up(lip_dev,skb); @@ -822,8 +853,8 @@ int wplip_init_prot(void) #endif /* LAPB initialization */ -#ifdef CONFIG_PRODUCT_WANPIPE_LAPB - offset+=sprintf(&tmp[offset],"%s ","LAPB"); +#ifdef CONFIG_PRODUCT_WANPIPE_LIP_LAPB + offset+=sprintf(&tmp[offset],"%s ","LIP_LAPB"); prot_iface=wan_kmalloc(sizeof(wplip_prot_iface_t)); if (!prot_iface){ return -ENOMEM; @@ -847,6 +878,33 @@ int wplip_init_prot(void) prot_iface->snmp = NULL; #endif + /* LAPD initialization */ +#ifdef CONFIG_PRODUCT_WANPIPE_LIP_LAPD + offset+=sprintf(&tmp[offset],"%s ","LIP_LAPD"); + prot_iface=wan_kmalloc(sizeof(wplip_prot_iface_t)); + if (!prot_iface){ + return -ENOMEM; + } + memset(prot_iface,0,sizeof(wplip_prot_iface_t)); + wplip_prot_ops[WANCONFIG_LAPD]=prot_iface; + + prot_iface->init = 1; + prot_iface->prot_link_register = wp_register_lapd_prot; + prot_iface->prot_link_unregister = wp_unregister_lapb_prot; + prot_iface->prot_chan_register = wp_register_lapb_chan_prot; + prot_iface->prot_chan_unregister = wp_unregister_lapb_chan_prot; + prot_iface->open_chan = wp_lapb_open; + prot_iface->close_chan = wp_lapb_close; + prot_iface->tx = wp_lapb_tx; + prot_iface->ioctl = NULL; + prot_iface->pipemon = NULL; + prot_iface->rx = wp_lapb_rx; + prot_iface->timer = wp_lapb_timer; + prot_iface->bh = wp_lapb_bh; + prot_iface->snmp = NULL; +#endif + + /* XMTP2 initialization */ #ifdef CONFIG_PRODUCT_WANPIPE_XMTP2 offset+=sprintf(&tmp[offset],"%s ","XMTP2"); @@ -874,8 +932,8 @@ int wplip_init_prot(void) #endif /* XMTP2 initialization */ -#ifdef CONFIG_PRODUCT_WANPIPE_LAPD - offset+=sprintf(&tmp[offset],"%s ","LAPD"); +#ifdef CONFIG_PRODUCT_WANPIPE_VISDN_LAPD + offset+=sprintf(&tmp[offset],"%s ","VISDN_LAPD"); prot_iface=wan_kmalloc(sizeof(wplip_prot_iface_t)); if (!prot_iface){ return -ENOMEM; @@ -898,6 +956,32 @@ int wplip_init_prot(void) prot_iface->bh = NULL; prot_iface->snmp = NULL; #endif + + /* KATM initialization */ +#ifdef CONFIG_PRODUCT_WANPIPE_LIP_KATM + offset+=sprintf(&tmp[offset],"%s ","LIP_KATM"); + prot_iface=wan_kmalloc(sizeof(wplip_prot_iface_t)); + if (!prot_iface){ + return -ENOMEM; + } + memset(prot_iface,0,sizeof(wplip_prot_iface_t)); + wplip_prot_ops[WANCONFIG_LIP_KATM]=prot_iface; + + prot_iface->init = 1; + prot_iface->prot_link_register = wp_register_katm_prot; + prot_iface->prot_link_unregister = wp_unregister_katm_prot; + prot_iface->prot_chan_register = wp_register_katm_chan; + prot_iface->prot_chan_unregister = wp_unregister_katm_chan; + prot_iface->open_chan = wp_katm_open; + prot_iface->close_chan = wp_katm_close; + prot_iface->tx = wp_katm_tx; + prot_iface->ioctl = NULL; + prot_iface->pipemon = NULL; + prot_iface->rx = wp_katm_rx; + prot_iface->timer = wp_katm_timer; + prot_iface->bh = NULL; + prot_iface->snmp = NULL; +#endif /* X25 initialization */ #ifdef CONFIG_PRODUCT_WANPIPE_LIP_X25 diff --git a/patches/kdrivers/src/lip/wanpipe_lip_sub.c b/patches/kdrivers/src/lip/wanpipe_lip_sub.c index dbab575..fccc73c 100644 --- a/patches/kdrivers/src/lip/wanpipe_lip_sub.c +++ b/patches/kdrivers/src/lip/wanpipe_lip_sub.c @@ -11,7 +11,7 @@ extern wan_iface_t wan_iface; * Funciton Prototypes */ -static netdevice_t *wplip_create_netif(char *dev_name, int iftype); +static netdevice_t *wplip_create_netif(char *dev_name, int usedby); static int wplip_free_netif(netdevice_t *dev); static int wplip_register_netif(netdevice_t *dev, wplip_dev_t *lip_dev, int iftype); static void wplip_unregister_netif(netdevice_t *dev, wplip_dev_t *lip_dev); @@ -259,9 +259,9 @@ int wplip_lipdev_latency_change(wplip_link_t *lip_link) * x25_register */ -wplip_dev_t *wplip_create_lipdev(char *dev_name, int iftype) +wplip_dev_t *wplip_create_lipdev(char *dev_name, int usedby) { - wplip_dev_t *lip_dev; + wplip_dev_t *lip_dev; lip_dev=wan_kmalloc(sizeof(wplip_dev_t)); if (lip_dev == NULL){ @@ -272,8 +272,8 @@ wplip_dev_t *wplip_create_lipdev(char *dev_name, int iftype) lip_dev->magic=WPLIP_MAGIC_DEV; lip_dev->common.state = WAN_DISCONNECTED; - lip_dev->common.usedby = iftype; - strncpy(lip_dev->name,dev_name,MAX_PROC_NAME); + lip_dev->common.usedby = usedby; + strncpy(lip_dev->name,dev_name,MAX_PROC_NAME); /* FIXME: No Entry Intializer */ /*WPLIP_INIT_LIST_HEAD(&lip_dev->list_entry);*/ @@ -282,20 +282,19 @@ wplip_dev_t *wplip_create_lipdev(char *dev_name, int iftype) wan_atomic_set(&lip_dev->refcnt,0); - lip_dev->common.dev=wplip_create_netif(dev_name, iftype); + lip_dev->common.dev=wplip_create_netif(dev_name, usedby); if (!lip_dev->common.dev){ wan_free(lip_dev); return NULL; } - if (wplip_register_netif(lip_dev->common.dev, lip_dev, iftype)){ + if (wplip_register_netif(lip_dev->common.dev, lip_dev, usedby)){ wplip_free_netif(lip_dev->common.dev); lip_dev->common.dev=NULL; wan_free(lip_dev); return NULL; } - WAN_DEV_HOLD(lip_dev); @@ -444,12 +443,17 @@ unsigned int dec_to_uint (unsigned char* str, int len) */ -static netdevice_t *wplip_create_netif(char *dev_name, int iftype) +static netdevice_t *wplip_create_netif(char *dev_name, int usedby) { - netdevice_t *dev; - int err; + netdevice_t *dev; + int iftype = WAN_IFT_OTHER; + int err; - dev = wan_netif_alloc(dev_name, WAN_IFT_OTHER, &err); +#if defined(__OpenBSD__) + if (usedby == TRUNK) iftype = WAN_IFT_ETHER; +#endif + + dev = wan_netif_alloc(dev_name, iftype, &err); if (dev == NULL){ return NULL; } @@ -480,7 +484,7 @@ static int wplip_free_netif(netdevice_t *dev) } -static int wplip_register_netif(netdevice_t *dev, wplip_dev_t *lip_dev, int iftype) +static int wplip_register_netif(netdevice_t *dev, wplip_dev_t *lip_dev, int usedby) { int err = -EINVAL; @@ -491,8 +495,9 @@ static int wplip_register_netif(netdevice_t *dev, wplip_dev_t *lip_dev, int ifty * both dev and lip_dev */ lip_dev->common.is_netdev = 1; - if (iftype == BRIDGE || - iftype == BRIDGE_NODE){ + if (usedby == BRIDGE || + usedby == BRIDGE_NODE || + usedby == TRUNK){ if (wan_iface.attach_eth){ err = wan_iface.attach_eth(dev, NULL, lip_dev->common.is_netdev); } @@ -505,8 +510,6 @@ static int wplip_register_netif(netdevice_t *dev, wplip_dev_t *lip_dev, int ifty if (err){ wan_netif_set_priv(dev, NULL); } - - return err; } diff --git a/patches/kdrivers/src/lip/wanpipe_lip_tty.c b/patches/kdrivers/src/lip/wanpipe_lip_tty.c index a1e4510..52b8897 100644 --- a/patches/kdrivers/src/lip/wanpipe_lip_tty.c +++ b/patches/kdrivers/src/lip/wanpipe_lip_tty.c @@ -50,9 +50,18 @@ int wanpipe_tty_trigger_poll(wplip_link_t *lip_link) return 0; } -static void tty_poll_task (void* data) + +# if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)) +static void tty_poll_task (void *arg) +# else +static void tty_poll_task (struct work_struct *work) +# endif { - wplip_link_t *lip_link = (wplip_link_t*)data; +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)) + wplip_link_t *lip_link=(wplip_link_t *)container_of(work, wplip_link_t, tty_task_queue); +#else + wplip_link_t *lip_link=(wplip_link_t *)arg; +#endif struct tty_struct *tty; netskb_t *skb; char fp=0; @@ -331,7 +340,11 @@ static void wanpipe_tty_start(struct tty_struct *tty) } +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)) +static void wanpipe_tty_set_termios(struct tty_struct *tty, struct ktermios *old_termios) +#else static void wanpipe_tty_set_termios(struct tty_struct *tty, struct termios *old_termios) +#endif { wplip_link_t *lip_link; diff --git a/patches/kdrivers/src/net/Makefile b/patches/kdrivers/src/net/Makefile index 02da9ef..83b89fc 100644 --- a/patches/kdrivers/src/net/Makefile +++ b/patches/kdrivers/src/net/Makefile @@ -21,7 +21,6 @@ PRODUCT_DEFINES= -DCONFIG_PRODUCT_WANPIPE_BASE -DCONFIG_PRODUCT_WANPIPE_AFT PRODUCT_DEFINES+= -DCONFIG_PRODUCT_WANPIPE_AFT_TE1 -DCONFIG_PRODUCT_WANPIPE_AFT_TE3 PRODUCT_DEFINES+= -DCONFIG_WANPIPE_HWEC -DCONFIG_PRODUCT_WANPIPE_SOCK_DATASCOPE PRODUCT_DEFINES+= -DCONFIG_PRODUCT_WANPIPE_TDM_VOICE_DCHAN -DCONFIG_PRODUCT_WANPIPE_CODEC_SLINEAR_LAW -PRODUCT_DEFINES+= -DCONFIG_PRODUCT_WANPIPE_MULTPROT wanpipe-y := sdlamain.o @@ -38,7 +37,6 @@ wanpipe-y += wanpipe_abstr.o wanpipe_linux_iface.o wanpipe-y += wanpipe_tdm_api.o sdla_remora.o wanpipe-y += wanpipe_codec.o wanpipe_codec_law.o -wanpipe-y += wanpipe_multppp.o EXTRA_CFLAGS += $(PRODUCT_DEFINES) @@ -77,7 +75,7 @@ wanrouter-objs := ../wanrouter/wanmain.o ../wanrouter/wanproc.o ../wanrouter/wan af_wanpipe-objs := ../wanrouter/af_wanpipe_src.o ../wanrouter/af_wanpipe_datascope.o -wan_aften-objs := ../wan_aften/wan_aften_src.o ../wan_aften/wanpipe_linux_iface.o +wan_aften-objs := ../wan_aften/wan_aften_src.o wanpipe_linux_iface.o obj-m += $(WAN_MODULES) diff --git a/patches/kdrivers/src/net/Makefile~ b/patches/kdrivers/src/net/Makefile~ new file mode 100644 index 0000000..038fe2a --- /dev/null +++ b/patches/kdrivers/src/net/Makefile~ @@ -0,0 +1,92 @@ +# +# Makefile for the Linux network (wan) device drivers. +# +# 3 Aug 2000, Christoph Hellwig +# Rewritten to use lists instead of if-statements. +# + + +WANPIPE_TDM_VOICE_DCHAN=YES +WANPIPE_TDM_CODEC_SLINEAR_LAW=YES +WANPIPE_ADSL=NO +WANPIPE_ATM=NO +WANPIPE_ASYHDLC=NO +WANPIPE_TDM_VOICE_ECHO_MASTER=NO + +CONFIG_WANPIPE_X25=y +CONFIG_WANPIPE_FR=y +CONFIG_WANPIPE_CHDLC=y +CONFIG_WANPIPE_PPP=y +CONFIG_WANPIPE_MULTPPP=y + +EXTRA_CFLAGS=$(EXTRA_FLAGS) +PRODUCT_DEFINES = -DCONFIG_PRODUCT_WANPIPE_BASE -DCONFIG_PRODUCT_WANPIPE_FR -DCONFIG_PRODUCT_WANPIPE_CHDLC -DCONFIG_PRODUCT_WANPIPE_PPP -DCONFIG_PRODUCT_WANPIPE_AFT -DCONFIG_PRODUCT_WANPIPE_AFT_TE1 -DCONFIG_PRODUCT_WANPIPE_AFT_TE3 -DCONFIG_PRODUCT_WANPIPE_ANNEXG -DCONFIG_WANPIPE_HWEC + +warnzap: + @echo "Warning no zaptel directory found $(ZAPDIR)" + @if [ ! -e sdladrv_src.c ]; then + @ ln -s sdladrv.c sdladrv_src.c + @fi + +ifneq (,$(wildcard $(ZAPDIR))) + WANPIPE_TDM_VOICE=NO +else + WANPIPE_TDM_VOICE=YES +endif + + +wanpipe-y := sdlamain.o sdla_ft1.o +wanpipe-y += common/sdla_te1.o common/sdla_te3.o common/sdla_56k.o common/sdla_8te1.o +wanpipe-y += common/wanpipe_tdm_api.o +wanpipe-y += common/sdla_xilinx.o common/sdla_aft_te1.o common/aft_hw/aft_a104.o +wanpipe-y += common/aft_hw/aft_analog.o common/sdla_aft_te3.o common/wanpipe_utils.o +wanpipe-y += common/wanpipe_abstr.o wanpipe_linux_iface.o +wanpipe-y += common/wanpipe_tdm_api.o common/sdla_remora.o + +ifeq "${WANPIPE_ADSL}" "YES" +PRODUCT_DEFINES += -DCONFIG_PRODUCT_WANPIPE_ADSL +wanpipe-y += common/sdla_adsl.o adsl/wanpipe_adsl.o +endif + +ifeq "${WANPIPE_ATM}" "YES" +PRODUCT_DEFINES += -DCONFIG_PRODUCT_WANPIPE_ATM +wanpipe-y += common/sdla_atm.o ../atm/wanpipe_atm.o +endif + +ifeq "${WANPIPE_ASYHDLC}" "YES" +PRODUCT_DEFINES += -DCONFIG_PRODUCT_WANPIPE_ASYHDLC +wanpipe-y += sdla_asyhdlc.o +endif + +ifeq "${WANPIPE_TDM_VOICE}" "YES" +PRODUCT_DEFINES += -DCONFIG_PRODUCT_WANPIPE_TDM_VOICE +EXTRA_CFLAGS += -I/usr/src/zaptel +wanpipe-y += common/sdla_tdmv.o common/sdla_remora_tdmv.o +endif + +ifeq "${WANPIPE_TDM_CODEC_SLINEAR_LAW}" "YES" +PRODUCT_DEFINES += -DCONFIG_PRODUCT_WANPIPE_CODEC_SLINEAR_LAW +wanpipe-y += common/wanpipe_codec.o common/wanpipe_codec_law.o +endif + +ifeq "${WANPIPE_TDM_VOICE_ECHO_MASTER}" "YES" +PRODUCT_DEFINES +=-DCONFIG_PRODUCT_WANPIPE_TDM_VOICE_ECHOMASTER +wanpipe-y += common/sdla_edac.o ../edac/wanpipe_edac.o +endif + +EXTRA_CFLAGS += -DCONFIG_PRODUCT_WANPIPE_TDM_VOICE_DCHAN + +EXTRA_CFLAGS += $(PRODUCT_DEFINES) + +wanpipe-$(CONFIG_WANPIPE_X25) += sdla_x25.o +wanpipe-$(CONFIG_WANPIPE_FR) += sdla_fr.o +wanpipe-$(CONFIG_WANPIPE_CHDLC) += sdla_chdlc.o +wanpipe-$(CONFIG_WANPIPE_PPP) += sdla_ppp.o +wanpipe-$(CONFIG_WANPIPE_MULTPPP) += wanpipe_multppp.o + +wanpipe-objs := $(wanpipe-y) + +sdladrv-objs := common/sdladrv_src.o common/sdladrv_fe.o + +obj-m += sdladrv.o wanpipe.o wanpipe_syncppp.o + diff --git a/patches/kdrivers/src/net/Module.symvers b/patches/kdrivers/src/net/Module.symvers index 3ba2258..5e6dd0a 100644 --- a/patches/kdrivers/src/net/Module.symvers +++ b/patches/kdrivers/src/net/Module.symvers @@ -1,56 +1,56 @@ -0xf7567a8a wanpipe_api_buf_check /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0xf27fa082 wanpipe_lip_connect /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0x634ec028 sdla_register /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL -0xc0ef42f1 wp_sppp_input /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanpipe_syncppp EXPORT_SYMBOL -0x57e6ed60 wanpipe_api_sock_rx /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0xda7da5d8 wanrouter_proc_add_interface /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0x59fb2682 sdla_hw_probe /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL -0x9a7a6658 wanpipe_lip_rx /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0x8f31cdeb proc_router /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0x94be524d register_wanec_iface /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0x1036a1ab bind_api_listen_to_protocol /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0x524e2f20 register_wanpipe_fw_protocol /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0x8558b213 register_wan_device /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0xa491287d wanrouter_proc_add_protocol /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0x90a9f616 wp_sppp_detach /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanpipe_syncppp EXPORT_SYMBOL -0xc9b2c3fb wp_sppp_attach /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanpipe_syncppp EXPORT_SYMBOL -0x56712648 wanpipe_ec_event_ctrl /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0x7cd3c2bc wanpipe_ec_poll /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0x2667e41b wanrouter_proc_delete_protocol /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0xdfd0f6c6 sdla_get_hw_adptr_cnt /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL -0x10723cdb wanpipe_ec_register /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0x1e82f485 wp_sppp_change_mtu /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanpipe_syncppp EXPORT_SYMBOL -0x02364d27 wanrouter_encapsulate /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0x136b2537 wan_skb_destructor /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0xfa083e32 register_wanpipe_api_socket /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0xade2d0d7 sdla_get_hw_probe /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL -0xef48df91 proc_add_line /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0x22a2999f sdla_unregister /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL -0x85c05713 wanrouter_type_trans /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0xfd74fadb wan_set_ip_address /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0xc98aebe6 wan_get_ip_address /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0x7d68ed07 protocol_disconnected /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0xc5224c15 bind_api_to_protocol /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0x38eb6851 unregister_wanpipe_api_socket /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0xaac011d2 wanpipe_lip_kick /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0x3b604364 unbind_api_listen_from_protocol /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0x6df6c4e0 wan_run_wanrouter /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0xeb418feb sdla_hw_bridge_probe /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL -0x04df932b unregister_wanec_iface /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0x19823ac0 wanpipe_ec_isr /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0x13405f6b unregister_wanpipe_fw_protocol /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0xe72f44cb wanpipe_api_listen_rx /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0xe6bc2d6d wp_sppp_open /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanpipe_syncppp EXPORT_SYMBOL -0x238f240b wp_sppp_reopen /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanpipe_syncppp EXPORT_SYMBOL -0x72ddd010 wp_sppp_do_ioctl /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanpipe_syncppp EXPORT_SYMBOL -0x5b7efb57 wanpipe_api_poll_wake /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0x651a840a wan_add_gateway /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0x805cbe1e wp_sppp_close /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanpipe_syncppp EXPORT_SYMBOL -0x2f21a326 unregister_wanpipe_lip_protocol /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0x69001c43 wanrouter_proc_delete_interface /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0x0ebe03d1 unregister_wan_device /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0x22317d82 wanpipe_lip_disconnect /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0xed6a48f7 protocol_connected /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0x53350bd4 wanpipe_ec_unregister /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0x1a86355f register_wanpipe_lip_protocol /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL -0x00525339 protocol_connecting /root/development/2.3.4/wanpipe-2.3.4-10/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0xf7567a8a wanpipe_api_buf_check /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0xf27fa082 wanpipe_lip_connect /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0x9492e60b sdla_register /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL +0xde5ebd88 wp_sppp_input /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanpipe_syncppp EXPORT_SYMBOL +0xebe4c989 wanpipe_api_sock_rx /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0x53fa317a wanrouter_proc_add_interface /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0x59fb2682 sdla_hw_probe /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL +0x9a7a6658 wanpipe_lip_rx /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0x5e3edc9f proc_router /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0x94be524d register_wanec_iface /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0x27c01817 bind_api_listen_to_protocol /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0x524e2f20 register_wanpipe_fw_protocol /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0x6d6caac6 register_wan_device /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0xbbac90e9 wanrouter_proc_add_protocol /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0x312a3c5e wp_sppp_detach /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanpipe_syncppp EXPORT_SYMBOL +0xe4cfd2ed wp_sppp_attach /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanpipe_syncppp EXPORT_SYMBOL +0x56712648 wanpipe_ec_event_ctrl /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0x7cd3c2bc wanpipe_ec_poll /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0x6b8315ac wanrouter_proc_delete_protocol /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0xdfd0f6c6 sdla_get_hw_adptr_cnt /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL +0x10723cdb wanpipe_ec_register /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0x93da506c wp_sppp_change_mtu /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanpipe_syncppp EXPORT_SYMBOL +0x8e5d7a2f wanrouter_encapsulate /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0x13ca6c41 wan_skb_destructor /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0xc864d166 register_wanpipe_api_socket /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0xade2d0d7 sdla_get_hw_probe /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL +0x81ffb570 proc_add_line /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0x22a2999f sdla_unregister /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL +0xf5e5c967 wanrouter_type_trans /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0xd550cda0 wan_set_ip_address /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0x9a0ea3a7 wan_get_ip_address /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0x7d68ed07 protocol_disconnected /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0x3be6f410 bind_api_to_protocol /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0x38eb6851 unregister_wanpipe_api_socket /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0xaac011d2 wanpipe_lip_kick /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0x3b604364 unbind_api_listen_from_protocol /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0x6df6c4e0 wan_run_wanrouter /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0xeb418feb sdla_hw_bridge_probe /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL +0x04df932b unregister_wanec_iface /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0x19823ac0 wanpipe_ec_isr /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0x13405f6b unregister_wanpipe_fw_protocol /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0x4dfb9a17 wanpipe_api_listen_rx /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0xf2385045 wp_sppp_open /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanpipe_syncppp EXPORT_SYMBOL +0xac67109f wp_sppp_reopen /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanpipe_syncppp EXPORT_SYMBOL +0xac50af06 wp_sppp_do_ioctl /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanpipe_syncppp EXPORT_SYMBOL +0x5b7efb57 wanpipe_api_poll_wake /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0x5b7b3a24 wan_add_gateway /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0x6b3a8c0a wp_sppp_close /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanpipe_syncppp EXPORT_SYMBOL +0x2f21a326 unregister_wanpipe_lip_protocol /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0x2c825a48 wanrouter_proc_delete_interface /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0x0ebe03d1 unregister_wan_device /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0x22317d82 wanpipe_lip_disconnect /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0xaf102904 protocol_connected /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0x53350bd4 wanpipe_ec_unregister /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0x3d09f16a register_wanpipe_lip_protocol /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL +0x265fc42a protocol_connecting /hda5/wanpipe/3.1.X/wanpipe-3.1.0.p7/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL diff --git a/patches/kdrivers/src/net/aft_a104.c b/patches/kdrivers/src/net/aft_a104.c index c91505e..db0137f 100644 --- a/patches/kdrivers/src/net/aft_a104.c +++ b/patches/kdrivers/src/net/aft_a104.c @@ -5,7 +5,7 @@ * * Authors: Nenad Corbic * -* Copyright: (c) 2003-2005 Sangoma Technologies Inc. +* Copyright: (c) 2003-2007 Sangoma Technologies Inc. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -13,6 +13,9 @@ * 2 of the License, or (at your option) any later version. * ============================================================================ * Sep 25, 2005 Nenad Corbic Initial Version +* Mar 28, 2007 David Rokhvarg +* Added support for 56k AFT card. +* *****************************************************************************/ #if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) @@ -58,6 +61,14 @@ sdla_te_timer( # include #endif +#define INIT_FE_ONLY 0 + +#if 1 +#define AFT_FUNC_DEBUG() +#else +#define AFT_FUNC_DEBUG() DEBUG_EVENT("%s:%d\n",__FUNCTION__,__LINE__) +#endif + /*============================================== * PRIVATE FUNCITONS * @@ -70,6 +81,7 @@ static int aft_hwec_enable(void *pcard, int enable, int channel); int __a104_write_fe (void *pcard, ...); int __a56k_write_fe (void *pcard, ...); + static int aft_map_fifo_baddr_and_size(sdla_t *card, unsigned char fifo_size, unsigned char *addr); static char fifo_size_vector[] = {1, 2, 4, 8, 16, 32}; @@ -79,6 +91,9 @@ static int request_fifo_baddr_and_size(sdla_t *card, private_area_t *chan) { unsigned char req_fifo_size,fifo_size; int i; + AFT_FUNC_DEBUG(); +#if INIT_FE_ONLY +#else /* Calculate the optimal fifo size based * on the number of time slots requested */ @@ -156,7 +171,7 @@ static int request_fifo_baddr_and_size(sdla_t *card, private_area_t *chan) chan->fifo_base_addr); chan->fifo_size = fifo_size; - +#endif return 0; } @@ -165,6 +180,10 @@ static int aft_map_fifo_baddr_and_size(sdla_t *card, unsigned char fifo_size, un { u32 reg=0; u8 i; + AFT_FUNC_DEBUG(); +#if INIT_FE_ONLY + return 0; +#else for (i=0;i> 1; return aft_map_fifo_baddr_and_size(card,fifo_size,addr); +#endif } @@ -201,6 +221,10 @@ static int aft_free_fifo_baddr_and_size (sdla_t *card, private_area_t *chan) u32 reg=0; int i; + AFT_FUNC_DEBUG(); +#if INIT_FE_ONLY +#else + for (i=0;ififo_size;i++){ wan_set_bit(i,®); } @@ -216,7 +240,7 @@ static int aft_free_fifo_baddr_and_size (sdla_t *card, private_area_t *chan) chan->fifo_size=0; chan->fifo_base_addr=0; - +#endif return 0; } @@ -229,6 +253,9 @@ static int aft_request_logical_channel_num (sdla_t *card, private_area_t *chan) int if_offset=2; long i; + AFT_FUNC_DEBUG(); +#if INIT_FE_ONLY +#else if (IS_E1_CARD(card) && !(WAN_FE_FRAME(&card->fe) == WAN_FR_UNFRAMED)){ if_offset=3; } @@ -285,7 +312,7 @@ static int aft_request_logical_channel_num (sdla_t *card, private_area_t *chan) * ch number */ if (chan->channelized_cfg) { - if (card->u.aft.cfg.tdmv_dchan){ + if (card->tdmv_conf.dchan){ /* In this case we KNOW that there is * only a single hdlc channel */ if (i==0 && !chan->hdlc_eng){ @@ -333,6 +360,7 @@ static int aft_request_logical_channel_num (sdla_t *card, private_area_t *chan) DEBUG_TEST("Binding logic ch %d Ptr=%p\n",logic_ch,chan); +#endif return logic_ch; } @@ -341,9 +369,12 @@ static int aft_request_logical_channel_num (sdla_t *card, private_area_t *chan) static int aft_test_hdlc(sdla_t *card) { int i; - int err; + int err=-EINVAL; u32 reg; + AFT_FUNC_DEBUG(); +#if INIT_FE_ONLY +#else for (i=0;i<10;i++){ card->hw_iface.bus_read_4(card->hw,AFT_CHIP_CFG_REG, ®); @@ -358,7 +389,7 @@ static int aft_test_hdlc(sdla_t *card) break; } } - +#endif return err; } @@ -372,7 +403,9 @@ int a104_test_sync(sdla_t *card, int tx_only) { volatile int i,err=1; u32 reg; - + AFT_FUNC_DEBUG(); +#if INIT_FE_ONLY +#else card->hw_iface.bus_read_4(card->hw,AFT_PORT_REG(card,AFT_LINE_CFG_REG), ®); if (wan_test_bit(AFT_LCFG_FE_IFACE_RESET_BIT,®)){ @@ -405,14 +438,16 @@ int a104_test_sync(sdla_t *card, int tx_only) DEBUG_TEST("%s: DELAY INDEX = %i\n", card->devname,i); - +#endif return err; } int a104_led_ctrl(sdla_t *card, int color, int led_pos, int on) { u32 reg; - + AFT_FUNC_DEBUG(); +#if INIT_FE_ONLY +#else if (card->adptr_subtype == AFT_SUBTYPE_SHARK){ /* INSERT LED CODE */ @@ -435,7 +470,6 @@ int a104_led_ctrl(sdla_t *card, int color, int led_pos, int on) break; } - if(IS_56K_CARD(card)){ aft_56k_write_cpld(card,card->wandev.comm_port + 0x08,card->u.aft.led_ctrl); }else{ @@ -448,7 +482,7 @@ int a104_led_ctrl(sdla_t *card, int color, int led_pos, int on) card->hw_iface.bus_write_4(card->hw, AFT_PORT_REG(card,AFT_LINE_CFG_REG),reg); } - +#endif return 0; } @@ -458,7 +492,19 @@ int a104_global_chip_config(sdla_t *card) u32 reg; int err=0; /*============ GLOBAL CHIP CONFIGURATION ===============*/ + AFT_FUNC_DEBUG(); +#if INIT_FE_ONLY + err = -EINVAL; + if (card->wandev.fe_iface.global_config){ + err=card->wandev.fe_iface.global_config(&card->fe); + } + if (err){ + DEBUG_EVENT("%s(): %d: Error: global_config() ptr is NULL\n", + __FUNCTION__, __LINE__); + return err; + } +#else /* Enable the chip/hdlc reset condition */ reg=0; wan_set_bit(AFT_CHIPCFG_SFR_EX_BIT,®); @@ -481,7 +527,8 @@ int a104_global_chip_config(sdla_t *card) }else if (IS_E1_CARD(card)){ wan_set_bit(AFT_CHIPCFG_TE1_CFG_BIT,®); }else if (IS_56K_CARD(card)){ - wan_set_bit(AFT_CHIPCFG_56K_CFG_BIT,®); + wan_set_bit(AFT_CHIPCFG_56K_CFG_BIT,®); + }else{ DEBUG_EVENT("%s: Error: Xilinx doesn't support non T1/E1 interface!\n", card->devname); @@ -493,25 +540,9 @@ int a104_global_chip_config(sdla_t *card) DEBUG_CFG("--- Chip enable/config. -- \n"); - if (card->adptr_subtype == AFT_SUBTYPE_SHARK){ - - /* FIXME: Do not hardcode port numbers */ - if ((int)card->u.aft.cfg.ec_clk_src < 0 || - card->u.aft.cfg.ec_clk_src > 7) { - DEBUG_EVENT("%s: ERROR: Invalid SHARK Octasic Clock Source %d\n", - card->devname,card->u.aft.cfg.ec_clk_src); - return -EINVAL; - } - - DEBUG_EVENT("%s: Global EC Clock Port = %d\n", - card->devname, - card->u.aft.cfg.ec_clk_src+1); - aft_chipcfg_set_oct_clk_src(®,card->u.aft.cfg.ec_clk_src); - } - card->hw_iface.bus_write_4(card->hw,AFT_CHIP_CFG_REG,reg); - if (card->u.aft.firm_id == AFT_DS_FE_CORE_ID/*card->adptr_type == A108_ADPTR_8TE1*/){ + if (card->u.aft.firm_id == AFT_DS_FE_CORE_ID){ /* A104/A108 with Dallas FE */ wan_smp_flag_t smp_flags,flags; card->hw_iface.hw_lock(card->hw,&smp_flags); @@ -550,15 +581,24 @@ int a104_global_chip_config(sdla_t *card) err=card->wandev.fe_iface.global_config(&card->fe); } if (err){ + DEBUG_EVENT("%s(): %d: Error: global_config() ptr is NULL\n", + __FUNCTION__, __LINE__); return err; } +#endif/*INIT_FE_ONLY*/ return 0; } int a104_global_chip_unconfig(sdla_t *card) { u32 reg=0; - + AFT_FUNC_DEBUG(); +#if INIT_FE_ONLY + /* Global T1/E1 unconfig */ + if (card->wandev.fe_iface.global_unconfig){ + card->wandev.fe_iface.global_unconfig(&card->fe); + } +#else /* Global T1/E1 unconfig */ if (card->wandev.fe_iface.global_unconfig){ card->wandev.fe_iface.global_unconfig(&card->fe); @@ -574,7 +614,7 @@ int a104_global_chip_unconfig(sdla_t *card) wan_clear_bit(AFT_CHIPCFG_FE_INTR_CFG_BIT,®); card->hw_iface.bus_write_4(card->hw,AFT_CHIP_CFG_REG,reg); - +#endif return 0; } @@ -582,6 +622,10 @@ static int aft_ds_set_clock_ref(sdla_t *card, u32 *reg, u32 master_port) { u32 master_cfg; + AFT_FUNC_DEBUG(); +#if INIT_FE_ONLY +#else + if (IS_T1_CARD(card)) { master_cfg=0x09; } else { @@ -620,7 +664,7 @@ static int aft_ds_set_clock_ref(sdla_t *card, u32 *reg, u32 master_port) aft_lcfg_a108_fe_clk_source(reg,master_port); } - +#endif return 0; } @@ -628,16 +672,42 @@ static int aft_ds_set_clock_ref(sdla_t *card, u32 *reg, u32 master_port) int a104_chip_config(sdla_t *card) { u32 reg=0, ctrl_ram_reg=0; - int i,err=0; + int i,err=0, max_channels; wan_smp_flag_t smp_flags, flags; + AFT_FUNC_DEBUG(); +#if INIT_FE_ONLY + err = -EINVAL; + if (card->wandev.fe_iface.config){ + err=card->wandev.fe_iface.config(&card->fe); + } +#else card->hw_iface.bus_read_4(card->hw,AFT_PORT_REG(card,AFT_LINE_CFG_REG), ®); if (!wan_test_bit(AFT_LCFG_FE_IFACE_RESET_BIT,®)){ DEBUG_EVENT("%s: Error: Physical Port %d is busy!\n", card->devname, card->wandev.comm_port+1); return -EBUSY; } + +#if 0 + if (card->adptr_subtype == AFT_SUBTYPE_SHARK){ + + /* FIXME: Do not hardcode port numbers */ + if ((int)card->hwec_conf.clk_src < 0 || + card->hwec_conf.clk_src > 7) { + DEBUG_EVENT("%s: ERROR: Invalid SHARK Octasic Clock Source %d\n", + card->devname,card->hwec_conf.clk_src); + return -EINVAL; + } + + DEBUG_EVENT("%s: Global EC Clock Port = %d\n", + card->devname, + card->hwec_conf.clk_src+1); + + aft_chipcfg_set_oct_clk_src(®,card->hwec_conf.clk_src); + } +#endif /* On A108 Cards the T1/E1 will be configured per PORT * not per CARD */ @@ -682,12 +752,16 @@ int a104_chip_config(sdla_t *card) (IS_T1_CARD(card))?"T1":"E1"); return -EINVAL; } - + /* Run rest of initialization not from lock */ + if (card->wandev.fe_iface.post_init){ + err=card->wandev.fe_iface.post_init(&card->fe); + } + DEBUG_EVENT("%s: Front end successful\n", card->devname); if (card->adptr_type == A104_ADPTR_4TE1 || - card->u.aft.firm_id == AFT_DS_FE_CORE_ID/*card->adptr_type == A108_ADPTR_8TE1*/) { + card->u.aft.firm_id == AFT_DS_FE_CORE_ID) { if (WAN_TE1_CLK(&card->fe) == WAN_MASTER_CLK && WAN_TE1_REFCLK(&card->fe) > 0){ @@ -745,7 +819,7 @@ int a104_chip_config(sdla_t *card) card->hw_iface.bus_read_4(card->hw, AFT_PORT_REG(card,AFT_LINE_CFG_REG),®); - if (card->u.aft.firm_id == AFT_DS_FE_CORE_ID/*card->adptr_type == A108_ADPTR_8TE1*/){ + if (card->u.aft.firm_id == AFT_DS_FE_CORE_ID){ card->hw_iface.hw_lock(card->hw,&smp_flags); wan_spin_lock_irq(&card->wandev.lock,&flags); @@ -837,15 +911,11 @@ int a104_chip_config(sdla_t *card) card->wandev.hwec_enable = aft_hwec_enable; card->wandev.ec_dev = wanpipe_ec_register(card, max_ec_chans); if (!card->wandev.ec_dev) { - DEBUG_EVENT( - "%s: ERROR: Echo Canceller registration failed: not initialized!\n", - card->devname); - return -EINVAL; } #else - DEBUG_EVENT("%s: Wanpipe HW Echo Canceller modele is not compiled!\n", + DEBUG_EVENT("%s: Wanpipe HW Echo Canceller module is not compiled!\n", card->devname); #endif }else{ @@ -863,6 +933,7 @@ int a104_chip_config(sdla_t *card) /*at this point we can handle front end interrupts*/ card->init_flag = 0; #endif + AFT_FUNC_DEBUG(); /* Enable only Front End Interrupt * Wait for front end to come up before enabling DMA */ @@ -875,7 +946,7 @@ int a104_chip_config(sdla_t *card) card->u.aft.lcfg_reg=reg; - + AFT_FUNC_DEBUG(); /*============ DMA CONTROL REGISTER ===============*/ @@ -886,9 +957,16 @@ int a104_chip_config(sdla_t *card) wan_clear_bit(AFT_DMACTRL_GLOBAL_INTR_BIT,®); card->hw_iface.bus_write_4(card->hw,AFT_PORT_REG(card,AFT_DMA_CTRL_REG),reg); + AFT_FUNC_DEBUG(); reg=0; - for (i=0;i<32;i++){ + if(IS_56K_CARD(card)){ + max_channels = 1; + }else{ + max_channels = 32; + } + + for (i=0;iwandev.fe_iface.pre_release){ + card->wandev.fe_iface.pre_release(&card->fe); + } + + if (card->wandev.fe_iface.unconfig){ + card->wandev.fe_iface.unconfig(&card->fe); + } + +#else aft_wdt_reset(card); /* Disable Octasic Chip */ @@ -937,6 +1029,9 @@ int a104_chip_unconfig(sdla_t *card) if (IS_TE1_CARD(card)) { wan_smp_flag_t smp_flags,smp_flags1; + if (card->wandev.fe_iface.pre_release){ + card->wandev.fe_iface.pre_release(&card->fe); + } card->hw_iface.hw_lock(card->hw,&smp_flags1); wan_spin_lock_irq(&card->wandev.lock, &smp_flags); __aft_fe_intr_ctrl(card,0); @@ -948,10 +1043,9 @@ int a104_chip_unconfig(sdla_t *card) card->hw_iface.hw_unlock(card->hw,&smp_flags1); } - wan_set_bit(AFT_LCFG_FE_IFACE_RESET_BIT,®); card->hw_iface.bus_write_4(card->hw,AFT_PORT_REG(card,AFT_LINE_CFG_REG),reg); - +#endif return 0; } @@ -964,6 +1058,11 @@ int a104_chan_dev_config(sdla_t *card, void *chan_ptr) private_area_t *chan = (private_area_t*)chan_ptr; u32 ctrl_ram_reg,dma_ram_reg; + AFT_FUNC_DEBUG(); +#if INIT_FE_ONLY + +#else + chan_num=aft_request_logical_channel_num(card, chan); if (chan_num < 0){ return -EBUSY; @@ -1069,7 +1168,7 @@ int a104_chan_dev_config(sdla_t *card, void *chan_ptr) wan_set_bit(chan->logic_ch_num,&card->u.aft.tdm_logic_ch_map); } - +#endif return 0; } @@ -1079,6 +1178,10 @@ int a104_chan_dev_unconfig(sdla_t *card, void *chan_ptr) volatile int i; u32 dma_ram_reg,ctrl_ram_reg,reg; + AFT_FUNC_DEBUG(); +#if INIT_FE_ONLY + +#else /* Select an HDLC logic channel for configuration */ if (chan->logic_ch_num != -1){ @@ -1133,7 +1236,7 @@ int a104_chan_dev_unconfig(sdla_t *card, void *chan_ptr) /* Do not clear the logi_ch_num here. We will do it at the end of del_if_private() funciton */ } - +#endif return 0; } @@ -1142,6 +1245,10 @@ int a104_check_ec_security(sdla_t *card) u32 cfg_reg; u32 security_bit=AFT_CHIPCFG_A104D_EC_SECURITY_BIT; + AFT_FUNC_DEBUG(); +#if INIT_FE_ONLY + +#else if (card->u.aft.firm_id == AFT_DS_FE_CORE_ID/*card->adptr_type == A108_ADPTR_8TE1*/) { security_bit=AFT_CHIPCFG_A108_EC_SECURITY_BIT; } @@ -1150,6 +1257,7 @@ int a104_check_ec_security(sdla_t *card) if (wan_test_bit(security_bit,&cfg_reg)){ return 1; } +#endif return 0; } @@ -1176,9 +1284,8 @@ int __a104_write_fe (void *pcard, ...) if (off & 0x800) off |= 0x2000; if (off & 0x1000) off |= 0x4000; off &= ~AFT8_BIT_DEV_ADDR_CLEAR; - if ((card->adptr_type == A101_ADPTR_2TE1 || - card->adptr_type == A101_ADPTR_1TE1) && - port_no == 1){ + if ((card->adptr_type == A101_ADPTR_2TE1 || card->adptr_type == A101_ADPTR_1TE1) && + port_no == 1){ off |= AFT8_BIT_DEV_MAXIM_ADDR_CPLD; } } @@ -1247,7 +1354,7 @@ int a104_write_fe (void *pcard, ...) /*============================================================================ - * Read TE1/56K Front end registers + * Read TE1 Front end registers */ unsigned char __a104_read_fe (void *pcard, ...) { @@ -1267,9 +1374,8 @@ unsigned char __a104_read_fe (void *pcard, ...) if (off & 0x0800) off |= 0x2000; if (off & 0x1000) off |= 0x4000; off &= ~AFT8_BIT_DEV_ADDR_CLEAR; - if ((card->adptr_type == A101_ADPTR_2TE1 || - card->adptr_type == A101_ADPTR_2TE1) && - port_no == 1){ + if ((card->adptr_type == A101_ADPTR_2TE1 || card->adptr_type == A101_ADPTR_1TE1) && + port_no == 1){ off |= AFT8_BIT_DEV_MAXIM_ADDR_CPLD; } } @@ -1278,9 +1384,9 @@ unsigned char __a104_read_fe (void *pcard, ...) AFT_MCPU_INTERFACE_ADDR, (u16*)&org_off); - card->hw_iface.bus_write_2(card->hw, AFT_MCPU_INTERFACE_ADDR, (u16)off); + card->hw_iface.bus_write_2(card->hw, AFT_MCPU_INTERFACE_ADDR, (u16)off); - card->hw_iface.bus_read_1(card->hw,AFT_MCPU_INTERFACE, (u8*)&tmp); + card->hw_iface.bus_read_1(card->hw,AFT_MCPU_INTERFACE, (u8*)&tmp); if (!qaccess){ WP_DELAY(5); } @@ -1329,157 +1435,155 @@ unsigned char a104_read_fe (void *pcard, ...) */ unsigned char __a56k_read_fe (void *pcard, ...) { - va_list args; - sdla_t *card = (sdla_t*)pcard; - int port_no, off, tmp; - u8 qaccess = card->wandev.state == WAN_CONNECTED ? 1 : 0; + va_list args; + sdla_t *card = (sdla_t*)pcard; + int port_no, off, tmp; + u8 qaccess = card->wandev.state == WAN_CONNECTED ? 1 : 0; - va_start(args, pcard); - port_no = (int)va_arg(args, int); - off = (int)va_arg(args, int); - va_end(args); + va_start(args, pcard); + port_no = (int)va_arg(args, int); + off = (int)va_arg(args, int); + va_end(args); - off &= ~AFT8_BIT_DEV_ADDR_CLEAR; + off &= ~AFT8_BIT_DEV_ADDR_CLEAR; - card->hw_iface.bus_write_2(card->hw, AFT56K_MCPU_INTERFACE_ADDR, (u16)off); + card->hw_iface.bus_write_2(card->hw, AFT56K_MCPU_INTERFACE_ADDR, (u16)off); - card->hw_iface.bus_read_4(card->hw, AFT56K_MCPU_INTERFACE, &tmp); + card->hw_iface.bus_read_4(card->hw, AFT56K_MCPU_INTERFACE, &tmp); - if (!qaccess){ - WP_DELAY(5); - } + if (!qaccess){ + WP_DELAY(5); + } #if 0 - DEBUG_56K("%s(): port_no: 0x%X, off: 0x%X, cpld_data: 0x%X\n", - __FUNCTION__, port_no, off, tmp); + DEBUG_56K("%s(): port_no: 0x%X, off: 0x%X, cpld_data: 0x%X\n", + __FUNCTION__, port_no, off, tmp); #endif return (u8)tmp; } unsigned char a56k_read_fe (void *pcard, ...) { - va_list args; - sdla_t *card = (sdla_t*)pcard; - unsigned int port_no, off; - unsigned int cpld_data=0; + va_list args; + sdla_t *card = (sdla_t*)pcard; + unsigned int port_no, off; + unsigned int cpld_data=0; - if (card->hw_iface.fe_test_and_set_bit(card->hw,0)){ - if (WAN_NET_RATELIMIT()){ - DEBUG_EVENT("%s: %s:%d: Critical Error: Re-entry in FE!\n", - card->devname, __FUNCTION__,__LINE__); - } - return 0x00; - } + if (card->hw_iface.fe_test_and_set_bit(card->hw,0)){ + if (WAN_NET_RATELIMIT()){ + DEBUG_EVENT("%s: %s:%d: Critical Error: Re-entry in FE!\n", + card->devname, __FUNCTION__,__LINE__); + } + return 0x00; + } - va_start(args, pcard); - port_no = (int)va_arg(args, int); - off = (int)va_arg(args, int); - va_end(args); + va_start(args, pcard); + port_no = (int)va_arg(args, int); + off = (int)va_arg(args, int); + va_end(args); - cpld_data = __a56k_read_fe(card, port_no, off); + cpld_data = __a56k_read_fe(card, port_no, off); - card->hw_iface.fe_clear_bit(card->hw,0); + card->hw_iface.fe_clear_bit(card->hw,0); - return (unsigned char)cpld_data; + return (unsigned char)cpld_data; } int __a56k_write_fe (void *pcard, ...) { - va_list args; - sdla_t *card = (sdla_t*)pcard; - int port_no, off, value; - u8 qaccess = card->wandev.state == WAN_CONNECTED ? 1 : 0; + va_list args; + sdla_t *card = (sdla_t*)pcard; + int port_no, off, value; + u8 qaccess = card->wandev.state == WAN_CONNECTED ? 1 : 0; - va_start(args, pcard); - port_no = va_arg(args, int); - off = va_arg(args, int); - value = va_arg(args, int); - va_end(args); + va_start(args, pcard); + port_no = va_arg(args, int); + off = va_arg(args, int); + value = va_arg(args, int); + va_end(args); - off &= ~AFT8_BIT_DEV_ADDR_CLEAR; + off &= ~AFT8_BIT_DEV_ADDR_CLEAR; - card->hw_iface.bus_write_2(card->hw, AFT56K_MCPU_INTERFACE_ADDR, (u16)off); + card->hw_iface.bus_write_2(card->hw, AFT56K_MCPU_INTERFACE_ADDR, (u16)off); - card->hw_iface.bus_write_2(card->hw, AFT56K_MCPU_INTERFACE, (u16)value); - if (!qaccess){ - WP_DELAY(5); - } + card->hw_iface.bus_write_2(card->hw, AFT56K_MCPU_INTERFACE, (u16)value); + if (!qaccess){ + WP_DELAY(5); + } #if 0 - DEBUG_56K("%s(): port_no: 0x%X, off: 0x%X, value: 0x%X\n", - __FUNCTION__, port_no, off, value); + DEBUG_56K("%s(): port_no: 0x%X, off: 0x%X, value: 0x%X\n", + __FUNCTION__, port_no, off, value); #endif return 0; } - int a56k_write_fe (void *pcard, ...) { - va_list args; - sdla_t *card = (sdla_t*)pcard; - int port_no, off, value; + va_list args; + sdla_t *card = (sdla_t*)pcard; + int port_no, off, value; - if (card->hw_iface.fe_test_and_set_bit(card->hw,0)){ - if (WAN_NET_RATELIMIT()){ - DEBUG_EVENT( - "%s: %s:%d: Critical Error: Re-entry in FE!\n", - card->devname, - __FUNCTION__,__LINE__); - } - return -EINVAL; - } + if (card->hw_iface.fe_test_and_set_bit(card->hw,0)){ + if (WAN_NET_RATELIMIT()){ + DEBUG_EVENT( + "%s: %s:%d: Critical Error: Re-entry in FE!\n", + card->devname, + __FUNCTION__,__LINE__); + } + return -EINVAL; + } - va_start(args, pcard); - port_no = va_arg(args, int); - off = va_arg(args, int); - value = va_arg(args, int); - va_end(args); + va_start(args, pcard); + port_no = va_arg(args, int); + off = va_arg(args, int); + value = va_arg(args, int); + va_end(args); - __a56k_write_fe(card, port_no, off, value); + __a56k_write_fe(card, port_no, off, value); - card->hw_iface.fe_clear_bit(card->hw,0); + card->hw_iface.fe_clear_bit(card->hw,0); - return 0; + return 0; } /*============================================================================ * Read/Write 56k CPLD. Different from TE1!! */ -int aft_56k_write_cpld(sdla_t *card, unsigned short cpld_off, unsigned char cpld_data) +int aft_56k_write_cpld(sdla_t *card, unsigned short cpld_off, u_int16_t cpld_data) { - cpld_off |= AFT56K_BIT_DEV_ADDR_CPLD; + cpld_off |= AFT56K_BIT_DEV_ADDR_CPLD; #if 0 - DEBUG_56K("%s(): cpld_off: 0x%X, cpld_data: 0x%X\n", - __FUNCTION__, cpld_off, cpld_data); + DEBUG_56K("%s(): cpld_off: 0x%X, cpld_data: 0x%X\n", + __FUNCTION__, cpld_off, cpld_data); #endif - card->hw_iface.bus_write_2(card->hw, AFT56K_MCPU_INTERFACE_ADDR, cpld_off); - card->hw_iface.bus_write_2(card->hw, AFT56K_MCPU_INTERFACE, cpld_data); - return 0; + card->hw_iface.bus_write_2(card->hw, AFT56K_MCPU_INTERFACE_ADDR, cpld_off); + card->hw_iface.bus_write_2(card->hw, AFT56K_MCPU_INTERFACE, cpld_data); + return 0; } unsigned char aft_56k_read_cpld(sdla_t *card, unsigned short cpld_off) { - unsigned int cpld_data; + unsigned int cpld_data; - cpld_off |= AFT56K_BIT_DEV_ADDR_CPLD; + cpld_off |= AFT56K_BIT_DEV_ADDR_CPLD; - card->hw_iface.bus_write_2(card->hw, AFT56K_MCPU_INTERFACE_ADDR, cpld_off); - card->hw_iface.bus_read_4(card->hw, AFT56K_MCPU_INTERFACE, &cpld_data); + card->hw_iface.bus_write_2(card->hw, AFT56K_MCPU_INTERFACE_ADDR, cpld_off); + card->hw_iface.bus_read_4(card->hw, AFT56K_MCPU_INTERFACE, &cpld_data); #if 0 - DEBUG_56K("%s(): cpld_off: 0x%X, cpld_data: 0x%X\n", - __FUNCTION__, cpld_off, cpld_data); + DEBUG_56K("%s(): cpld_off: 0x%X, cpld_data: 0x%X\n", + __FUNCTION__, cpld_off, cpld_data); #endif - return (unsigned char)cpld_data; + return (unsigned char)cpld_data; } + /*============================================================================ * Read TE1 CPLD. */ - - unsigned char aft_te1_read_cpld(sdla_t *card, unsigned short cpld_off) { u8 tmp; @@ -1499,8 +1603,7 @@ unsigned char aft_te1_read_cpld(sdla_t *card, unsigned short cpld_off) return tmp; } - -int aft_te1_write_cpld(sdla_t *card, unsigned short off,unsigned char data) +int aft_te1_write_cpld(sdla_t *card, unsigned short off,u_int16_t data) { int err = -EINVAL; @@ -1550,7 +1653,7 @@ unsigned char a108m_read_cpld(sdla_t *card, unsigned short cpld_off) return tmp; } -int a108m_write_cpld(sdla_t *card, unsigned short off,unsigned char data) +int a108m_write_cpld(sdla_t *card, unsigned short off,u_int16_t data) { u16 org_off; @@ -1628,8 +1731,8 @@ static int aft_hwec_reset(void *pcard, int reset) DEBUG_EVENT("%s: Clear Echo Canceller chip reset.\n", card->devname); - if (card->u.aft.firm_id == AFT_DS_FE_CORE_ID) { - aft_te1_write_cpld(card,0x00,0x0F); + if (card->u.aft.firm_id == AFT_DS_FE_CORE_ID/*card->adptr_type == A108_ADPTR_8TE1*/) { + aft_te1_write_cpld(card,0x00,0x07); }else{ if (IS_T1_CARD(card)){ @@ -1675,8 +1778,8 @@ static int aft_hwec_enable(void *pcard, int enable, int channel) WAN_ASSERT(card == NULL); if(!wan_test_bit(channel, &card->wandev.ec_enable_map)){ return -EINVAL; - } - DEBUG_HWEC("[HWEC]: %s: %s bypass mode for channel %d!\n", + } + DEBUG_TEST("[HWEC]: %s: %s bypass mode for channel %d!\n", card->devname, (enable) ? "Enable" : "Disable", channel); @@ -1685,29 +1788,13 @@ static int aft_hwec_enable(void *pcard, int enable, int channel) card->hw, AFT_PORT_REG(card,0x1000) + channel * 4, &value); - if (enable){ - if (!wan_test_and_set_bit(channel,&card->wandev.ec_map)) { - value |= 0x20; - } else { - DEBUG_EVENT("[HWEC]: %s: %s bypass mode overrun detected for channel %d!\n", - card->devname, - (enable) ? "Enable" : "Disable", - channel); - return 0; - } - } else { - if (wan_test_and_clear_bit(channel,&card->wandev.ec_map)) { - value &= ~0x20; - } else { - DEBUG_EVENT("[HWEC]: %s: %s bypass mode overrun detected for channel %d!\n", - card->devname, - (enable) ? "Enable" : "Disable", - channel); - return 0; - } - } - + wan_set_bit(channel,&card->wandev.ec_map); + value |= 0x20; + }else{ + wan_clear_bit(channel,&card->wandev.ec_map); + value &= ~0x20; + } card->hw_iface.bus_write_4( card->hw, AFT_PORT_REG(card,0x1000) + channel * 4, diff --git a/patches/kdrivers/src/net/aft_a104.c~ b/patches/kdrivers/src/net/aft_a104.c~ deleted file mode 100644 index cd8a08c..0000000 --- a/patches/kdrivers/src/net/aft_a104.c~ +++ /dev/null @@ -1,1702 +0,0 @@ -/***************************************************************************** -* aft_a104.c -* -* WANPIPE(tm) AFT A104 Hardware Support -* -* Authors: Nenad Corbic -* -* Copyright: (c) 2003-2005 Sangoma Technologies 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 of the License, or (at your option) any later version. -* ============================================================================ -* Sep 25, 2005 Nenad Corbic Initial Version -*****************************************************************************/ - -#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) -# include -# include -# include -# include /* Socket Driver common area */ -# include -# include -# include -#elif defined(__WINDOWS__) -# include -# include -# include - -# include -# include /* Socket Driver common area */ -# include -# include - -# include - -extern -void -sdla_te_timer( - IN PKDPC, - void*, - void*, - void* - ); -#else -# include -# include -# include -# include -# include -# include /* Socket Driver common area */ -# include -# include -//# include -# include -# include -# include -#endif - -/*============================================== - * PRIVATE FUNCITONS - * - */ -#if defined(CONFIG_WANPIPE_HWEC) -static int aft_hwec_reset(void *pcard, int reset); -static int aft_hwec_enable(void *pcard, int enable, int channel); -#endif - -int __a104_write_fe (void *pcard, ...); -int __a56k_write_fe (void *pcard, ...); - -static int aft_map_fifo_baddr_and_size(sdla_t *card, unsigned char fifo_size, unsigned char *addr); - -static char fifo_size_vector[] = {1, 2, 4, 8, 16, 32}; -static char fifo_code_vector[] = {0, 1, 3, 7,0xF,0x1F}; - -static int request_fifo_baddr_and_size(sdla_t *card, private_area_t *chan) -{ - unsigned char req_fifo_size,fifo_size; - int i; - - /* Calculate the optimal fifo size based - * on the number of time slots requested */ - - if (IS_T1_CARD(card)){ - - if (chan->num_of_time_slots == NUM_OF_T1_CHANNELS){ - req_fifo_size=32; - }else if (chan->num_of_time_slots == 1){ - req_fifo_size=1; - }else if (chan->num_of_time_slots == 2 || chan->num_of_time_slots == 3){ - req_fifo_size=2; - }else if (chan->num_of_time_slots >= 4 && chan->num_of_time_slots<= 7){ - req_fifo_size=4; - }else if (chan->num_of_time_slots >= 8 && chan->num_of_time_slots<= 15){ - req_fifo_size=8; - }else if (chan->num_of_time_slots >= 16 && chan->num_of_time_slots<= 23){ - req_fifo_size=16; - }else{ - DEBUG_EVENT("%s:%s: Invalid number of timeslots %d\n", - card->devname,chan->if_name,chan->num_of_time_slots); - return -EINVAL; - } - }else{ - if (chan->num_of_time_slots == (NUM_OF_E1_CHANNELS-1)){ - req_fifo_size=32; - }else if (chan->num_of_time_slots == 1){ - req_fifo_size=1; - }else if (chan->num_of_time_slots == 2 || chan->num_of_time_slots == 3){ - req_fifo_size=2; - }else if (chan->num_of_time_slots >= 4 && chan->num_of_time_slots <= 7){ - req_fifo_size=4; - }else if (chan->num_of_time_slots >= 8 && chan->num_of_time_slots <= 15){ - req_fifo_size=8; - }else if (chan->num_of_time_slots >= 16 && chan->num_of_time_slots <= 31){ - req_fifo_size=16; - }else if (WAN_FE_FRAME(&card->fe) == WAN_FR_UNFRAMED){ - req_fifo_size=16; - }else{ - DEBUG_EVENT("%s:%s: Invalid number of timeslots %d\n", - card->devname,chan->if_name,chan->num_of_time_slots); - return -EINVAL; - } - } - - DEBUG_TEST("%s:%s: Optimal Fifo Size =%d Timeslots=%d \n", - card->devname,chan->if_name,req_fifo_size,chan->num_of_time_slots); - - fifo_size=(u8)aft_map_fifo_baddr_and_size(card,req_fifo_size,&chan->fifo_base_addr); - if (fifo_size == 0 || chan->fifo_base_addr == 31){ - DEBUG_EVENT("%s:%s: Error: Failed to obtain fifo size %d or addr %d \n", - card->devname,chan->if_name,fifo_size,chan->fifo_base_addr); - return -EINVAL; - } - - DEBUG_TEST("%s:%s: Optimal Fifo Size =%d Timeslots=%d New Fifo Size=%d \n", - card->devname,chan->if_name,req_fifo_size,chan->num_of_time_slots,fifo_size); - - - for (i=0;ififo_size_code=fifo_code_vector[i]; - break; - } - } - - if (fifo_size != req_fifo_size){ - DEBUG_EVENT("%s:%s: Warning: Failed to obtain the req fifo %d got %d\n", - card->devname,chan->if_name,req_fifo_size,fifo_size); - } - - DEBUG_TEST("%s: %s:Fifo Size=%d Timeslots=%d Fifo Code=%d Addr=%d\n", - card->devname,chan->if_name,fifo_size, - chan->num_of_time_slots,chan->fifo_size_code, - chan->fifo_base_addr); - - chan->fifo_size = fifo_size; - - return 0; -} - - -static int aft_map_fifo_baddr_and_size(sdla_t *card, unsigned char fifo_size, unsigned char *addr) -{ - u32 reg=0; - u8 i; - - for (i=0;idevname,reg,card->u.aft.fifo_addr_map); - - for (i=0;i<32;i+=fifo_size){ - if (card->u.aft.fifo_addr_map & (reg<u.aft.fifo_addr_map |= reg<devname,card->u.aft.fifo_addr_map,i); - - return fifo_size; - } - - if (fifo_size == 1){ - return 0; - } - - fifo_size = fifo_size >> 1; - - return aft_map_fifo_baddr_and_size(card,fifo_size,addr); -} - - -static int aft_free_fifo_baddr_and_size (sdla_t *card, private_area_t *chan) -{ - u32 reg=0; - int i; - - for (i=0;ififo_size;i++){ - wan_set_bit(i,®); - } - - DEBUG_TEST("%s: Unmapping 0x%X from 0x%lX\n", - card->devname,reg<fifo_base_addr, card->u.aft.fifo_addr_map); - - card->u.aft.fifo_addr_map &= ~(reg<fifo_base_addr); - - DEBUG_TEST("%s: New Map is 0x%lX\n", - card->devname, card->u.aft.fifo_addr_map); - - - chan->fifo_size=0; - chan->fifo_base_addr=0; - - return 0; -} - - -static int aft_request_logical_channel_num (sdla_t *card, private_area_t *chan) -{ - signed char logic_ch=-1; - int err; - int if_cnt=wan_atomic_read(&card->wandev.if_cnt); - int if_offset=2; - long i; - - if (IS_E1_CARD(card) && !(WAN_FE_FRAME(&card->fe) == WAN_FR_UNFRAMED)){ - if_offset=3; - } - - DEBUG_TEST("-- Request_Xilinx_logic_channel_num:-- (if_offset=%i)\n",if_offset); - - DEBUG_TEST("%s:%d Global Num Timeslots=%d Global Logic ch Map 0x%lX \n", - __FUNCTION__,__LINE__, - card->u.aft.num_of_time_slots, - card->u.aft.logic_ch_map); - - - /* Check that the time slot is not being used. If it is - * stop the interface setup. Notice, though we proceed - * to check for all timeslots before we start binding - * the channels in. This way, we don't have to go back - * and clean the time_slot_map */ - for (i=0;iu.aft.num_of_time_slots;i++){ - if (wan_test_bit(i,&chan->time_slot_map)){ - - if (chan->first_time_slot == -1){ - DEBUG_EVENT("%s: First TSlot :%ld\n", - card->devname,i); - chan->first_time_slot=i; - } - - chan->last_time_slot=i; - - DEBUG_CFG("%s: Configuring %s for timeslot %ld\n", - card->devname, chan->if_name, - IS_E1_CARD(card)?i:i+1); - - if (wan_test_bit(i,&card->u.aft.time_slot_map)){ - DEBUG_EVENT("%s: Channel/Time Slot resource conflict!\n", - card->devname); - DEBUG_EVENT("%s: %s: Channel/Time Slot %ld, aready in use!\n", - card->devname,chan->if_name,(i+1)); - - return -EEXIST; - } - } - } - - err=request_fifo_baddr_and_size(card,chan); - if (err){ - return -1; - } - - for (i=0;iu.aft.num_of_time_slots;i++){ - - if (card->u.aft.security_id == 0){ - /* Unchannelized card must config - * its hdlc logic ch on FIRST logic - * ch number */ - - if (chan->channelized_cfg) { - if (card->u.aft.cfg.tdmv_dchan){ - /* In this case we KNOW that there is - * only a single hdlc channel */ - if (i==0 && !chan->hdlc_eng){ - continue; - } - } - }else{ - if (i==0 || i==1){ - if (!chan->hdlc_eng && - if_cnt < (card->u.aft.num_of_time_slots-if_offset)){ - continue; - } - } - } - } - - if (!wan_test_and_set_bit(i,&card->u.aft.logic_ch_map)){ - logic_ch=(char)i; - break; - } - } - - if (logic_ch == -1){ - return logic_ch; - } - - for (i=0;iu.aft.num_of_time_slots;i++){ - if (!wan_test_bit(i,&card->u.aft.logic_ch_map)){ - break; - } - } - - if (card->u.aft.dev_to_ch_map[(unsigned char)logic_ch]){ - DEBUG_EVENT("%s: Error, request logical ch=%d map busy\n", - card->devname,logic_ch); - return -1; - } - - card->u.aft.dev_to_ch_map[(unsigned char)logic_ch]=(void*)chan; - - if (logic_ch >= card->u.aft.top_logic_ch){ - card->u.aft.top_logic_ch=logic_ch; - aft_dma_max_logic_ch(card); - } - - - DEBUG_TEST("Binding logic ch %d Ptr=%p\n",logic_ch,chan); - return logic_ch; -} - - - -static int aft_test_hdlc(sdla_t *card) -{ - int i; - int err; - u32 reg; - - for (i=0;i<10;i++){ - card->hw_iface.bus_read_4(card->hw,AFT_CHIP_CFG_REG, ®); - - if (!wan_test_bit(AFT_CHIPCFG_HDLC_CTRL_RDY_BIT,®) || - !wan_test_bit(AFT_CHIPCFG_RAM_READY_BIT,®)){ - /* The HDLC Core is not ready! we have - * an error. */ - err = -EINVAL; - WP_DELAY(200); - }else{ - err=0; - break; - } - } - - return err; -} - - -/*============================================== - * PUBLIC FUNCITONS - * - */ - -int a104_test_sync(sdla_t *card, int tx_only) -{ - volatile int i,err=1; - u32 reg; - - card->hw_iface.bus_read_4(card->hw,AFT_PORT_REG(card,AFT_LINE_CFG_REG), ®); - - if (wan_test_bit(AFT_LCFG_FE_IFACE_RESET_BIT,®)){ - DEBUG_EVENT("%s: Warning: T1/E1 Reset Enabled %d! \n", - card->devname, card->wandev.comm_port+1); - } - - for (i=0;i<500;i++){ - - card->hw_iface.bus_read_4(card->hw,AFT_PORT_REG(card,AFT_LINE_CFG_REG), ®); - if (tx_only){ - if (wan_test_bit(AFT_LCFG_TX_FE_SYNC_STAT_BIT,®)){ - err=-1; - WP_DELAY(200); - }else{ - err=0; - break; - } - }else{ - if (wan_test_bit(AFT_LCFG_TX_FE_SYNC_STAT_BIT,®) || - wan_test_bit(AFT_LCFG_RX_FE_SYNC_STAT_BIT,®)){ - err=-1; - WP_DELAY(200); - }else{ - err=0; - break; - } - } - } - - DEBUG_TEST("%s: DELAY INDEX = %i\n", - card->devname,i); - - return err; -} - -int a104_led_ctrl(sdla_t *card, int color, int led_pos, int on) -{ - u32 reg; - - if (card->adptr_subtype == AFT_SUBTYPE_SHARK){ - - /* INSERT LED CODE */ - switch (color){ - - case WAN_AFT_RED: - if (on){ - wan_clear_bit(0,&card->u.aft.led_ctrl); - }else{ - wan_set_bit(0,&card->u.aft.led_ctrl); - } - break; - - case WAN_AFT_GREEN: - if (on){ - wan_clear_bit(1,&card->u.aft.led_ctrl); - }else{ - wan_set_bit(1,&card->u.aft.led_ctrl); - } - break; - } - - - if(IS_56K_CARD(card)){ - aft_56k_write_cpld(card,card->wandev.comm_port + 0x08,card->u.aft.led_ctrl); - }else{ - aft_te1_write_cpld(card,card->wandev.comm_port + 0x08,card->u.aft.led_ctrl); - } - }else{ - card->hw_iface.bus_read_4(card->hw, - AFT_PORT_REG(card,AFT_LINE_CFG_REG),®); - aft_set_led(color, led_pos, on, ®); - card->hw_iface.bus_write_4(card->hw, - AFT_PORT_REG(card,AFT_LINE_CFG_REG),reg); - } - - return 0; -} - - -int a104_global_chip_config(sdla_t *card) -{ - u32 reg; - int err=0; - /*============ GLOBAL CHIP CONFIGURATION ===============*/ - - /* Enable the chip/hdlc reset condition */ - reg=0; - wan_set_bit(AFT_CHIPCFG_SFR_EX_BIT,®); - wan_set_bit(AFT_CHIPCFG_SFR_IN_BIT,®); - - DEBUG_CFG("--- AFT Chip Reset. -- \n"); - - card->hw_iface.bus_write_4(card->hw,AFT_CHIP_CFG_REG,reg); - - WP_DELAY(10); - - /* Disable the chip/hdlc reset condition */ - wan_clear_bit(AFT_CHIPCFG_SFR_EX_BIT,®); - wan_clear_bit(AFT_CHIPCFG_SFR_IN_BIT,®); - - wan_clear_bit(AFT_CHIPCFG_FE_INTR_CFG_BIT,®); - - if (IS_T1_CARD(card)){ - wan_clear_bit(AFT_CHIPCFG_TE1_CFG_BIT,®); - }else if (IS_E1_CARD(card)){ - wan_set_bit(AFT_CHIPCFG_TE1_CFG_BIT,®); - }else if (IS_56K_CARD(card)){ - wan_set_bit(AFT_CHIPCFG_56K_CFG_BIT,®); - }else{ - DEBUG_EVENT("%s: Error: Xilinx doesn't support non T1/E1 interface!\n", - card->devname); - return -EINVAL; - } - - /* Enable FRONT END Interrupt */ - wan_set_bit(AFT_CHIPCFG_FE_INTR_CFG_BIT,®); - - DEBUG_CFG("--- Chip enable/config. -- \n"); - - if (card->adptr_subtype == AFT_SUBTYPE_SHARK){ - - /* FIXME: Do not hardcode port numbers */ - if ((int)card->u.aft.cfg.ec_clk_src < 0 || - card->u.aft.cfg.ec_clk_src > 7) { - DEBUG_EVENT("%s: ERROR: Invalid SHARK Octasic Clock Source %d\n", - card->devname,card->u.aft.cfg.ec_clk_src); - return -EINVAL; - } - - DEBUG_EVENT("%s: Global EC Clock Port = %d\n", - card->devname, - card->u.aft.cfg.ec_clk_src+1); - aft_chipcfg_set_oct_clk_src(®,card->u.aft.cfg.ec_clk_src); - } - - card->hw_iface.bus_write_4(card->hw,AFT_CHIP_CFG_REG,reg); - - if (card->u.aft.firm_id == AFT_DS_FE_CORE_ID/*card->adptr_type == A108_ADPTR_8TE1*/){ - /* A104/A108 with Dallas FE */ - wan_smp_flag_t smp_flags,flags; - card->hw_iface.hw_lock(card->hw,&smp_flags); - wan_spin_lock_irq(&card->wandev.lock,&flags); - aft_te1_write_cpld(card,0x00,0x06); - wan_spin_unlock_irq(&card->wandev.lock,&flags); - card->hw_iface.hw_unlock(card->hw,&smp_flags); - - }else if (card->adptr_subtype == AFT_SUBTYPE_SHARK){ - - wan_smp_flag_t smp_flags,flags; - card->hw_iface.hw_lock(card->hw,&smp_flags); - wan_spin_lock_irq(&card->wandev.lock,&flags); - if (IS_T1_CARD(card)){ - aft_te1_write_cpld(card,0x00,0x00); - }else if (IS_E1_CARD(card)){ - aft_te1_write_cpld(card,0x00,0x02); - }else if (IS_56K_CARD(card)){ - aft_56k_write_cpld(card,0x00,0x02);/* DR: Framer 'reset off' */ - } - wan_spin_unlock_irq(&card->wandev.lock,&flags); - card->hw_iface.hw_unlock(card->hw,&smp_flags); - } - - err=aft_test_hdlc(card); - if (err != 0){ - DEBUG_EVENT("%s: Error: HDLC Core Not Ready (0x%X)!\n", - card->devname,reg); - return -EINVAL; - } else{ - DEBUG_CFG("%s: HDLC Core Ready\n", - card->devname); - } - err = -EINVAL; - if (card->wandev.fe_iface.global_config){ - err=card->wandev.fe_iface.global_config(&card->fe); - } - if (err){ - return err; - } - return 0; -} - -int a104_global_chip_unconfig(sdla_t *card) -{ - u32 reg=0; - - /* Global T1/E1 unconfig */ - if (card->wandev.fe_iface.global_unconfig){ - card->wandev.fe_iface.global_unconfig(&card->fe); - } - - /* Set Octasic/TE1 clocking to reset (A104) - ** Set Octasic/Framer to reset (A108) */ - aft_te1_write_cpld(card,0x00,0x00); - - /* Disable the chip/hdlc reset condition */ - wan_set_bit(AFT_CHIPCFG_SFR_EX_BIT,®); - wan_set_bit(AFT_CHIPCFG_SFR_IN_BIT,®); - wan_clear_bit(AFT_CHIPCFG_FE_INTR_CFG_BIT,®); - - card->hw_iface.bus_write_4(card->hw,AFT_CHIP_CFG_REG,reg); - - return 0; -} - -static int aft_ds_set_clock_ref(sdla_t *card, u32 *reg, u32 master_port) -{ - u32 master_cfg; - - if (IS_T1_CARD(card)) { - master_cfg=0x09; - } else { - master_cfg=0x08; - } - - if (WAN_TE1_CLK(&card->fe) == WAN_MASTER_CLK) { - wan_set_bit(AFT_LCFG_A108_FE_CLOCK_MODE_BIT,reg); - - if (WAN_FE_LINENO(&card->fe) >= 4) { - a108m_write_cpld(card, - WAN_FE_LINENO(&card->fe)-4, - (u8)master_cfg); - } - /* July 5, 2006 - ** Modification for Master mode - ** (next line execute for all channels) - */ - /* We must configure the xilinx space for - * each port, only for ports greater than 3 - * we must also configure the CPLD */ - aft_lcfg_a108_fe_clk_source(reg,master_cfg); - - } else { - wan_clear_bit(AFT_LCFG_A108_FE_CLOCK_MODE_BIT,reg); - - if (WAN_FE_LINENO(&card->fe) >= 4) { - a108m_write_cpld(card, - WAN_FE_LINENO(&card->fe)-4, - (u8)master_port); - } - - /* We must configure the xilinx space for - * each port, only for ports greater than 3 - * we must also configure the CPLD */ - - aft_lcfg_a108_fe_clk_source(reg,master_port); - } - - return 0; -} - - -int a104_chip_config(sdla_t *card) -{ - u32 reg=0, ctrl_ram_reg=0; - int i,err=0; - - wan_smp_flag_t smp_flags, flags; - - card->hw_iface.bus_read_4(card->hw,AFT_PORT_REG(card,AFT_LINE_CFG_REG), ®); - if (!wan_test_bit(AFT_LCFG_FE_IFACE_RESET_BIT,®)){ - DEBUG_EVENT("%s: Error: Physical Port %d is busy!\n", - card->devname, card->wandev.comm_port+1); - return -EBUSY; - } - - /* On A108 Cards the T1/E1 will be configured per PORT - * not per CARD */ - if (card->u.aft.firm_id == AFT_DS_FE_CORE_ID) { - - if (IS_T1_CARD(card)) { - wan_clear_bit(AFT_LCFG_A108_FE_TE1_MODE_BIT,®); - } else { - wan_set_bit(AFT_LCFG_A108_FE_TE1_MODE_BIT,®); - } - - card->hw_iface.hw_lock(card->hw,&smp_flags); - wan_spin_lock_irq(&card->wandev.lock,&flags); - - aft_ds_set_clock_ref(card,®,WAN_FE_LINENO(&card->fe)); - - wan_spin_unlock_irq(&card->wandev.lock,&flags); - card->hw_iface.hw_unlock(card->hw,&smp_flags); - - card->hw_iface.bus_write_4(card->hw,AFT_PORT_REG(card,AFT_LINE_CFG_REG), reg); - } - - card->hw_iface.hw_lock(card->hw,&smp_flags); - - aft_fe_intr_ctrl(card, 0); - - err = -EINVAL; - if (card->wandev.fe_iface.config){ - err=card->wandev.fe_iface.config(&card->fe); - } - - a104_led_ctrl(card, WAN_AFT_RED, 0,WAN_AFT_ON); - a104_led_ctrl(card, WAN_AFT_GREEN, 0, WAN_AFT_OFF); - - aft_fe_intr_ctrl(card, 1); - - card->hw_iface.hw_unlock(card->hw,&smp_flags); - - if (err){ - DEBUG_EVENT("%s: Failed %s configuration!\n", - card->devname, - (IS_T1_CARD(card))?"T1":"E1"); - return -EINVAL; - } - - DEBUG_EVENT("%s: Front end successful\n", - card->devname); - - if (card->adptr_type == A104_ADPTR_4TE1 || - card->u.aft.firm_id == AFT_DS_FE_CORE_ID/*card->adptr_type == A108_ADPTR_8TE1*/) { - - if (WAN_TE1_CLK(&card->fe) == WAN_MASTER_CLK && - WAN_TE1_REFCLK(&card->fe) > 0){ - - int mclk_ver=AFT_TDMV_FRM_CLK_SYNC_VER; - int max_port=4; - - if (card->adptr_subtype == AFT_SUBTYPE_SHARK){ - mclk_ver=AFT_TDMV_SHARK_FRM_CLK_SYNC_VER; - } - - if (card->u.aft.firm_id == AFT_DS_FE_CORE_ID){ - mclk_ver=AFT_TDMV_SHARK_A108_FRM_CLK_SYNC_VER; - switch(card->adptr_type){ - case A108_ADPTR_8TE1: - max_port=8; - break; - case A104_ADPTR_4TE1: - max_port=4; - break; - case A101_ADPTR_2TE1: - max_port=2; - break; - case A101_ADPTR_1TE1: - max_port=1; - break; - } - } - - if (card->u.aft.firm_ver < mclk_ver){ - DEBUG_EVENT("%s: Error: AFT FE Clock Sync Depends on Firmware Ver: %X (Cur=%X)\n", - card->devname,mclk_ver,card->u.aft.firm_ver); - DEBUG_EVENT("%s: Please upgrade your AFT Firmware to Ver=%X or greater!\n", - card->devname,mclk_ver); - return -EINVAL; - } - - if (WAN_TE1_REFCLK(&card->fe) == card->wandev.comm_port+1){ - DEBUG_EVENT("%s: Error: Invalid FE Clock Source Line=%i (same as configured line=%i)\n", - card->devname,WAN_TE1_REFCLK(&card->fe), - card->wandev.comm_port+1); - return -EINVAL; - } - - if (WAN_TE1_REFCLK(&card->fe) > max_port){ - DEBUG_EVENT("%s: Error: Invalid FE Clock Source Line=%i\n", - card->devname,WAN_TE1_REFCLK(&card->fe)); - return -EINVAL; - - } - - /* FIXME: Check that REFCLOCK Port is configured for T1 or E1 - * as the current port is!!! */ - - card->hw_iface.bus_read_4(card->hw, - AFT_PORT_REG(card,AFT_LINE_CFG_REG),®); - - if (card->u.aft.firm_id == AFT_DS_FE_CORE_ID/*card->adptr_type == A108_ADPTR_8TE1*/){ - - card->hw_iface.hw_lock(card->hw,&smp_flags); - wan_spin_lock_irq(&card->wandev.lock,&flags); - - /* For A108 the refclock indicates NORMAL mode. - * For backward compatilbity we make the user - * indicate a MASTER mode */ - - WAN_TE1_CLK(&card->fe) = WAN_NORMAL_CLK; - aft_ds_set_clock_ref(card,®,WAN_TE1_REFCLK(&card->fe)-1); - - wan_spin_unlock_irq(&card->wandev.lock,&flags); - card->hw_iface.hw_unlock(card->hw,&smp_flags); - - } else { - - aft_lcfg_fe_clk_source(®,WAN_TE1_REFCLK(&card->fe)-1); - wan_set_bit(AFT_LCFG_FE_CLK_ROUTE_BIT,®); - - } - - card->hw_iface.bus_write_4(card->hw, - AFT_PORT_REG(card,AFT_LINE_CFG_REG),reg); - - DEBUG_EVENT("%s: Configuring FE Line=%d Clock Source: Line=%d\n", - card->devname, - card->wandev.comm_port+1, - WAN_TE1_REFCLK(&card->fe)); - } - - } - - /*============ LINE/PORT CONFIG REGISTER ===============*/ - - card->hw_iface.bus_read_4(card->hw, - AFT_PORT_REG(card,AFT_LINE_CFG_REG),®); - wan_set_bit(AFT_LCFG_FE_IFACE_RESET_BIT,®); - card->hw_iface.bus_write_4(card->hw,AFT_PORT_REG(card,AFT_LINE_CFG_REG),reg); - - WP_DELAY(10); - - wan_clear_bit(AFT_LCFG_FE_IFACE_RESET_BIT,®); - - if (IS_E1_CARD(card) && (WAN_FE_FRAME(&card->fe) == WAN_FR_UNFRAMED)){ - wan_set_bit(AFT_LCFG_CLR_CHNL_EN,®); - } - - card->hw_iface.bus_write_4(card->hw,AFT_PORT_REG(card,AFT_LINE_CFG_REG),reg); - - WP_DELAY(10); - - err=a104_test_sync(card,1); - - card->hw_iface.bus_read_4(card->hw,AFT_PORT_REG(card,AFT_LINE_CFG_REG),®); - if (err != 0){ - DEBUG_EVENT("%s: Error: Front End Interface Not Ready (0x%08X)!\n", - card->devname,reg); - return err; - } else{ - DEBUG_EVENT("%s: Front End Interface Ready 0x%08X\n", - card->devname,reg); - } - - card->wandev.ec_dev = NULL; - card->wandev.hwec_reset = NULL; - card->wandev.hwec_enable = NULL; - - /* Enable Octasic Chip */ - if (card->adptr_subtype == AFT_SUBTYPE_SHARK){ - u16 max_ec_chans; - u32 cfg_reg; - - card->hw_iface.getcfg(card->hw, SDLA_HWEC_NO, &max_ec_chans); - - card->hw_iface.bus_read_4(card->hw,AFT_CHIP_CFG_REG, &cfg_reg); - if (max_ec_chans > aft_chipcfg_get_ec_channels(cfg_reg)){ - DEBUG_EVENT("%s: Critical Error: Exceeded Maximum Available Echo Channels!\n", - card->devname); - DEBUG_EVENT("%s: Critical Error: Max Allowed=%d Configured=%d\n", - card->devname, - aft_chipcfg_get_ec_channels(cfg_reg), - max_ec_chans); - return -EINVAL; - } - - if (max_ec_chans){ -#if defined(CONFIG_WANPIPE_HWEC) - card->wandev.hwec_reset = aft_hwec_reset; - card->wandev.hwec_enable = aft_hwec_enable; - card->wandev.ec_dev = wanpipe_ec_register(card, max_ec_chans); - if (!card->wandev.ec_dev) { - DEBUG_EVENT( - "%s: ERROR: Echo Canceller registration failed: not initialized!\n", - card->devname); - - return -EINVAL; - } -#else - - DEBUG_EVENT("%s: Wanpipe HW Echo Canceller modele is not compiled!\n", - card->devname); -#endif - }else{ - DEBUG_EVENT( - "%s: WARNING: No Echo Canceller channels are available!\n", - card->devname); - } - } - -#if defined(__WINDOWS__) - /*connect to interrupt line and only AFTER THAT enable device's interrupts.*/ - if(connect_to_interrupt_line(card)){ - return 1; - } - /*at this point we can handle front end interrupts*/ - card->init_flag = 0; -#endif - - /* Enable only Front End Interrupt - * Wait for front end to come up before enabling DMA */ - card->hw_iface.bus_read_4(card->hw,AFT_PORT_REG(card,AFT_LINE_CFG_REG), ®); - wan_clear_bit(AFT_LCFG_DMA_INTR_BIT,®); - wan_clear_bit(AFT_LCFG_FIFO_INTR_BIT,®); - wan_clear_bit(AFT_LCFG_TDMV_INTR_BIT,®); - - card->hw_iface.bus_write_4(card->hw,AFT_PORT_REG(card,AFT_LINE_CFG_REG), reg); - - card->u.aft.lcfg_reg=reg; - - - - /*============ DMA CONTROL REGISTER ===============*/ - - /* Disable Global DMA because we will be - * waiting for the front end to come up */ - reg=0; - aft_dmactrl_set_max_logic_ch(®,0); - wan_clear_bit(AFT_DMACTRL_GLOBAL_INTR_BIT,®); - card->hw_iface.bus_write_4(card->hw,AFT_PORT_REG(card,AFT_DMA_CTRL_REG),reg); - - - reg=0; - for (i=0;i<32;i++){ - ctrl_ram_reg=AFT_PORT_REG(card,AFT_CONTROL_RAM_ACCESS_BASE_REG); - ctrl_ram_reg+=(i*4); - - aft_ctrlram_set_logic_ch(®,0x1F); - aft_ctrlram_set_fifo_size(®,0); - aft_ctrlram_set_fifo_base(®,0x1F); - - wan_set_bit(AFT_CTRLRAM_HDLC_MODE_BIT,®); - wan_set_bit(AFT_CTRLRAM_HDLC_TXCH_RESET_BIT,®); - wan_set_bit(AFT_CTRLRAM_HDLC_RXCH_RESET_BIT,®); - - card->hw_iface.bus_write_4(card->hw, ctrl_ram_reg, reg); - } - - - aft_wdt_reset(card); - aft_wdt_set(card,AFT_WDTCTRL_TIMEOUT); - - return 0; -} - -int a104_chip_unconfig(sdla_t *card) -{ - u32 reg=0; - - aft_wdt_reset(card); - - /* Disable Octasic Chip */ - if (card->adptr_subtype == AFT_SUBTYPE_SHARK && card->wandev.ec_dev){ - /* ALEX CALL DISABLE */ - if (card->wandev.ec_dev){ -#if defined(CONFIG_WANPIPE_HWEC) - DEBUG_EVENT("%s: Unregisterd HWEC\n", - card->devname); - wanpipe_ec_unregister(card->wandev.ec_dev, card); -#else - DEBUG_EVENT("%s: Wanpipe HW Echo Canceller modele is not compiled!\n", - card->devname); -#endif - } - card->wandev.hwec_enable = NULL; - card->wandev.ec_dev = NULL; - } - - /* Unconfiging, only on shutdown */ - if (IS_TE1_CARD(card)) { - wan_smp_flag_t smp_flags,smp_flags1; - - card->hw_iface.hw_lock(card->hw,&smp_flags1); - wan_spin_lock_irq(&card->wandev.lock, &smp_flags); - __aft_fe_intr_ctrl(card,0); - if (card->wandev.fe_iface.unconfig){ - card->wandev.fe_iface.unconfig(&card->fe); - } - __aft_fe_intr_ctrl(card,0); - wan_spin_unlock_irq(&card->wandev.lock, &smp_flags); - card->hw_iface.hw_unlock(card->hw,&smp_flags1); - } - - - wan_set_bit(AFT_LCFG_FE_IFACE_RESET_BIT,®); - card->hw_iface.bus_write_4(card->hw,AFT_PORT_REG(card,AFT_LINE_CFG_REG),reg); - - return 0; - -} - -int a104_chan_dev_config(sdla_t *card, void *chan_ptr) -{ - u32 reg; - long i; - int chan_num=-EBUSY; - private_area_t *chan = (private_area_t*)chan_ptr; - u32 ctrl_ram_reg,dma_ram_reg; - - chan_num=aft_request_logical_channel_num(card, chan); - if (chan_num < 0){ - return -EBUSY; - } - chan->logic_ch_num = chan_num; - - dma_ram_reg=AFT_PORT_REG(card,AFT_DMA_CHAIN_RAM_BASE_REG); - dma_ram_reg+=(chan->logic_ch_num*4); - - reg=0; - card->hw_iface.bus_write_4(card->hw, dma_ram_reg, reg); - - card->hw_iface.bus_read_4(card->hw, dma_ram_reg, ®); - - aft_dmachain_set_fifo_size(®, chan->fifo_size_code); - aft_dmachain_set_fifo_base(®, chan->fifo_base_addr); - - /* Initially always disable rx synchronization */ - wan_clear_bit(AFT_DMACHAIN_RX_SYNC_BIT,®); - - /* Enable SS7 if configured by user */ - if (chan->cfg.ss7_enable){ - wan_set_bit(AFT_DMACHAIN_SS7_ENABLE_BIT,®); - }else{ - wan_clear_bit(AFT_DMACHAIN_SS7_ENABLE_BIT,®); - } - - if (chan->channelized_cfg && !chan->hdlc_eng){ - aft_dmachain_enable_tdmv_and_mtu_size(®,chan->mru); - } - - card->hw_iface.bus_write_4(card->hw, dma_ram_reg, reg); - - reg=0; - - - for (i=0;iu.aft.num_of_time_slots;i++){ - - ctrl_ram_reg=AFT_PORT_REG(card,AFT_CONTROL_RAM_ACCESS_BASE_REG); - ctrl_ram_reg+=(i*4); - - if (wan_test_bit(i,&chan->time_slot_map)){ - - wan_set_bit(i,&card->u.aft.time_slot_map); - - card->hw_iface.bus_read_4(card->hw, ctrl_ram_reg, ®); - - aft_ctrlram_set_logic_ch(®,chan->logic_ch_num); - - if (i == chan->first_time_slot){ - wan_set_bit(AFT_CTRLRAM_SYNC_FST_TSLOT_BIT,®); - } - - aft_ctrlram_set_fifo_size(®,chan->fifo_size_code); - - aft_ctrlram_set_fifo_base(®,chan->fifo_base_addr); - - - if (chan->hdlc_eng){ - wan_set_bit(AFT_CTRLRAM_HDLC_MODE_BIT,®); - }else{ - wan_clear_bit(AFT_CTRLRAM_HDLC_MODE_BIT,®); - } - - if (chan->cfg.data_mux){ - wan_set_bit(AFT_CTRLRAM_DATA_MUX_ENABLE_BIT,®); - }else{ - wan_clear_bit(AFT_CTRLRAM_DATA_MUX_ENABLE_BIT,®); - } - - if (0){ /* FIXME card->fe.fe_cfg.cfg.te1cfg.fcs == 32){ */ - wan_set_bit(AFT_CTRLRAM_HDLC_CRC_SIZE_BIT,®); - }else{ - wan_clear_bit(AFT_CTRLRAM_HDLC_CRC_SIZE_BIT,®); - } - - /* Enable SS7 if configured by user */ - if (chan->cfg.ss7_enable){ - wan_set_bit(AFT_CTRLRAM_SS7_ENABLE_BIT,®); - }else{ - wan_clear_bit(AFT_CTRLRAM_SS7_ENABLE_BIT,®); - } - - wan_clear_bit(AFT_CTRLRAM_HDLC_TXCH_RESET_BIT,®); - wan_clear_bit(AFT_CTRLRAM_HDLC_RXCH_RESET_BIT,®); - - DEBUG_TEST("%s: Configuring %s for timeslot %ld : Offset 0x%X Reg 0x%X\n", - card->devname, chan->if_name, i, - ctrl_ram_reg,reg); - - card->hw_iface.bus_write_4(card->hw, ctrl_ram_reg, reg); - - } - } - - if (chan->channelized_cfg && !chan->hdlc_eng){ - - card->hw_iface.bus_read_4(card->hw,AFT_PORT_REG(card,AFT_LINE_CFG_REG),®); - aft_lcfg_tdmv_cnt_inc(®); - - card->hw_iface.bus_write_4(card->hw,AFT_PORT_REG(card,AFT_LINE_CFG_REG),reg); - card->u.aft.lcfg_reg=reg; - - wan_set_bit(chan->logic_ch_num,&card->u.aft.tdm_logic_ch_map); - } - - return 0; -} - -int a104_chan_dev_unconfig(sdla_t *card, void *chan_ptr) -{ - private_area_t *chan = (private_area_t *)chan_ptr; - volatile int i; - u32 dma_ram_reg,ctrl_ram_reg,reg; - - /* Select an HDLC logic channel for configuration */ - if (chan->logic_ch_num != -1){ - - dma_ram_reg=AFT_PORT_REG(card,AFT_DMA_CHAIN_RAM_BASE_REG); - dma_ram_reg+=(chan->logic_ch_num*4); - - card->hw_iface.bus_read_4(card->hw, dma_ram_reg, ®); - - aft_dmachain_set_fifo_base(®,0x1F); - aft_dmachain_set_fifo_size(®,0); - card->hw_iface.bus_write_4(card->hw, dma_ram_reg, reg); - - - for (i=0;iu.aft.num_of_time_slots;i++){ - if (wan_test_bit(i,&chan->time_slot_map)){ - - ctrl_ram_reg=AFT_PORT_REG(card,AFT_CONTROL_RAM_ACCESS_BASE_REG); - ctrl_ram_reg+=(i*4); - - reg=0; - aft_ctrlram_set_logic_ch(®,0x1F); - - aft_ctrlram_set_fifo_base(®,0x1F); - aft_ctrlram_set_fifo_size(®,0); - - wan_set_bit(AFT_CTRLRAM_HDLC_MODE_BIT,®); - wan_set_bit(AFT_CTRLRAM_HDLC_TXCH_RESET_BIT,®); - wan_set_bit(AFT_CTRLRAM_HDLC_RXCH_RESET_BIT,®); - - card->hw_iface.bus_write_4(card->hw, ctrl_ram_reg, reg); - } - } - - aft_free_logical_channel_num(card,chan->logic_ch_num); - aft_free_fifo_baddr_and_size(card,chan); - - for (i=0;iu.aft.num_of_time_slots;i++){ - if (wan_test_bit(i,&chan->time_slot_map)){ - wan_clear_bit(i,&card->u.aft.time_slot_map); - } - } - - if (chan->channelized_cfg && !chan->hdlc_eng){ - card->hw_iface.bus_read_4(card->hw, - AFT_PORT_REG(card,AFT_LINE_CFG_REG),®); - aft_lcfg_tdmv_cnt_dec(®); - card->hw_iface.bus_write_4(card->hw, - AFT_PORT_REG(card,AFT_LINE_CFG_REG),reg); - wan_clear_bit(chan->logic_ch_num,&card->u.aft.tdm_logic_ch_map); - } - - /* Do not clear the logi_ch_num here. - We will do it at the end of del_if_private() funciton */ - } - - return 0; -} - -int a104_check_ec_security(sdla_t *card) -{ - u32 cfg_reg; - u32 security_bit=AFT_CHIPCFG_A104D_EC_SECURITY_BIT; - - if (card->u.aft.firm_id == AFT_DS_FE_CORE_ID/*card->adptr_type == A108_ADPTR_8TE1*/) { - security_bit=AFT_CHIPCFG_A108_EC_SECURITY_BIT; - } - - card->hw_iface.bus_read_4(card->hw,AFT_CHIP_CFG_REG, &cfg_reg); - if (wan_test_bit(security_bit,&cfg_reg)){ - return 1; - } - return 0; -} - - -/*============================================================================ - * Read TE1/56K Front end registers - */ -int __a104_write_fe (void *pcard, ...) -{ - va_list args; - sdla_t *card = (sdla_t*)pcard; - int port_no, org_off, off, value; - u8 qaccess = card->wandev.state == WAN_CONNECTED ? 1 : 0; - - va_start(args, pcard); - port_no = va_arg(args, int); - off = va_arg(args, int); - value = va_arg(args, int); - va_end(args); - - if (card->u.aft.firm_id == AFT_PMC_FE_CORE_ID){ - off &= ~AFT4_BIT_DEV_ADDR_CLEAR; - }else if (card->u.aft.firm_id == AFT_DS_FE_CORE_ID){ - if (off & 0x800) off |= 0x2000; - if (off & 0x1000) off |= 0x4000; - off &= ~AFT8_BIT_DEV_ADDR_CLEAR; - if ((card->adptr_type == A101_ADPTR_2TE1 || - card->adptr_type == A101_ADPTR_1TE1) && - port_no == 1){ - off |= AFT8_BIT_DEV_MAXIM_ADDR_CPLD; - } - } - - card->hw_iface.bus_read_2(card->hw, - AFT_MCPU_INTERFACE_ADDR, - (u16*)&org_off); - - card->hw_iface.bus_write_2(card->hw,AFT_MCPU_INTERFACE_ADDR, (u16)off); - - - /* AF: Sep 10, 2003 - * IMPORTANT - * This delays are required to avoid bridge optimization - * (combining two writes together) - */ - if (!qaccess){ - WP_DELAY(5); - } - - card->hw_iface.bus_write_1(card->hw,AFT_MCPU_INTERFACE, (u8)value); - if (!qaccess){ - WP_DELAY(5); - } - - card->hw_iface.bus_write_2( card->hw, - AFT_MCPU_INTERFACE_ADDR, - (u16)org_off); - - - if (!qaccess){ - WP_DELAY(5); - } - - return 0; -} - -int a104_write_fe (void *pcard, ...) -{ - va_list args; - sdla_t *card = (sdla_t*)pcard; - int port_no, off, value; - - if (card->hw_iface.fe_test_and_set_bit(card->hw,0)){ - if (WAN_NET_RATELIMIT()){ - DEBUG_EVENT( - "%s: %s:%d: Critical Error: Re-entry in FE!\n", - card->devname, - __FUNCTION__,__LINE__); - } - return -EINVAL; - } - - va_start(args, pcard); - port_no = va_arg(args, int); - off = va_arg(args, int); - value = va_arg(args, int); - va_end(args); - - __a104_write_fe(card, port_no, off, value); - - card->hw_iface.fe_clear_bit(card->hw,0); - - return 0; -} - - -/*============================================================================ - * Read TE1/56K Front end registers - */ -unsigned char __a104_read_fe (void *pcard, ...) -{ - va_list args; - sdla_t *card = (sdla_t*)pcard; - int port_no, org_off, off, tmp; - u8 qaccess = card->wandev.state == WAN_CONNECTED ? 1 : 0; - - va_start(args, pcard); - port_no = (int)va_arg(args, int); - off = (int)va_arg(args, int); - va_end(args); - - if (card->u.aft.firm_id == AFT_PMC_FE_CORE_ID){ - off &= ~AFT4_BIT_DEV_ADDR_CLEAR; - }else if (card->u.aft.firm_id == AFT_DS_FE_CORE_ID){ - if (off & 0x0800) off |= 0x2000; - if (off & 0x1000) off |= 0x4000; - off &= ~AFT8_BIT_DEV_ADDR_CLEAR; - if ((card->adptr_type == A101_ADPTR_2TE1 || - card->adptr_type == A101_ADPTR_2TE1) && - port_no == 1){ - off |= AFT8_BIT_DEV_MAXIM_ADDR_CPLD; - } - } - - card->hw_iface.bus_read_2(card->hw, - AFT_MCPU_INTERFACE_ADDR, - (u16*)&org_off); - - card->hw_iface.bus_write_2(card->hw, AFT_MCPU_INTERFACE_ADDR, (u16)off); - - card->hw_iface.bus_read_1(card->hw,AFT_MCPU_INTERFACE, (u8*)&tmp); - if (!qaccess){ - WP_DELAY(5); - } - - card->hw_iface.bus_write_2(card->hw, - AFT_MCPU_INTERFACE_ADDR, - (u16)org_off); - - if (!qaccess){ - WP_DELAY(5); - } - - return (u8)tmp; -} - -unsigned char a104_read_fe (void *pcard, ...) -{ - va_list args; - sdla_t *card = (sdla_t*)pcard; - int port_no, off; - unsigned char tmp; - - - if (card->hw_iface.fe_test_and_set_bit(card->hw,0)){ - if (WAN_NET_RATELIMIT()){ - DEBUG_EVENT("%s: %s:%d: Critical Error: Re-entry in FE!\n", - card->devname, __FUNCTION__,__LINE__); - } - return 0x00; - } - - va_start(args, pcard); - port_no = (int)va_arg(args, int); - off = (int)va_arg(args, int); - va_end(args); - - - tmp = __a104_read_fe(card, port_no, off); - - card->hw_iface.fe_clear_bit(card->hw,0); - return tmp; -} - -/*============================================================================ - * Read/Write 56k Front End registers. Different from TE1!! - */ -unsigned char __a56k_read_fe (void *pcard, ...) -{ - va_list args; - sdla_t *card = (sdla_t*)pcard; - int port_no, off, tmp; - u8 qaccess = card->wandev.state == WAN_CONNECTED ? 1 : 0; - - va_start(args, pcard); - port_no = (int)va_arg(args, int); - off = (int)va_arg(args, int); - va_end(args); - - off &= ~AFT8_BIT_DEV_ADDR_CLEAR; - - card->hw_iface.bus_write_2(card->hw, AFT56K_MCPU_INTERFACE_ADDR, (u16)off); - - card->hw_iface.bus_read_4(card->hw, AFT56K_MCPU_INTERFACE, &tmp); - - if (!qaccess){ - WP_DELAY(5); - } -#if 0 - DEBUG_56K("%s(): port_no: 0x%X, off: 0x%X, cpld_data: 0x%X\n", - __FUNCTION__, port_no, off, tmp); -#endif - return (u8)tmp; -} - -unsigned char a56k_read_fe (void *pcard, ...) -{ - va_list args; - sdla_t *card = (sdla_t*)pcard; - unsigned int port_no, off; - unsigned int cpld_data=0; - - if (card->hw_iface.fe_test_and_set_bit(card->hw,0)){ - if (WAN_NET_RATELIMIT()){ - DEBUG_EVENT("%s: %s:%d: Critical Error: Re-entry in FE!\n", - card->devname, __FUNCTION__,__LINE__); - } - return 0x00; - } - - va_start(args, pcard); - port_no = (int)va_arg(args, int); - off = (int)va_arg(args, int); - va_end(args); - - cpld_data = __a56k_read_fe(card, port_no, off); - - card->hw_iface.fe_clear_bit(card->hw,0); - - return (unsigned char)cpld_data; -} - -int __a56k_write_fe (void *pcard, ...) -{ - va_list args; - sdla_t *card = (sdla_t*)pcard; - int port_no, off, value; - u8 qaccess = card->wandev.state == WAN_CONNECTED ? 1 : 0; - - va_start(args, pcard); - port_no = va_arg(args, int); - off = va_arg(args, int); - value = va_arg(args, int); - va_end(args); - - off &= ~AFT8_BIT_DEV_ADDR_CLEAR; - - card->hw_iface.bus_write_2(card->hw, AFT56K_MCPU_INTERFACE_ADDR, (u16)off); - - card->hw_iface.bus_write_2(card->hw, AFT56K_MCPU_INTERFACE, (u16)value); - if (!qaccess){ - WP_DELAY(5); - } -#if 0 - DEBUG_56K("%s(): port_no: 0x%X, off: 0x%X, value: 0x%X\n", - __FUNCTION__, port_no, off, value); -#endif - return 0; -} - - -int a56k_write_fe (void *pcard, ...) -{ - va_list args; - sdla_t *card = (sdla_t*)pcard; - int port_no, off, value; - - if (card->hw_iface.fe_test_and_set_bit(card->hw,0)){ - if (WAN_NET_RATELIMIT()){ - DEBUG_EVENT( - "%s: %s:%d: Critical Error: Re-entry in FE!\n", - card->devname, - __FUNCTION__,__LINE__); - } - return -EINVAL; - } - - va_start(args, pcard); - port_no = va_arg(args, int); - off = va_arg(args, int); - value = va_arg(args, int); - va_end(args); - - __a56k_write_fe(card, port_no, off, value); - - card->hw_iface.fe_clear_bit(card->hw,0); - - return 0; -} - -/*============================================================================ - * Read/Write 56k CPLD. Different from TE1!! - */ - -int aft_56k_write_cpld(sdla_t *card, unsigned short cpld_off, unsigned char cpld_data) -{ - cpld_off |= AFT56K_BIT_DEV_ADDR_CPLD; -#if 0 - DEBUG_56K("%s(): cpld_off: 0x%X, cpld_data: 0x%X\n", - __FUNCTION__, cpld_off, cpld_data); -#endif - - card->hw_iface.bus_write_2(card->hw, AFT56K_MCPU_INTERFACE_ADDR, cpld_off); - card->hw_iface.bus_write_2(card->hw, AFT56K_MCPU_INTERFACE, cpld_data); - return 0; -} - -unsigned char aft_56k_read_cpld(sdla_t *card, unsigned short cpld_off) -{ - unsigned int cpld_data; - - cpld_off |= AFT56K_BIT_DEV_ADDR_CPLD; - - card->hw_iface.bus_write_2(card->hw, AFT56K_MCPU_INTERFACE_ADDR, cpld_off); - card->hw_iface.bus_read_4(card->hw, AFT56K_MCPU_INTERFACE, &cpld_data); - -#if 0 - DEBUG_56K("%s(): cpld_off: 0x%X, cpld_data: 0x%X\n", - __FUNCTION__, cpld_off, cpld_data); -#endif - - return (unsigned char)cpld_data; -} - -/*============================================================================ - * Read TE1 CPLD. - */ - - - -unsigned char aft_te1_read_cpld(sdla_t *card, unsigned short cpld_off) -{ - u8 tmp; - int err = -EINVAL; - - if (card->hw_iface.fe_test_and_set_bit(card->hw,0)){ - DEBUG_EVENT("%s: %s:%d: Critical Error: Re-entry in FE!\n", - card->devname, __FUNCTION__,__LINE__); - return 0x00; - } - - if (card->hw_iface.read_cpld){ - err = card->hw_iface.read_cpld(card->hw, (u16)cpld_off, &tmp); - } - - card->hw_iface.fe_clear_bit(card->hw,0); - return tmp; -} - - -int aft_te1_write_cpld(sdla_t *card, unsigned short off,unsigned char data) -{ - int err = -EINVAL; - - if (card->hw_iface.fe_test_and_set_bit(card->hw,0)){ - DEBUG_EVENT("%s: %s:%d: Critical Error: Re-entry in FE!\n", - card->devname, __FUNCTION__,__LINE__); - return 0x00; - } - - if (card->hw_iface.write_cpld){ - err = card->hw_iface.write_cpld(card->hw, (u16)off, (u8)data); - } - - card->hw_iface.fe_clear_bit(card->hw,0); - return 0; -} - -unsigned char a108m_read_cpld(sdla_t *card, unsigned short cpld_off) -{ - u16 org_off; - u8 tmp; - - if (card->hw_iface.fe_test_and_set_bit(card->hw,0)){ - DEBUG_EVENT("%s: %s:%d: Critical Error: Re-entry in FE!\n", - card->devname, __FUNCTION__,__LINE__); - return 0x00; - } - cpld_off &= ~AFT8_BIT_DEV_ADDR_CLEAR; - cpld_off |= AFT8_BIT_DEV_MAXIM_ADDR_CPLD; - - /*ALEX: Save the current address. */ - card->hw_iface.bus_read_2(card->hw, - AFT_MCPU_INTERFACE_ADDR, - &org_off); - - card->hw_iface.bus_write_2(card->hw, - AFT_MCPU_INTERFACE_ADDR, - cpld_off); - - card->hw_iface.bus_read_1(card->hw,AFT_MCPU_INTERFACE, &tmp); - - /*ALEX: Restore original address */ - card->hw_iface.bus_write_2(card->hw, - AFT_MCPU_INTERFACE_ADDR, - org_off); - card->hw_iface.fe_clear_bit(card->hw,0); - return tmp; -} - -int a108m_write_cpld(sdla_t *card, unsigned short off,unsigned char data) -{ - u16 org_off; - - if (card->hw_iface.fe_test_and_set_bit(card->hw,0)){ - DEBUG_EVENT("%s: %s:%d: Critical Error: Re-entry in FE!\n", - card->devname, __FUNCTION__,__LINE__); - return 0x00; - } - - off &= ~AFT8_BIT_DEV_ADDR_CLEAR; - off |= AFT8_BIT_DEV_MAXIM_ADDR_CPLD; - - /*ALEX: Save the current original address */ - card->hw_iface.bus_read_2(card->hw, - AFT_MCPU_INTERFACE_ADDR, - &org_off); - - /* This delay is required to avoid bridge optimization - * (combining two writes together)*/ - WP_DELAY(5); - - card->hw_iface.bus_write_2(card->hw, - AFT_MCPU_INTERFACE_ADDR, - off); - - /* This delay is required to avoid bridge optimization - * (combining two writes together)*/ - WP_DELAY(5); - - card->hw_iface.bus_write_1(card->hw, - AFT_MCPU_INTERFACE, - data); - /*ALEX: Restore the original address */ - card->hw_iface.bus_write_2(card->hw, - AFT_MCPU_INTERFACE_ADDR, - org_off); - card->hw_iface.fe_clear_bit(card->hw,0); - return 0; -} - - -void a104_fifo_adjust(sdla_t *card, u32 level) -{ - u32 fifo_size,reg; - card->hw_iface.bus_read_4(card->hw, AFT_FIFO_MARK_REG, &fifo_size); - - aft_fifo_mark_gset(®,(u8)level); - - if (level == 1) { - /* FIXME: This is a kluge. Have fifo adjust for each - fifo size - For 32 bit fifo if level is 1 set it to zero */ - reg&=~(0x1); - } - - if (fifo_size == reg){ - return; - } - - card->hw_iface.bus_write_4(card->hw, AFT_FIFO_MARK_REG, reg); - DEBUG_EVENT("%s: Fifo Level Map:0x%08X\n",card->devname,reg); -} - -#if defined(CONFIG_WANPIPE_HWEC) -static int aft_hwec_reset(void *pcard, int reset) -{ - sdla_t *card = (sdla_t*)pcard; - wan_smp_flag_t smp_flags; - wan_smp_flag_t flags; - int err = -EINVAL; - - card->hw_iface.hw_lock(card->hw,&smp_flags); - wan_spin_lock_irq(&card->wandev.lock,&flags); - if (!reset){ - DEBUG_EVENT("%s: Clear Echo Canceller chip reset.\n", - card->devname); - - if (card->u.aft.firm_id == AFT_DS_FE_CORE_ID) { - aft_te1_write_cpld(card,0x00,0x0F); - }else{ - - if (IS_T1_CARD(card)){ - // aft_te1_write_cpld(card, 0x00, 0x00); - // WP_DELAY(1000); - aft_te1_write_cpld(card, 0x00, 0x01); - }else{ - // aft_te1_write_cpld(card,0x00, 0x02); - // WP_DELAY(1000); - aft_te1_write_cpld(card,0x00, 0x03); - } - } - WP_DELAY(1000); - err = 0; - - }else{ - DEBUG_EVENT("%s: Set Echo Canceller chip reset.\n", - card->devname); - if (card->u.aft.firm_id == AFT_DS_FE_CORE_ID/*card->adptr_type == A108_ADPTR_8TE1*/) { - aft_te1_write_cpld(card,0x00,0x06); - }else{ - - if (IS_T1_CARD(card)){ - aft_te1_write_cpld(card, 0x00, 0x00); - }else{ - aft_te1_write_cpld(card,0x00, 0x02); - } - } - err = 0; - } - wan_spin_unlock_irq(&card->wandev.lock,&flags); - card->hw_iface.hw_unlock(card->hw,&smp_flags); - return err; -} -#endif - -#if defined(CONFIG_WANPIPE_HWEC) -static int aft_hwec_enable(void *pcard, int enable, int channel) -{ - sdla_t *card = (sdla_t*)pcard; - unsigned int value; - - WAN_ASSERT(card == NULL); - if(!wan_test_bit(channel, &card->wandev.ec_enable_map)){ - return -EINVAL; - } - DEBUG_HWEC("[HWEC]: %s: %s bypass mode for channel %d!\n", - card->devname, - (enable) ? "Enable" : "Disable", - channel); - - card->hw_iface.bus_read_4( - card->hw, - AFT_PORT_REG(card,0x1000) + channel * 4, - &value); - if (enable){ - wan_set_bit(channel,&card->wandev.ec_map); - value |= 0x20; - }else{ - wan_clear_bit(channel,&card->wandev.ec_map); - value &= ~0x20; - } - card->hw_iface.bus_write_4( - card->hw, - AFT_PORT_REG(card,0x1000) + channel * 4, - value); - - return 0; -} -#endif diff --git a/patches/kdrivers/src/net/aft_analog.c b/patches/kdrivers/src/net/aft_analog.c index 58bcb78..9c55345 100644 --- a/patches/kdrivers/src/net/aft_analog.c +++ b/patches/kdrivers/src/net/aft_analog.c @@ -340,13 +340,13 @@ int aft_analog_global_chip_config(sdla_t *card) wan_set_bit(AFT_CHIPCFG_SFR_EX_BIT,®); wan_set_bit(AFT_CHIPCFG_SFR_IN_BIT,®); - DEBUG_CFG("--- AFT Chip Reset. -- \n"); - - if (card->fe.fe_cfg.cfg.remora.network_sync) { - DEBUG_EVENT("%s: Analog Clock set to Network Sync!\n", + if (card->fe.fe_cfg.cfg.remora.network_sync) { + DEBUG_EVENT("%s: Analog Clock set to External!\n", card->devname); wan_set_bit(AFT_CHIPCFG_ANALOG_CLOCK_SELECT_BIT,®); - } + } + + DEBUG_CFG("--- AFT Chip Reset. -- \n"); card->hw_iface.bus_write_4(card->hw,AFT_CHIP_CFG_REG,reg); @@ -368,18 +368,21 @@ int aft_analog_global_chip_config(sdla_t *card) DEBUG_EVENT("%s: Global Front End Configuraton!\n",card->devname); err = -EINVAL; - if (card->wandev.fe_iface.config){ err = card->wandev.fe_iface.config(&card->fe); } - if (err){ DEBUG_EVENT("%s: Failed Front End configuration!\n", card->devname); return -EINVAL; - }else{ - DEBUG_EVENT("%s: Remora config done!\n",card->devname); } + /* Run rest of initialization not from lock */ + if (card->wandev.fe_iface.post_init){ + err=card->wandev.fe_iface.post_init(&card->fe); + } + + DEBUG_EVENT("%s: Remora config done!\n",card->devname); + card->hw_iface.bus_write_4(card->hw,AFT_CHIP_CFG_REG,reg); wan_set_bit(AFT_CHIPCFG_FE_INTR_CFG_BIT,®); card->hw_iface.bus_write_4(card->hw,AFT_CHIP_CFG_REG,reg); @@ -606,8 +609,7 @@ int aft_analog_chan_dev_config(sdla_t *card, void *chan_ptr) } /* FE chan config */ - if (chan->common.usedby == TDM_VOICE_API && - card->wandev.fe_iface.if_config){ + if (card->wandev.fe_iface.if_config){ card->wandev.fe_iface.if_config( &card->fe, chan->time_slot_map, @@ -624,8 +626,7 @@ int aft_analog_chan_dev_unconfig(sdla_t *card, void *chan_ptr) volatile int i; /* FE chan unconfig */ - if (chan->common.usedby == TDM_VOICE_API && - card->wandev.fe_iface.if_unconfig){ + if (card->wandev.fe_iface.if_unconfig){ card->wandev.fe_iface.if_unconfig( &card->fe, chan->time_slot_map, @@ -712,7 +713,8 @@ int __aft_analog_write_fe (void* pcard, ...) return -EINVAL; } #endif - DEBUG_FE("%s:%d: Module %d: Write Remora Front-End code (reg %d, value %02X)!\n", + DEBUG_FE( + "%s:%d: Module %d: Write RM FE code (%d:%02X)!\n", __FUNCTION__,__LINE__, mod_no, reg, (u8)value); @@ -832,7 +834,7 @@ int __aft_analog_write_fe (void* pcard, ...) } if (data & MOD_SPI_BUSY) { - DEBUG_EVENT("%s: Module %d: Critical Error (%s:%d)!\n", + DEBUG_EVENT("%s: Module %d: Internal Error: SPI busy (%s:%d)!\n", card->devname, mod_no, __FUNCTION__,__LINE__); return -EINVAL; @@ -908,9 +910,10 @@ unsigned char __aft_analog_read_fe (void* pcard, ...) return 0x00; } #endif - DEBUG_FE("%s:%d: %s: Module %d: Read Remora Front-End code (reg %d)!\n", + DEBUG_FE( + "%s:%d: Module %d: Read RM FE code (%d)!\n", __FUNCTION__,__LINE__, - card->devname, mod_no, reg); + mod_no, reg); /* bit 0-7: data byte */ data = 0x00; @@ -1026,7 +1029,7 @@ unsigned char __aft_analog_read_fe (void* pcard, ...) } if (data & MOD_SPI_BUSY){ - DEBUG_EVENT("%s: Module %d: Critical Error (%s:%d)!\n", + DEBUG_EVENT("%s: Module %d: Internal Error: SPI busy (%s:%d)!\n", card->devname, mod_no, __FUNCTION__,__LINE__); return 0xFF; @@ -1109,7 +1112,7 @@ unsigned char aft_analog_read_cpld(sdla_t *card, unsigned short cpld_off) return tmp; } -int aft_analog_write_cpld(sdla_t *card, unsigned short off,unsigned char data) +int aft_analog_write_cpld(sdla_t *card, unsigned short off,u_int16_t data) { u16 org_off; @@ -1140,7 +1143,7 @@ int aft_analog_write_cpld(sdla_t *card, unsigned short off,unsigned char data) card->hw_iface.bus_write_1(card->hw, AFT_MCPU_INTERFACE, - data); + (u8)data); /*ALEX: Restore the original address */ card->hw_iface.bus_write_2(card->hw, AFT_MCPU_INTERFACE_ADDR, @@ -1193,8 +1196,6 @@ static int aft_analog_hwec_enable(void *pcard, int enable, int channel) WAN_ASSERT(card == NULL); if(!wan_test_bit(channel, &card->wandev.ec_enable_map)){ - DEBUG_EVENT("%s: Error: Channel %i not in analog hwec map!\n", - card->devname,channel); return -EINVAL; } @@ -1202,29 +1203,13 @@ static int aft_analog_hwec_enable(void *pcard, int enable, int channel) card->hw, AFT_REMORA_MUX_TS_EC_ENABLE, &value); - if (enable){ - if (!wan_test_and_set_bit(channel,&card->wandev.ec_map)) { - value |= (1 << channel); - } else { - DEBUG_EVENT("[HWEC]: %s: %s bypass mode overrun detected for channel %d!\n", - card->devname, - (enable) ? "Enable" : "Disable", - channel); - return 0; - } - } else { - if (wan_test_and_clear_bit(channel,&card->wandev.ec_map)) { - value &= ~(1 << channel); - } else { - DEBUG_EVENT("[HWEC]: %s: %s bypass mode overrun detected for channel %d!\n", - card->devname, - (enable) ? "Enable" : "Disable", - channel); - return 0; - } - } - + wan_set_bit(channel,&card->wandev.ec_map); + value |= (1 << channel); + }else{ + wan_clear_bit(channel,&card->wandev.ec_map); + value &= ~(1 << channel); + } card->hw_iface.bus_write_4( card->hw, AFT_REMORA_MUX_TS_EC_ENABLE, diff --git a/patches/kdrivers/src/net/aft_analog.c~ b/patches/kdrivers/src/net/aft_analog.c~ deleted file mode 100644 index ca1d513..0000000 --- a/patches/kdrivers/src/net/aft_analog.c~ +++ /dev/null @@ -1,1242 +0,0 @@ -/***************************************************************************** -* aft_aft_analog.c -* -* WANPIPE(tm) AFT A104 Hardware Support -* -* Authors: Nenad Corbic -* -* Copyright: (c) 2003-2005 Sangoma Technologies 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 of the License, or (at your option) any later version. -* ============================================================================ -* Sep 25, 2005 Nenad Corbic Initial Version -*****************************************************************************/ - -#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) -# include -# include -# include -# include /* Socket Driver common area */ -# include -# include -# include -# include -#elif defined(__WINDOWS__) -# include -# include -# include -# include -# include /* Socket Driver common area */ -# include -//# include -# include -# include -# include -# include - -//#define DEBUG_FE DbgPrint -#define DEBUG_FE - -#else -# include -# include -# include -# include -# include -# include /* Socket Driver common area */ -# include -# include -//# include -# include -# include -# include -# include -#endif - -/*============================================== - * PRIVATE FUNCITONS - * - */ -#if defined(CONFIG_WANPIPE_HWEC) -static int aft_analog_hwec_reset(void *pcard, int reset); -static int aft_analog_hwec_enable(void *pcard, int enable, int channel); -#endif - -static int aft_map_fifo_baddr_and_size(sdla_t *card, unsigned char fifo_size, unsigned char *addr); - -static char fifo_size_vector[] = {1, 2, 4, 8, 16, 32}; -static char fifo_code_vector[] = {0, 1, 3, 7,0xF,0x1F}; - -static int request_fifo_baddr_and_size(sdla_t *card, private_area_t *chan) -{ - unsigned char req_fifo_size,fifo_size; - int i; - - /* Calculate the optimal fifo size based - * on the number of time slots requested */ - - req_fifo_size = 1; - - DEBUG_TEST("%s:%s: Optimal Fifo Size =%d Timeslots=%d \n", - card->devname,chan->if_name,req_fifo_size,chan->num_of_time_slots); - - fifo_size=(unsigned char)aft_map_fifo_baddr_and_size(card,req_fifo_size,&chan->fifo_base_addr); - if (fifo_size == 0 || chan->fifo_base_addr == 31){ - DEBUG_EVENT("%s:%s: Error: Failed to obtain fifo size %d or addr %d \n", - card->devname,chan->if_name,fifo_size,chan->fifo_base_addr); - return -EINVAL; - } - - DEBUG_TEST("%s:%s: Optimal Fifo Size =%d Timeslots=%d New Fifo Size=%d \n", - card->devname,chan->if_name,req_fifo_size,chan->num_of_time_slots,fifo_size); - - - for (i=0;ififo_size_code=fifo_code_vector[i]; - break; - } - } - - if (fifo_size != req_fifo_size){ - DEBUG_EVENT("%s:%s: Warning: Failed to obtain the req fifo %d got %d\n", - card->devname,chan->if_name,req_fifo_size,fifo_size); - } - - DEBUG_TEST("%s: %s:Fifo Size=%d Timeslots=%d Fifo Code=%d Addr=%d\n", - card->devname,chan->if_name,fifo_size, - chan->num_of_time_slots,chan->fifo_size_code, - chan->fifo_base_addr); - - chan->fifo_size = fifo_size; - - return 0; -} - - -static int aft_map_fifo_baddr_and_size(sdla_t *card, unsigned char fifo_size, unsigned char *addr) -{ - u32 reg=0; - u8 i; - - for (i=0;idevname,reg,card->u.aft.fifo_addr_map); - - for (i=0;i<32;i+=fifo_size){ - if (card->u.aft.fifo_addr_map & (reg<u.aft.fifo_addr_map |= reg<devname,card->u.aft.fifo_addr_map,i); - - return fifo_size; - } - - if (fifo_size == 1){ - return 0; - } - - fifo_size = fifo_size >> 1; - - return aft_map_fifo_baddr_and_size(card,fifo_size,addr); -} - - -static int aft_free_fifo_baddr_and_size (sdla_t *card, private_area_t *chan) -{ - u32 reg=0; - int i; - - for (i=0;ififo_size;i++){ - wan_set_bit(i,®); - } - - DEBUG_TEST("%s: Unmapping 0x%X from 0x%lX\n", - card->devname,reg<fifo_base_addr, card->u.aft.fifo_addr_map); - - card->u.aft.fifo_addr_map &= ~(reg<fifo_base_addr); - - DEBUG_TEST("%s: New Map is 0x%lX\n", - card->devname, card->u.aft.fifo_addr_map); - - - chan->fifo_size=0; - chan->fifo_base_addr=0; - - return 0; -} - - -static char aft_request_logical_channel_num (sdla_t *card, private_area_t *chan) -{ - signed char logic_ch=-1; - int err; - long i; - int timeslots=0; - - DEBUG_TEST("-- Request_Xilinx_logic_channel_num:--\n"); - - DEBUG_TEST("%s:%d Global Num Timeslots=%d Global Logic ch Map 0x%lX \n", - __FUNCTION__,__LINE__, - card->u.aft.num_of_time_slots, - card->u.aft.logic_ch_map); - - - /* Check that the time slot is not being used. If it is - * stop the interface setup. Notice, though we proceed - * to check for all timeslots before we start binding - * the channels in. This way, we don't have to go back - * and clean the time_slot_map */ - for (i=0;iu.aft.num_of_time_slots;i++){ - if (wan_test_bit(i,&chan->time_slot_map)){ - - if (chan->first_time_slot == -1){ - DEBUG_EVENT("%s: First TSlot :%ld\n", - card->devname,i); - chan->first_time_slot=i; - } - - chan->last_time_slot=i; - - DEBUG_CFG("%s: Configuring %s for timeslot %ld\n", - card->devname, chan->if_name,i+1); - - if (wan_test_bit(i,&card->u.aft.time_slot_map)){ - DEBUG_EVENT("%s: Channel/Time Slot resource conflict!\n", - card->devname); - DEBUG_EVENT("%s: %s: Channel/Time Slot %ld, aready in use!\n", - card->devname,chan->if_name,(i+1)); - - return -EEXIST; - } - timeslots++; - } - } - - if (timeslots > 1){ - DEBUG_EVENT("%s: Error: Analog Interface can only support a single timeslot\n", - card->devname); - chan->first_time_slot = -1; - return -1; - } - - - err=request_fifo_baddr_and_size(card,chan); - if (err){ - return -1; - } - - logic_ch = (signed char)chan->first_time_slot; - - if (wan_test_and_set_bit(logic_ch,&card->u.aft.logic_ch_map)){ - return -1; - } - - if (logic_ch == -1){ - return logic_ch; - } - - for (i=0;iu.aft.num_of_time_slots;i++){ - if (!wan_test_bit(i,&card->u.aft.logic_ch_map)){ - break; - } - } - - if (card->u.aft.dev_to_ch_map[(unsigned char)logic_ch]){ - DEBUG_EVENT("%s: Error, request logical ch=%d map busy\n", - card->devname,logic_ch); - return -1; - } - - card->u.aft.dev_to_ch_map[(unsigned char)logic_ch]=(void*)chan; - - if (logic_ch >= card->u.aft.top_logic_ch){ - card->u.aft.top_logic_ch=logic_ch; - aft_dma_max_logic_ch(card); - } - - - DEBUG_TEST("Binding logic ch %d Ptr=%p\n",logic_ch,chan); - return logic_ch; -} - - - -/*============================================== - * PUBLIC FUNCITONS - * - */ - -int aft_analog_test_sync(sdla_t *card, int tx_only) -{ - volatile int i,err=1; - u32 reg; - - card->hw_iface.bus_read_4(card->hw,AFT_PORT_REG(card,AFT_LINE_CFG_REG), ®); - - if (wan_test_bit(AFT_LCFG_FE_IFACE_RESET_BIT,®)){ - DEBUG_EVENT("%s: Warning: Analog Reset Enabled %d! \n", - card->devname, card->wandev.comm_port+1); - } - - - for (i=0;i<500;i++){ - - card->hw_iface.bus_read_4(card->hw,AFT_PORT_REG(card,AFT_LINE_CFG_REG), ®); - if (tx_only){ - if (wan_test_bit(AFT_LCFG_TX_FE_SYNC_STAT_BIT,®)){ - err=-1; - WP_DELAY(200); - }else{ - err=0; - break; - } - }else{ - if (wan_test_bit(AFT_LCFG_TX_FE_SYNC_STAT_BIT,®) || - wan_test_bit(AFT_LCFG_RX_FE_SYNC_STAT_BIT,®)){ - err=-1; - WP_DELAY(200); - }else{ - err=0; - break; - } - } - } - - DEBUG_TEST("%s: DELAY INDEX = %i\n", - card->devname,i); - - return err; -} - -int aft_analog_led_ctrl(sdla_t *card, int color, int led_pos, int on) -{ - - /* NO LED ON ANALOG CARD */ - return 0; -} - - -int aft_analog_global_chip_config(sdla_t *card) -{ - u32 reg; - int err; - - /*============ GLOBAL CHIP CONFIGURATION ===============*/ - card->hw_iface.bus_read_4(card->hw,AFT_CHIP_CFG_REG, ®); - - /* Enable the chip/hdlc reset condition */ - reg=0; - wan_set_bit(AFT_CHIPCFG_SFR_EX_BIT,®); - wan_set_bit(AFT_CHIPCFG_SFR_IN_BIT,®); - - DEBUG_CFG("--- AFT Chip Reset. -- \n"); - - if (card->fe.fe_cfg.cfg.remora.network_sync) { - DEBUG_EVENT("%s: Analog Clock set to Network Sync!\n", - card->devname); - wan_set_bit(AFT_CHIPCFG_ANALOG_CLOCK_SELECT_BIT,®); - } - - card->hw_iface.bus_write_4(card->hw,AFT_CHIP_CFG_REG,reg); - - WP_DELAY(10); - - /* Disable the chip/hdlc reset condition */ - wan_clear_bit(AFT_CHIPCFG_SFR_EX_BIT,®); - wan_clear_bit(AFT_CHIPCFG_SFR_IN_BIT,®); - wan_clear_bit(AFT_CHIPCFG_FE_INTR_CFG_BIT,®); -#if 0 - wan_set_bit(AFT_CHIPCFG_SPI_SLOW_BIT,®); -#endif - DEBUG_CFG("--- Chip enable/config. -- \n"); - - card->hw_iface.bus_write_4(card->hw,AFT_CHIP_CFG_REG,reg); - - /* Set Octasic reset */ - aft_analog_write_cpld(card, 0x00, 0x00); - - DEBUG_EVENT("%s: Global Front End Configuraton!\n",card->devname); - err = -EINVAL; - - if (card->wandev.fe_iface.config){ - err = card->wandev.fe_iface.config(&card->fe); - } - - if (err){ - DEBUG_EVENT("%s: Failed Front End configuration!\n", - card->devname); - return -EINVAL; - }else{ - DEBUG_EVENT("%s: Remora config done!\n",card->devname); - } - card->hw_iface.bus_write_4(card->hw,AFT_CHIP_CFG_REG,reg); - wan_set_bit(AFT_CHIPCFG_FE_INTR_CFG_BIT,®); - card->hw_iface.bus_write_4(card->hw,AFT_CHIP_CFG_REG,reg); - - return 0; -} - -int aft_analog_global_chip_unconfig(sdla_t *card) -{ - u32 reg=0; - - if (card->wandev.fe_iface.unconfig){ - card->wandev.fe_iface.unconfig(&card->fe); - } - - /* Set Octasic to reset */ -#if 0 - aft_analog_write_cpld(card, 0x00, 0x00); -#endif - /* Disable the chip/hdlc reset condition */ - wan_set_bit(AFT_CHIPCFG_SFR_EX_BIT,®); - wan_set_bit(AFT_CHIPCFG_SFR_IN_BIT,®); - - card->hw_iface.bus_write_4(card->hw,AFT_CHIP_CFG_REG,reg); - - return 0; -} - -int aft_analog_chip_config(sdla_t *card) -{ - u32 reg=0; - int err=0; - - card->hw_iface.bus_read_4(card->hw,AFT_PORT_REG(card,AFT_LINE_CFG_REG), ®); - if (!wan_test_bit(AFT_LCFG_FE_IFACE_RESET_BIT,®)){ - DEBUG_EVENT("%s: Error: Physical Port %i is busy! \n", - card->devname, card->wandev.comm_port+1); - return -EBUSY; - } - - - /*============ LINE/PORT CONFIG REGISTER ===============*/ - - card->hw_iface.bus_read_4(card->hw, - AFT_PORT_REG(card,AFT_LINE_CFG_REG),®); - wan_set_bit(AFT_LCFG_FE_IFACE_RESET_BIT,®); - card->hw_iface.bus_write_4(card->hw,AFT_PORT_REG(card,AFT_LINE_CFG_REG),reg); - - WP_DELAY(10); - - wan_clear_bit(AFT_LCFG_FE_IFACE_RESET_BIT,®); - card->hw_iface.bus_write_4(card->hw,AFT_PORT_REG(card,AFT_LINE_CFG_REG),reg); - - WP_DELAY(10); - - err=aft_analog_test_sync(card,1); - - card->hw_iface.bus_read_4(card->hw,AFT_PORT_REG(card,AFT_LINE_CFG_REG),®); - if (err != 0){ - DEBUG_EVENT("%s: Error: Front End Interface Not Ready (0x%08X)!\n", - card->devname,reg); - return err; - } else{ - DEBUG_EVENT("%s: Front End Interface Ready 0x%08X\n", - card->devname,reg); - } - - /* Enable Octasic Chip */ - if (card->adptr_subtype == AFT_SUBTYPE_SHARK){ - u16 max_ec_chans; - u32 cfg_reg; - - card->hw_iface.getcfg(card->hw, SDLA_HWEC_NO, &max_ec_chans); - - card->hw_iface.bus_read_4(card->hw,AFT_CHIP_CFG_REG, &cfg_reg); - if (max_ec_chans > aft_chipcfg_get_a200_ec_channels(cfg_reg)){ - DEBUG_EVENT( - "%s: Critical Error: Exceeded Maximum Available Echo Channels!\n", - card->devname); - DEBUG_EVENT( - "%s: Critical Error: Max Allowed=%d Configured=%d (%X)\n", - card->devname, - aft_chipcfg_get_a200_ec_channels(cfg_reg), - max_ec_chans, - cfg_reg); - return -EINVAL; - } - - if (max_ec_chans){ -#if defined(CONFIG_WANPIPE_HWEC) - card->wandev.ec_dev = wanpipe_ec_register(card, max_ec_chans); - card->wandev.hwec_reset = aft_analog_hwec_reset; - card->wandev.hwec_enable = aft_analog_hwec_enable; -#else - DEBUG_EVENT("%s: Wanpipe HW Echo Canceller modele is not compiled!\n", - card->devname); -#endif - }else{ - DEBUG_EVENT( - "%s: WARNING: No Echo Canceller channels are available!\n", - card->devname); - } - } - -#if defined(__WINDOWS__) - /*connect to interrupt line and only AFTER THAT enable device's interrupts.*/ - if(connect_to_interrupt_line(card)){ - return 1; - } - /*at this point we can handle front end interrupts*/ - card->init_flag = 0; -#endif - - /* Enable only Front End Interrupt - * Wait for front end to come up before enabling DMA */ - card->hw_iface.bus_read_4(card->hw,AFT_PORT_REG(card,AFT_LINE_CFG_REG), ®); - wan_clear_bit(AFT_LCFG_DMA_INTR_BIT,®); - wan_clear_bit(AFT_LCFG_FIFO_INTR_BIT,®); - wan_clear_bit(AFT_LCFG_TDMV_INTR_BIT,®); - - card->hw_iface.bus_write_4(card->hw,AFT_PORT_REG(card,AFT_LINE_CFG_REG), reg); - card->u.aft.lcfg_reg=reg; - - aft_analog_led_ctrl(card, WAN_AFT_RED, 0,WAN_AFT_ON); - aft_analog_led_ctrl(card, WAN_AFT_GREEN, 0, WAN_AFT_OFF); - - - /*============ DMA CONTROL REGISTER ===============*/ - - /* Disable Global DMA because we will be - * waiting for the front end to come up */ - reg=0; - aft_dmactrl_set_max_logic_ch(®,0); - wan_clear_bit(AFT_DMACTRL_GLOBAL_INTR_BIT,®); - card->hw_iface.bus_write_4(card->hw,AFT_PORT_REG(card,AFT_DMA_CTRL_REG),reg); - - - - - /*============ ENABLE MUX ==================*/ - - reg=0; /* 0xFFFFFFFF; */ - card->hw_iface.bus_write_4(card->hw,AFT_ANALOG_DATA_MUX_CTRL_REG,reg); - - - aft_wdt_reset(card); -#if 0 -/*FIXME: NC Dont need watchdog */ - aft_wdt_set(card,AFT_WDTCTRL_TIMEOUT); -#endif - - return 0; -} - -int aft_analog_chip_unconfig(sdla_t *card) -{ - u32 reg=0; - - aft_wdt_reset(card); - - /* Disable Octasic Chip */ - if (card->adptr_subtype == AFT_SUBTYPE_SHARK){ - if (card->wandev.ec_dev){ -#if defined(CONFIG_WANPIPE_HWEC) - wanpipe_ec_unregister(card->wandev.ec_dev, card); -#else - DEBUG_EVENT( - "%s: Wanpipe HW Echo Canceller modele is not compiled!\n", - card->devname); -#endif - } - card->wandev.hwec_enable = NULL; - card->wandev.ec_dev = NULL; - } - - wan_set_bit(AFT_LCFG_FE_IFACE_RESET_BIT,®); - card->hw_iface.bus_write_4(card->hw,AFT_PORT_REG(card,AFT_LINE_CFG_REG),reg); - - return 0; -} - -int aft_analog_chan_dev_config(sdla_t *card, void *chan_ptr) -{ - u32 reg; - private_area_t *chan = (private_area_t*)chan_ptr; - u32 dma_ram_reg; - - - chan->logic_ch_num=aft_request_logical_channel_num(card, chan); - if (chan->logic_ch_num == -1){ - return -EBUSY; - } - - dma_ram_reg=AFT_PORT_REG(card,AFT_DMA_CHAIN_RAM_BASE_REG); - dma_ram_reg+=(chan->logic_ch_num*4); - - reg=0; - card->hw_iface.bus_write_4(card->hw, dma_ram_reg, reg); - - card->hw_iface.bus_read_4(card->hw, dma_ram_reg, ®); - - aft_dmachain_set_fifo_size(®, chan->fifo_size_code); - aft_dmachain_set_fifo_base(®, chan->fifo_base_addr); - - /* Initially always disable rx synchronization */ - wan_clear_bit(AFT_DMACHAIN_RX_SYNC_BIT,®); - - if (chan->channelized_cfg && !chan->hdlc_eng){ - aft_dmachain_enable_tdmv_and_mtu_size(®,chan->mru); - } - - card->hw_iface.bus_write_4(card->hw, dma_ram_reg, reg); - - reg=0; - - if (chan->channelized_cfg && !chan->hdlc_eng){ - - card->hw_iface.bus_read_4(card->hw,AFT_PORT_REG(card,AFT_LINE_CFG_REG),®); - aft_lcfg_tdmv_cnt_inc(®); - - card->hw_iface.bus_write_4(card->hw,AFT_PORT_REG(card,AFT_LINE_CFG_REG),reg); - card->u.aft.lcfg_reg=reg; - wan_set_bit(chan->logic_ch_num,&card->u.aft.tdm_logic_ch_map); - } - - /* FE chan config */ - if (chan->common.usedby == TDM_VOICE_API && - card->wandev.fe_iface.if_config){ - card->wandev.fe_iface.if_config( - &card->fe, - chan->time_slot_map, - chan->common.usedby); - } - - return 0; -} - -int aft_analog_chan_dev_unconfig(sdla_t *card, void *chan_ptr) -{ - private_area_t *chan = (private_area_t *)chan_ptr; - u32 dma_ram_reg,reg; - volatile int i; - - /* FE chan unconfig */ - if (chan->common.usedby == TDM_VOICE_API && - card->wandev.fe_iface.if_unconfig){ - card->wandev.fe_iface.if_unconfig( - &card->fe, - chan->time_slot_map, - chan->common.usedby); - } - - /* Select an HDLC logic channel for configuration */ - if (chan->logic_ch_num != -1){ - - dma_ram_reg=AFT_PORT_REG(card,AFT_DMA_CHAIN_RAM_BASE_REG); - dma_ram_reg+=(chan->logic_ch_num*4); - - card->hw_iface.bus_read_4(card->hw, dma_ram_reg, ®); - - aft_dmachain_set_fifo_base(®,0x1F); - aft_dmachain_set_fifo_size(®,0); - card->hw_iface.bus_write_4(card->hw, dma_ram_reg, reg); - - - aft_free_logical_channel_num(card,chan->logic_ch_num); - aft_free_fifo_baddr_and_size(card,chan); - - for (i=0;iu.aft.num_of_time_slots;i++){ - if (wan_test_bit(i,&chan->time_slot_map)){ - wan_clear_bit(i,&card->u.aft.time_slot_map); - } - } - - if (chan->channelized_cfg && !chan->hdlc_eng){ - card->hw_iface.bus_read_4(card->hw, - AFT_PORT_REG(card,AFT_LINE_CFG_REG),®); - aft_lcfg_tdmv_cnt_dec(®); - card->hw_iface.bus_write_4(card->hw, - AFT_PORT_REG(card,AFT_LINE_CFG_REG),reg); - wan_clear_bit(chan->logic_ch_num,&card->u.aft.tdm_logic_ch_map); - } - - /* Do not clear the logi_ch_num here. - We will do it at the end of del_if_private() funciton */ - } - - return 0; -} - -int a200_check_ec_security(sdla_t *card) -{ - u32 cfg_reg; - - card->hw_iface.bus_read_4(card->hw,AFT_CHIP_CFG_REG, &cfg_reg); - if (wan_test_bit(AFT_CHIPCFG_A200_EC_SECURITY_BIT,&cfg_reg)){ - return 1; - } - return 0; -} - -/*============================================================================ - * Read TE1/56K Front end registers - */ -int __aft_analog_write_fe (void* pcard, ...) -{ - va_list args; - sdla_t *card = (sdla_t*)pcard; - int mod_no, type, chain; - int reg, value; - u32 data = 0; - unsigned char cs = 0x00, ctrl_byte = 0x00; - int i; - - WAN_ASSERT(card == NULL); - WAN_ASSERT(card->hw_iface.bus_write_4 == NULL); - WAN_ASSERT(card->hw_iface.bus_read_4 == NULL); - - va_start(args, pcard); - mod_no = va_arg(args, int); - type = va_arg(args, int); - chain = va_arg(args, int); - reg = va_arg(args, int); - value = va_arg(args, int); - va_end(args); -#if 0 - if (!wan_test_bit(mod_no, card->fe.fe_param.remora.module_map)){ - DEBUG_EVENT("%s: %s:%d: Internal Error: Module %d\n", - card->devname, __FUNCTION__,__LINE__,mod_no); - return -EINVAL; - } -#endif - DEBUG_FE("%s:%d: Module %d: Write Remora Front-End code (reg %d, value %02X)!\n", - __FUNCTION__,__LINE__, - mod_no, reg, (u8)value); - - /* bit 0-7: data byte */ - data = value & 0xFF; - if (type == MOD_TYPE_FXO){ - - /* bit 8-15: register number */ - data |= (reg & 0xFF) << 8; - - /* bit 16-23: chip select byte - ** bit 16 - ** - ** - ** */ - cs = 0x20; - cs |= MOD_SPI_CS_FXO_WRITE; - if (mod_no % 2 == 0){ - /* Select second chip in a chain */ - cs |= MOD_SPI_CS_FXO_CHIP_1; - } - data |= (cs & 0xFF) << 16; - - /* bit 24-31: ctrl byte - ** bit 24 - ** - ** - ** */ - ctrl_byte = mod_no / 2; -#if !defined(SPI2STEP) - if (card->u.aft.firm_ver > 3){ - ctrl_byte |= MOD_SPI_CTRL_START; - }else{ - ctrl_byte |= MOD_SPI_CTRL_V3_START; - } -#endif - ctrl_byte |= MOD_SPI_CTRL_CHAIN; /* always chain */ - data |= ctrl_byte << 24; - - }else if (type == MOD_TYPE_FXS){ - - /* bit 8-15: register byte */ - reg = reg & 0x7F; - reg |= MOD_SPI_ADDR_FXS_WRITE; - data |= (reg & 0xFF) << 8; - - /* bit 16-23: chip select byte - ** bit 16 - ** - ** - ** */ - if (mod_no % 2){ - /* Select first chip in a chain */ - cs = MOD_SPI_CS_FXS_CHIP_0; - }else{ - /* Select second chip in a chain */ - cs = MOD_SPI_CS_FXS_CHIP_1; - } - data |= cs << 16; - - /* bit 24-31: ctrl byte - ** bit 24 - ** - ** - ** */ - ctrl_byte = mod_no / 2; -#if !defined(SPI2STEP) - if (card->u.aft.firm_ver > 3){ - ctrl_byte |= MOD_SPI_CTRL_START; - }else{ - ctrl_byte |= MOD_SPI_CTRL_V3_START; - } -#endif - ctrl_byte |= MOD_SPI_CTRL_FXS; - if (chain){ - ctrl_byte |= MOD_SPI_CTRL_CHAIN; - } - data |= ctrl_byte << 24; - - }else{ - DEBUG_EVENT("%s: Module %d: Unsupported module type %d!\n", - card->devname, mod_no, type); - return -EINVAL; - } - - card->hw_iface.bus_write_4( card->hw, - SPI_INTERFACE_REG, - data); -#if defined(SPI2STEP) - WP_DELAY(1); - if (card->u.aft.firm_ver > 3){ - data |= MOD_SPI_START; - }else{ - data |= MOD_SPI_V3_START; - } - card->hw_iface.bus_write_4( card->hw, - SPI_INTERFACE_REG, - data); -#endif -#if 0 - DEBUG_EVENT("%s: %s: Module %d - Execute SPI command %08X\n", - card->fe.name, - __FUNCTION__, - mod_no, - data); -#endif - - for (i=0;i<10;i++){ - WP_DELAY(10); - card->hw_iface.bus_read_4( card->hw, - SPI_INTERFACE_REG, - &data); - - if (data & MOD_SPI_BUSY){ - continue; - } - } - - if (data & MOD_SPI_BUSY) { - DEBUG_EVENT("%s: Module %d: Critical Error (%s:%d)!\n", - card->devname, mod_no, - __FUNCTION__,__LINE__); - return -EINVAL; - } - return 0; -} -int aft_analog_write_fe (void* pcard, ...) -{ - va_list args; - sdla_t *card = (sdla_t*)pcard; - int mod_no, type, chain, reg, value; -#if defined(WAN_DEBUG_FE) - char *fname; - int fline; -#endif - - WAN_ASSERT(card == NULL); - WAN_ASSERT(card->hw_iface.bus_write_4 == NULL); - WAN_ASSERT(card->hw_iface.bus_read_4 == NULL); - - va_start(args, pcard); - mod_no = va_arg(args, int); - type = va_arg(args, int); - chain = va_arg(args, int); - reg = va_arg(args, int); - value = va_arg(args, int); -#if defined(WAN_DEBUG_FE) - fname = va_arg(args, char*); - fline = va_arg(args, int); -#endif - va_end(args); - - if (card->hw_iface.fe_test_and_set_bit(card->hw,0)){ -#if defined(WAN_DEBUG_FE) - DEBUG_EVENT("%s: %s:%d: Critical Error: Re-entry in FE (%s:%d)!\n", - card->devname, __FUNCTION__,__LINE__, fname, fline); -#else - DEBUG_EVENT("%s: %s:%d: Critical Error: Re-entry in FE!\n", - card->devname, __FUNCTION__,__LINE__); -#endif - return -EINVAL; - } - - __aft_analog_write_fe(card, mod_no, type, chain, reg, value); - - card->hw_iface.fe_clear_bit(card->hw,0); - return 0; -} - -unsigned char __aft_analog_read_fe (void* pcard, ...) -{ - va_list args; - sdla_t *card = (sdla_t*)pcard; - int mod_no, type, chain, reg; - u32 data = 0; - unsigned char cs = 0x00, ctrl_byte = 0x00; - int i; - - WAN_ASSERT(card == NULL); - WAN_ASSERT(card->hw_iface.bus_write_4 == NULL); - WAN_ASSERT(card->hw_iface.bus_read_4 == NULL); - - va_start(args, pcard); - mod_no = va_arg(args, int); - type = va_arg(args, int); - chain = va_arg(args, int); - reg = va_arg(args, int); - va_end(args); -#if 0 - if (!wan_test_bit(mod_no, card->fe.fe_param.remora.module_map)){ - DEBUG_EVENT("%s: %s:%d: Internal Error: Module %d\n", - card->devname, __FUNCTION__,__LINE__,mod_no); - return 0x00; - } -#endif - DEBUG_FE("%s:%d: %s: Module %d: Read Remora Front-End code (reg %d)!\n", - __FUNCTION__,__LINE__, - card->devname, mod_no, reg); - - /* bit 0-7: data byte */ - data = 0x00; - if (type == MOD_TYPE_FXO){ - - /* bit 8-15: register byte */ - data |= (reg & 0xFF) << 8; - - /* bit 16-23: chip select byte - ** bit 16 - ** - ** - ** */ - cs = 0x20; - cs |= MOD_SPI_CS_FXO_READ; - if (mod_no % 2 == 0){ - /* Select second chip in a chain */ - cs |= MOD_SPI_CS_FXO_CHIP_1; - } - data |= (cs & 0xFF) << 16; - - /* bit 24-31: ctrl byte - ** bit 24 - ** - ** - ** */ - ctrl_byte = mod_no / 2; -#if !defined(SPI2STEP) - if (card->u.aft.firm_ver > 3){ - ctrl_byte |= MOD_SPI_CTRL_START; - }else{ - ctrl_byte |= MOD_SPI_CTRL_V3_START; - } -#endif - ctrl_byte |= MOD_SPI_CTRL_CHAIN; /* always chain */ - data |= ctrl_byte << 24; - - }else if (type == MOD_TYPE_FXS){ - - /* bit 8-15: register byte */ - reg = reg & 0x7F; - reg |= MOD_SPI_ADDR_FXS_READ; - data |= (reg & 0xFF) << 8; - - /* bit 16-23: chip select byte - ** bit 16 - ** - ** - ** */ - if (mod_no % 2){ - /* Select first chip in a chain */ - cs = MOD_SPI_CS_FXS_CHIP_0; - }else{ - /* Select second chip in a chain */ - cs = MOD_SPI_CS_FXS_CHIP_1; - } - data |= cs << 16; - - /* bit 24-31: ctrl byte - ** bit 24 - ** - ** - ** */ - ctrl_byte = mod_no / 2; -#if !defined(SPI2STEP) - if (card->u.aft.firm_ver > 3){ - ctrl_byte |= MOD_SPI_CTRL_START; - }else{ - ctrl_byte |= MOD_SPI_CTRL_V3_START; - } -#endif - ctrl_byte |= MOD_SPI_CTRL_FXS; - if (chain){ - ctrl_byte |= MOD_SPI_CTRL_CHAIN; - } - data |= ctrl_byte << 24; - - }else{ - DEBUG_EVENT("%s: Module %d: Unsupported module type %d!\n", - card->devname, mod_no, type); - return -EINVAL; - } - - card->hw_iface.bus_write_4( card->hw, - SPI_INTERFACE_REG, - data); -#if defined(SPI2STEP) - WP_DELAY(1); - if (card->u.aft.firm_ver > 3){ - data |= MOD_SPI_START; - }else{ - data |= MOD_SPI_V3_START; - } - card->hw_iface.bus_write_4( card->hw, - SPI_INTERFACE_REG, - data); -#endif -#if 0 - DEBUG_EVENT("%s: %s: Module %d - Execute SPI command %08X\n", - card->fe.name, - __FUNCTION__, - mod_no, - data); -#endif - for (i=0;i<10;i++){ - WP_DELAY(10); - card->hw_iface.bus_read_4( card->hw, - SPI_INTERFACE_REG, - &data); - if (data & MOD_SPI_BUSY) { - continue; - } - } - - if (data & MOD_SPI_BUSY){ - DEBUG_EVENT("%s: Module %d: Critical Error (%s:%d)!\n", - card->devname, mod_no, - __FUNCTION__,__LINE__); - return 0xFF; - } - - return (u8)(data & 0xFF); -} - -unsigned char aft_analog_read_fe (void* pcard, ...) -{ - va_list args; - sdla_t *card = (sdla_t*)pcard; - int mod_no, type, chain, reg; - unsigned char data = 0; -#if defined(WAN_DEBUG_FE) - char *fname; - int fline; -#endif - - WAN_ASSERT(card == NULL); - WAN_ASSERT(card->hw_iface.bus_write_4 == NULL); - WAN_ASSERT(card->hw_iface.bus_read_4 == NULL); - - va_start(args, pcard); - mod_no = va_arg(args, int); - type = va_arg(args, int); - chain = va_arg(args, int); - reg = va_arg(args, int); -#if defined(WAN_DEBUG_FE) - fname = va_arg(args, char*); - fline = va_arg(args, int); -#endif - va_end(args); - - if (card->hw_iface.fe_test_and_set_bit(card->hw,0)){ -#if defined(WAN_DEBUG_FE) - DEBUG_EVENT("%s: %s:%d: Critical Error: Re-entry in FE (%s:%d)!\n", - card->devname, __FUNCTION__,__LINE__,fname,fline); -#else - DEBUG_EVENT("%s: %s:%d: Critical Error: Re-entry in FE!\n", - card->devname, __FUNCTION__,__LINE__); -#endif - return 0x00; - } - data = __aft_analog_read_fe (card, mod_no, type, chain, reg); - - card->hw_iface.fe_clear_bit(card->hw,0); - return data; -} - -unsigned char aft_analog_read_cpld(sdla_t *card, unsigned short cpld_off) -{ - u16 org_off; - u8 tmp; - - if (card->hw_iface.fe_test_and_set_bit(card->hw,0)){ - DEBUG_EVENT("%s: %s:%d: Critical Error: Re-entry in FE!\n", - card->devname, __FUNCTION__,__LINE__); - return 0x00; - } - - cpld_off |= AFT4_BIT_DEV_ADDR_CPLD; - - /*ALEX: Save the current address. */ - card->hw_iface.bus_read_2(card->hw, - AFT_MCPU_INTERFACE_ADDR, - &org_off); - - card->hw_iface.bus_write_2(card->hw, - AFT_MCPU_INTERFACE_ADDR, - cpld_off); - - card->hw_iface.bus_read_1(card->hw,AFT_MCPU_INTERFACE, &tmp); - - /*ALEX: Restore original address */ - card->hw_iface.bus_write_2(card->hw, - AFT_MCPU_INTERFACE_ADDR, - org_off); - card->hw_iface.fe_clear_bit(card->hw,0); - return tmp; -} - -int aft_analog_write_cpld(sdla_t *card, unsigned short off,unsigned char data) -{ - u16 org_off; - - if (card->hw_iface.fe_test_and_set_bit(card->hw,0)){ - DEBUG_EVENT("%s: %s:%d: Critical Error: Re-entry in FE!\n", - card->devname, __FUNCTION__,__LINE__); - return 0x00; - } - - off |= AFT4_BIT_DEV_ADDR_CPLD; - - /*ALEX: Save the current original address */ - card->hw_iface.bus_read_2(card->hw, - AFT_MCPU_INTERFACE_ADDR, - &org_off); - - /* This delay is required to avoid bridge optimization - * (combining two writes together)*/ - WP_DELAY(5); - - card->hw_iface.bus_write_2(card->hw, - AFT_MCPU_INTERFACE_ADDR, - off); - - /* This delay is required to avoid bridge optimization - * (combining two writes together)*/ - WP_DELAY(5); - - card->hw_iface.bus_write_1(card->hw, - AFT_MCPU_INTERFACE, - data); - /*ALEX: Restore the original address */ - card->hw_iface.bus_write_2(card->hw, - AFT_MCPU_INTERFACE_ADDR, - org_off); - card->hw_iface.fe_clear_bit(card->hw,0); - return 0; -} - -void aft_analog_fifo_adjust(sdla_t *card,u32 level) -{ - return; -} - -#if defined(CONFIG_WANPIPE_HWEC) -static int aft_analog_hwec_reset(void *pcard, int reset) -{ - sdla_t *card = (sdla_t*)pcard; - wan_smp_flag_t smp_flags,flags; - int err = -EINVAL; - - card->hw_iface.hw_lock(card->hw,&smp_flags); - wan_spin_lock_irq(&card->wandev.lock,&flags); - if (!reset){ - DEBUG_EVENT("%s: Clear Echo Canceller chip reset.\n", - card->devname); - - aft_analog_write_cpld(card, 0x00, 0x01); - WP_DELAY(1000); - err = 0; - - }else{ - DEBUG_EVENT("%s: Set Echo Canceller chip reset.\n", - card->devname); - aft_analog_write_cpld(card, 0x00, 0x00); - err = 0; - } - wan_spin_unlock_irq(&card->wandev.lock,&flags); - card->hw_iface.hw_unlock(card->hw,&smp_flags); - - return err; -} -#endif - -#if defined(CONFIG_WANPIPE_HWEC) -#define AFT_REMORA_MUX_TS_EC_ENABLE 0x210 -static int aft_analog_hwec_enable(void *pcard, int enable, int channel) -{ - sdla_t *card = (sdla_t*)pcard; - unsigned int value = 0x00; - - WAN_ASSERT(card == NULL); - if(!wan_test_bit(channel, &card->wandev.ec_enable_map)){ - DEBUG_EVENT("%s: Error: Channel %i not in analog hwec map!\n", - card->devname,channel); - return -EINVAL; - } - - card->hw_iface.bus_read_4( - card->hw, - AFT_REMORA_MUX_TS_EC_ENABLE, - &value); - if (enable){ - if (!wan_test_and_set_bit(channel,&card->wandev.ec_map)) { - value |= (1 << channel); - } else { - DEBUG_EVENT("[HWEC]: %s: %s bypass mode overrun detected for channel %d!\n", - card->devname, - (enable) ? "Enable" : "Disable", - channel); - return 0; - } - } else { - if (wan_test_and_clear_bit(channel,&card->wandev.ec_map)) { - value &= ~(1 << channel); - } else { - DEBUG_EVENT("[HWEC]: %s: %s bypass mode overrun detected for channel %d!\n", - card->devname, - (enable) ? "Enable" : "Disable", - channel); - return 0; - } - } - - card->hw_iface.bus_write_4( - card->hw, - AFT_REMORA_MUX_TS_EC_ENABLE, - value); - DEBUG_HWEC("[HWEC]: %s: %s bypass mode for channel %d (value=%X)!\n", - card->devname, - (enable) ? "Enable" : "Disable", - channel, - value); - - return 0; -} -#endif - - - diff --git a/patches/kdrivers/src/net/diff b/patches/kdrivers/src/net/diff index e846b67..e042e7c 100644 --- a/patches/kdrivers/src/net/diff +++ b/patches/kdrivers/src/net/diff @@ -1,165 +1,120 @@ ---- sdla_xilinx.c 2007-04-18 15:53:46.000000000 -0400 -+++ /common/wanpipe/sdla_xilinx.c 2007-06-03 12:51:02.000000000 -0400 -@@ -1,9 +1,9 @@ - /***************************************************************************** --* sdla_xilinx.c WANPIPE(tm) S51XX Xilinx Hardware Support -+* sdla_xilinx.c WANPIPE(tm) AFT A101/2 Hardware Support - * - * Authors: Nenad Corbic - * --* Copyright: (c) 2003-2004 Sangoma Technologies Inc. -+* Copyright: (c) 2003-2007 Sangoma Technologies Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License -@@ -12,7 +12,7 @@ - * ============================================================================ - * Jan 07, 2003 Nenad Corbic Initial version. - *****************************************************************************/ -- -+ - #if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) - # include - # include -@@ -56,7 +56,7 @@ - enum { - AFT_CHIP_CONFIGURED, - AFT_FRONT_END_UP, --}; -+}; - - enum { - AFT_FE_CFG_ERR, -@@ -269,7 +269,7 @@ - static void disable_comm (sdla_t *card); - - /* Interrupt handlers */ --static void wp_xilinx_isr (sdla_t* card); -+static WAN_IRQ_RETVAL wp_xilinx_isr (sdla_t* card); - - /* Bottom half handlers */ - #if defined(__LINUX__) -@@ -366,11 +366,17 @@ - static void aft_report_rbsbits(void* pcard, int channel, unsigned char status); - - static int aft_realign_skb_pkt(private_area_t *chan, netskb_t *skb); -+ - #if defined(__LINUX__) --static void aft_port_task (void * card_ptr); -+# if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)) -+static void aft_port_task (void * card_ptr); -+# else -+static void aft_port_task (struct work_struct *work); -+# endif - #else --static void aft_port_task (void * card_ptr, int arg); -+static void aft_port_task (void * card_ptr, int arg); +--- sdla_aft_te1.c 2007-04-24 19:14:40.000000000 -0400 ++++ /common/wanpipe/sdla_aft_te1.c 2007-05-12 18:59:46.000000000 -0400 +@@ -149,6 +149,12 @@ + #undef AFT_API_SUPPORT #endif + ++#if defined(__LINUX__) ++# define AFT_RTP_SUPPORT 1 ++#else ++# undef AFT_RTP_SUPPORT ++#endif + - static void aft_fe_intr_ctrl(sdla_t *card, int status); - static void __aft_fe_intr_ctrl(sdla_t *card, int status); -@@ -391,8 +397,7 @@ - static int aft_tdmv_free(sdla_t *card); - static int aft_tdmv_if_init(sdla_t *card, private_area_t *chan, wanif_conf_t *conf); - static int aft_tdmv_if_free(sdla_t *card, private_area_t *chan); --static void aft_critical_shutdown (sdla_t *card); --static int digital_loop_test(sdla_t* card,wan_udp_pkt_t *wan_udp_pkt); -+static void aft_critical_shutdown (sdla_t *card); + /* Trigger on Number of transactions + * 1= 1x8 byte transactions +@@ -378,12 +384,10 @@ + static void aft_port_task (void * card_ptr, int arg); + #endif - #ifdef AFT_TDM_API_SUPPORT - static int aft_read_rbs_bits(void *chan_ptr, u32 ch, u8 *rbs_bits); -@@ -491,7 +496,7 @@ - card->wandev.clocking = conf->clocking; - card->wandev.ignore_front_end_status = conf->ignore_front_end_status; - card->wandev.ttl = conf->ttl; -- card->wandev.interface = conf->interface; -+ card->wandev.electrical_interface = conf->electrical_interface; - card->wandev.comm_port = conf->comm_port; - card->wandev.udp_port = conf->udp_port; - card->wandev.new_if_cnt = 0; -@@ -510,6 +515,7 @@ - } - - memcpy(&card->u.aft.cfg,&conf->u.aft,sizeof(wan_xilinx_conf_t)); -+ memcpy(&card->tdmv_conf,&conf->tdmv_conf,sizeof(wan_tdmv_conf_t)); +-#if defined(__LINUX__) ++#if defined(AFT_RTP_SUPPORT) + static void aft_rtp_config(sdla_t *card); + static void aft_rtp_unconfig(sdla_t *card); +-#if 0 +-static void aft_rtp_tap(sdla_t *card, private_area_t *chan, u8* rx, u8* tx, u32 len); +-#endif ++static void aft_rtp_tap(void *card_ptr, u8 chan, u8* rx, u8* tx, u32 len); + #endif - card->u.aft.cfg.dma_per_ch = 10; - if (conf->u.aft.dma_per_ch){ -@@ -531,7 +537,7 @@ - } + static int aft_devel_ioctl(sdla_t *card,struct ifreq *ifr); +@@ -417,8 +421,8 @@ + static int aft_dma_tx (sdla_t *card,private_area_t *chan); + static void aft_tx_dma_chain_handler(unsigned long data, int wdt, int reset); + static void aft_tx_dma_voice_handler(unsigned long data, int wdt, int reset); +-static void aft_tx_dma_chain_init(private_area_t *chan, aft_dma_chain_t *); +-static void aft_rx_dma_chain_init(private_area_t *chan, aft_dma_chain_t *); ++static void aft_tx_dma_chain_init(private_area_t *chan, wan_dma_descr_t *); ++static void aft_rx_dma_chain_init(private_area_t *chan, wan_dma_descr_t *); + static void aft_index_tx_rx_dma_chains(private_area_t *chan); + static void aft_init_tx_rx_dma_descr(private_area_t *chan); + static void aft_free_rx_complete_list(private_area_t *chan); +@@ -662,7 +666,7 @@ + /* Make special hardware initialization for Analog board */ + memcpy(&card->fe.fe_cfg, &conf->fe_cfg, sizeof(sdla_fe_cfg_t)); +- wp_remora_iface_init(&card->wandev.fe_iface); ++ wp_remora_iface_init(&card->fe, &card->wandev.fe_iface); + card->fe.name = card->devname; + card->fe.card = card; + card->fe.write_fe_reg = aft_analog_write_fe; +@@ -742,9 +746,9 @@ memcpy(&card->fe.fe_cfg, &conf->fe_cfg, sizeof(sdla_fe_cfg_t)); -- sdla_te_iface_init(&card->wandev.fe_iface); -+ sdla_te_iface_init(&card->fe, &card->wandev.fe_iface); + if (card->u.aft.firm_id == AFT_DS_FE_CORE_ID) { + max_ports = 8; +- sdla_ds_te1_iface_init(&card->wandev.fe_iface); ++ sdla_ds_te1_iface_init(&card->fe, &card->wandev.fe_iface); + }else{ +- sdla_te_iface_init(&card->wandev.fe_iface); ++ sdla_te_iface_init(&card->fe, &card->wandev.fe_iface); + } card->fe.name = card->devname; card->fe.card = card; - card->fe.write_fe_reg = write_front_end_reg; -@@ -547,7 +553,7 @@ - card->fe.fe_cfg.cfg.te_cfg.te_ref_clock = WAN_TE1_REFCLK_OSC; - } - +@@ -755,7 +759,7 @@ + card->wandev.fe_enable_timer = enable_timer; + card->wandev.ec_enable_timer = enable_ec_timer; + card->wandev.te_link_state = handle_front_end_state; - conf->interface = + conf->electrical_interface = IS_T1_CARD(card) ? WANOPT_V35 : WANOPT_RS232; if (card->wandev.comm_port == WANOPT_PRI){ -@@ -560,6 +566,12 @@ - return -EINVAL; +@@ -842,7 +846,7 @@ + return -EINVAL; + } + */ +- sdla_56k_iface_init(&card->wandev.fe_iface); ++ sdla_56k_iface_init(&card->fe, &card->wandev.fe_iface); + + card->fe.name = card->devname; + card->fe.card = card; +@@ -882,7 +886,7 @@ + card->wandev.clocking = conf->clocking; + card->wandev.ignore_front_end_status = conf->ignore_front_end_status; + card->wandev.ttl = conf->ttl; +- card->wandev.interface = conf->interface; ++ card->wandev.electrical_interface = conf->electrical_interface; + card->wandev.comm_port = conf->comm_port; + card->wandev.udp_port = conf->udp_port; + card->wandev.new_if_cnt = 0; +@@ -962,7 +966,6 @@ + card->u.aft.cfg.mru = card->wandev.mtu; } -+ card->u.aft.tdmv_dchan = 0; -+ if (IS_E1_CARD(card)) { -+ card->tdmv_conf.dchan = card->tdmv_conf.dchan << 1; -+ wan_clear_bit(0,&card->tdmv_conf.dchan); -+ } -+ - if (card->wandev.ignore_front_end_status == WANOPT_NO){ - DEBUG_EVENT( - "%s: Enabling front end link monitor\n", -@@ -636,10 +648,10 @@ - - WAN_TASKQ_INIT((&card->u.aft.port_task),0,aft_port_task,card); - -- /* Set protocol link state to disconnected, -+ /* Set protocol link state to disconnected, - * After seting the state to DISCONNECTED this - * function must return 0 i.e. success */ -- port_set_state(card,WAN_CONNECTING); -+ port_set_state(card,WAN_CONNECTING); - - xilinx_delay(1); - #if !defined(CONFIG_PRODUCT_WANPIPE_GENERIC) -@@ -651,6 +663,8 @@ - } - #endif - -+ xilinx_delay(1); -+ - wan_set_bit(AFT_CHIP_CONFIGURED,&card->u.aft.chip_cfg_status); - - if (wan_test_bit(AFT_FRONT_END_UP,&card->u.aft.chip_cfg_status)){ -@@ -662,10 +676,7 @@ - wan_spin_unlock_irq(&card->wandev.lock,&smp_flags); - - wan_clear_bit(AFT_FRONT_END_UP,&card->u.aft.chip_cfg_status); -- } -- - -- xilinx_delay(1); -+ } + + if (card->u.aft.cfg.mru > MAX_WP_PRI_MTU || + card->u.aft.cfg.mru < MIN_WP_PRI_MTU){ +@@ -1114,8 +1117,9 @@ - DEBUG_EVENT("%s: Configuring Device :%s FrmVr=%02X\n", - card->devname,card->devname,card->u.aft.firm_ver); -@@ -731,13 +742,13 @@ + card->disable_comm = &disable_comm; + +- aft_rtp_config(card); +- ++#if defined(AFT_RTP_SUPPORT) ++ aft_rtp_config(card); ++#endif + + card->wandev.read_ec = aft_read_ec; + card->wandev.write_ec = aft_write_ec; +@@ -1158,12 +1162,12 @@ */ static int update (wan_device_t* wandev) { -- sdla_t *card = wandev->private; -+ sdla_t *card = wandev->priv; - netdevice_t *dev; - volatile private_area_t *chan; - wan_smp_flag_t smp_flags; +- sdla_t* card = wandev->private; ++ sdla_t* card = wandev->priv; + netdevice_t* dev; + volatile private_area_t* chan; /* sanity checks */ - if((wandev == NULL) || (wandev->private == NULL)) @@ -167,1191 +122,1237 @@ return -EFAULT; if(wandev->state == WAN_UNCONFIGURED) -@@ -831,7 +842,7 @@ - wp_tdm_api_dev->cfg.idle_flag = conf->u.aft.idle_flag; - wp_tdm_api_dev->cfg.rbs_tx_bits = conf->u.aft.rbs_cas_idle; - -- wp_tdm_api_dev->tdm_span = card->u.aft.cfg.tdmv_span_no; -+ wp_tdm_api_dev->tdm_span = card->tdmv_conf.span_no; - wp_tdm_api_dev->tdm_chan = logic_ch+1; +@@ -1508,11 +1512,11 @@ - if (IS_T1_CARD(card)){ -@@ -923,6 +934,23 @@ - - #endif - -+ -+ -+static void wanpipe_wake_stack(private_area_t* chan) -+{ -+ WAN_NETIF_WAKE_QUEUE(chan->common.dev); -+#if !defined(CONFIG_PRODUCT_WANPIPE_GENERIC) -+ if (chan->common.usedby == API){ -+# if defined(__LINUX__) -+ wan_wakeup_api(chan); -+# endif -+ }else if (chan->common.usedby == STACK){ -+ wanpipe_lip_kick(chan,0); -+ } -+#endif -+} -+ -+ - /*============================================================================ - * new_if - Create new logical channel. - * -@@ -959,7 +987,7 @@ - */ - static int new_if_private (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* conf, int channelized) + static int new_if_private (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* conf, int channelized, int dchan) { - sdla_t* card = wandev->private; + sdla_t* card = wandev->priv; private_area_t* chan; - int err = 0; + int dma_per_ch=card->u.aft.cfg.dma_per_ch; +- int err = 0; +- ++ int err = 0, dma_alignment = 4, i =0; ++ + DEBUG_EVENT( "%s: Configuring Interface: %s\n", + card->devname, wan_netif_name(dev)); -@@ -1123,7 +1151,7 @@ +@@ -1838,11 +1842,7 @@ + + chan->dma_mru = chan->mtu; - # ifdef CONFIG_PRODUCT_WANPIPE_TDM_VOICE - # ifdef CONFIG_PRODUCT_WANPIPE_TDM_VOICE_DCHAN -- int dchan=card->u.aft.cfg.tdmv_dchan; -+ int dchan=card->u.aft.tdmv_dchan; - - /* DCHAN must be decremented for both - * T1 and E1, since from tdmv driver's -@@ -1172,7 +1200,7 @@ - #ifdef AFT_TDM_API_SUPPORT - }else if (strcmp(conf->usedby, "TDM_VOICE_API") == 0) { - -- int dchan=card->u.aft.cfg.tdmv_dchan; -+ int dchan=card->u.aft.tdmv_dchan; - - /* DCHAN must be decremented for both - * T1 and E1, since from tdmv driver's -@@ -1194,14 +1222,14 @@ +-#if defined(__LINUX__) + chan->dma_mru = aft_valid_mtu(chan->dma_mru); +-#else +- chan->dma_mru = aft_valid_mtu(chan->dma_mru); +-#endif + if (!chan->dma_mru){ + DEBUG_EVENT("%s:%s: Error invalid MTU %d MRU %d\n", + card->devname, +@@ -1966,7 +1966,84 @@ + chan->single_dma_chain?"Off":"On", + card->wandev.ec_enable_map?"On":"Off"); - #ifdef AFT_TDM_API_SUPPORT - }else if (strcmp(conf->usedby, "TDM_VOICE_DCHAN_API") == 0) { -- int dchan=card->u.aft.cfg.tdmv_dchan; -+ int dchan=card->u.aft.tdmv_dchan; - - /* DCHAN must be decremented for both - * T1 and E1, since from tdmv driver's - * perspective all timeslots start from ZERO*/ - dchan--; - chan->tdmv_chan=dchan; -- +- ++ /* New DMA support A-DMA */ ++ dma_alignment = 4; ++ if (chan->channelized_cfg && !chan->hdlc_eng){ ++ dma_alignment = 0x200; ++ } ++ ++ err = card->hw_iface.busdma_tag_create( card->hw, ++ &chan->rx_dma_chain_table[0], ++ dma_alignment, ++ chan->dma_mru, ++ MAX_AFT_DMA_CHAINS); ++ if (err) { ++ DEBUG_EVENT("%s: Failed to allocate DMA Rx mtag!\n", ++ card->devname); ++ err = -EINVAL; ++ goto new_if_error; ++ } ++ err = card->hw_iface.busdma_tag_create( card->hw, ++ &chan->tx_dma_chain_table[0], ++ dma_alignment, ++ chan->dma_mru, ++ MAX_AFT_DMA_CHAINS); ++ if (err) { ++ DEBUG_EVENT("%s: Failed to allocate DMA Tx mtag!\n", ++ card->devname); ++ err = card->hw_iface.busdma_tag_destroy( ++ card->hw, ++ &chan->rx_dma_chain_table[0], ++ MAX_AFT_DMA_CHAINS); ++ err = -EINVAL; ++ goto new_if_error; ++ } ++ ++ for (i=0;ihw_iface.busdma_alloc(card->hw,&chan->tx_dma_chain_table[i]); ++ if (err){ ++ DEBUG_EVENT("%s:%s: Unable to load TX DMA buffer %d (%d)!\n", ++ card->devname, chan->if_name, i, err); ++ err = -EINVAL; ++ break; ++ } ++ DEBUG_DMA("%s:%s: Alloc DMA TX buffer %d virt=%p len=%d\n", ++ card->devname, chan->if_name, i, ++ chan->tx_dma_chain_table[i].dma_virt, ++ chan->dma_mru); ++ ++ err = card->hw_iface.busdma_alloc(card->hw,&chan->rx_dma_chain_table[i]); ++ if (err){ ++ DEBUG_EVENT("%s:%s: Unable to load RX DMA buffer %d (%d)!\n", ++ card->devname, chan->if_name, i, err); ++ err = -EINVAL; ++ break; ++ } ++ DEBUG_DMA("%s:%s: Alloc DMA RX buffer %d virt=%p len=%d\n", ++ card->devname, chan->if_name, i, ++ chan->rx_dma_chain_table[i].dma_virt, ++ chan->dma_mru); ++ } ++ if (err){ ++ ++ for (i=0;ihw_iface.busdma_free(card->hw,&chan->rx_dma_chain_table[i]); ++ card->hw_iface.busdma_free(card->hw,&chan->tx_dma_chain_table[i]); ++ } ++ err = card->hw_iface.busdma_tag_destroy( ++ card->hw, ++ &chan->rx_dma_chain_table[0], ++ MAX_AFT_DMA_CHAINS); ++ err = card->hw_iface.busdma_tag_destroy( ++ card->hw, ++ &chan->tx_dma_chain_table[0], ++ MAX_AFT_DMA_CHAINS); ++ err = -EINVAL; ++ goto new_if_error; ++ } + - chan->common.usedby = TDM_VOICE_DCHAN; - conf->hdlc_streaming=1; - chan->mru=chan->mtu=1500; -@@ -1218,6 +1246,7 @@ - chan->mtu+=32; - chan->mru+=32; - } -+ - }else{ - DEBUG_EVENT( "%s:%s: Error: Invalid operation mode [%s]\n", - card->devname,chan->if_name, conf->usedby); -@@ -1264,7 +1293,8 @@ - wan_clear_bit(0,&chan->tdmv_sync); - } - -- if(conf->protocol == WANCONFIG_LIP_ATM){ -+ if(conf->protocol == WANCONFIG_LIP_ATM || -+ conf->protocol == WANCONFIG_LIP_KATM){ - /* if ATM NO sync needed!! */ - DEBUG_EVENT("%s: Disabling Time Slot Sync for ATM.\n", chan->if_name); - card->u.aft.tdmv_sync = 0; -@@ -1293,7 +1323,7 @@ - *as the dchan. Due to HDLC security issue, the - *HDLC channels are mapped on first TWO logic channels */ - if (chan->common.usedby == TDM_VOICE_DCHAN){ -- card->u.aft.cfg.tdmv_dchan=chan->logic_ch_num+1; -+ card->u.aft.tdmv_dchan=chan->logic_ch_num+1; - } - xilinx_delay(1); -@@ -1341,7 +1371,8 @@ - } - - -- if(conf->protocol != WANCONFIG_LIP_ATM){ -+ if(conf->protocol != WANCONFIG_LIP_ATM && -+ conf->protocol != WANCONFIG_LIP_KATM){ - buf=wan_skb_put(chan->tx_idle_skb,chan->dma_mru); - memset(buf,chan->idle_flag,chan->dma_mru); - wan_skb_trim(chan->tx_idle_skb,0); -@@ -1501,23 +1532,23 @@ + err=aft_alloc_rx_dma_buff(card, chan, dma_per_ch,0); + if (err){ +@@ -2085,7 +2162,7 @@ static int new_if (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* conf) { int err=-EINVAL; - sdla_t *card=wandev->private; + sdla_t *card=wandev->priv; - - wan_netif_set_priv(dev, NULL); - if (IS_E1_CARD(card)){ -- DEBUG_TEST("%s: Time Slot Orig 0x%lX Shifted 0x%lX DCHAN=%i\n", -+ DEBUG_TEST("%s: Time Slot Orig 0x%lX Shifted 0x%lX DCHAN=0x%08X\n", - card->devname, - conf->active_ch, - conf->active_ch<<1, -- card->u.aft.cfg.tdmv_dchan); -+ card->tdmv_conf.dchan); - conf->active_ch = conf->active_ch << 1; - wan_clear_bit(0,&conf->active_ch); - } + wan_netif_set_priv(dev, NULL); - if (strcmp(conf->usedby, "TDM_VOICE") == 0 ) { - #if defined(CONFIG_PRODUCT_WANPIPE_TDM_VOICE) -- if (card->u.aft.cfg.tdmv_span_no){ -+ if (card->tdmv_conf.span_no){ - /* Initialize TDMV interface function */ - err = wp_tdmv_te1_init(&card->tdmv_iface); - if (err){ -@@ -1526,7 +1557,7 @@ - return -EINVAL; - } - -- WAN_TDMV_CALL(create, (card, &card->u.aft.cfg), err); -+ WAN_TDMV_CALL(create, (card, &card->tdmv_conf), err); - if (err){ - DEBUG_EVENT("%s: Error: Failed to create tdmv span!\n", - card->devname); -@@ -1539,26 +1570,36 @@ - card->devname); - DEBUG_EVENT("%s: during installation process!\n", - card->devname); -- return -EINVAL; --#endif -+ return -EINVAL; -+#endif - } - - if (strcmp(conf->usedby, "TDM_VOICE") == 0 || - strcmp(conf->usedby, "TDM_VOICE_API") == 0){ - -- int dchan=card->u.aft.cfg.tdmv_dchan; -- -- if (IS_T1_CARD(card) && dchan){ -- dchan--; -- } -+ int dchan=0; -+ int dchan_found=0; -+ int i; - -- if (dchan){ -+ for (i=card->u.aft.num_of_time_slots-1;i>=0;i--){ -+ if (wan_test_bit(i,&card->tdmv_conf.dchan)){ -+ dchan_found=1; -+ card->u.aft.tdmv_dchan=i; -+ dchan=i; -+ break; -+ } -+ } -+ -+ if (dchan_found){ -+ if (IS_T1_CARD(card)) { -+ card->u.aft.tdmv_dchan++; -+ } - wan_clear_bit(dchan,&conf->active_ch); - } - - err=new_if_private(wandev,dev,conf,1); - if (!err){ -- if (card->u.aft.cfg.tdmv_dchan){ -+ if (card->tdmv_conf.dchan){ - - conf->active_ch=0; - if (strcmp(conf->usedby, "TDM_VOICE") == 0) { -@@ -1616,7 +1657,7 @@ - private_area_t* chan = wan_netif_priv(dev); - sdla_t* card = (sdla_t*)chan->common.card; +@@ -2247,6 +2324,7 @@ + sdla_t* card; netskb_t *skb; -- wan_smp_flag_t flags; -+ wan_smp_flag_t flags; - - if (wan_test_bit(0,&chan->tdmv_sync)){ - wan_clear_bit(0,&card->u.aft.tdmv_sync); -@@ -1656,8 +1697,8 @@ - } - #endif + wan_smp_flag_t flags; ++ int i; -- wan_spin_lock_irq(&card->wandev.lock,&flags); -- -+ wan_spin_lock_irq(&card->wandev.lock,&flags); -+ - while ((skb=wan_skb_dequeue(&chan->wp_rx_free_list)) != NULL){ - wan_skb_free(skb); - } -@@ -1711,8 +1752,8 @@ - } - - chan->logic_ch_num=-1; -- -- wan_spin_unlock_irq(&card->wandev.lock,&flags); -+ -+ wan_spin_unlock_irq(&card->wandev.lock,&flags); + if (!chan){ + DEBUG_EVENT("%s: Critical Error del_if_private() chan=NULL!\n", +@@ -2308,7 +2386,21 @@ - /* Delete interface name from proc fs. */ - #if 0 -@@ -1955,12 +1996,14 @@ - err=aft_dev_open(card,chan); - if (err) { - wan_spin_unlock_irq(&card->wandev.lock,&flags); -- return err; -+ DEBUG_EVENT("%s: Error failed to configure interface!\n", -+ chan->if_name); -+ return err; - } - - if (wan_test_bit(0,&chan->tdmv_sync) && - (card->wandev.state == WAN_CONNECTED || -- card->u.aft.cfg.tdmv_span_no)){ -+ card->tdmv_conf.span_no)){ - /* At this point we are out of sync. The - * DMA was enabled while interface was down. - * We must do a FULL recovery */ -@@ -1971,7 +2014,7 @@ - disable_data_error_intr(card,LINK_DOWN); - enable_data_error_intr(card); - -- }else if (card->u.aft.cfg.tdmv_span_no) { -+ }else if (card->tdmv_conf.span_no) { - /* The A101/2 Card must supply clock to - * zaptel regardless of state. Thus fake - * the front end connected state */ -@@ -1990,19 +2033,15 @@ - enable_data_error_intr(card); - } - -- if (card->wandev.state == WAN_CONNECTED){ -+ if (card->wandev.state == WAN_CONNECTED){ - /* If Front End is connected already set interface - * state to Connected too */ - set_chan_state(card, dev, WAN_CONNECTED); - WAN_NETIF_WAKE_QUEUE(dev); - WAN_NETIF_CARRIER_ON(dev); -- if (chan->common.usedby == API){ -- wan_wakeup_api(chan); -- }else if (chan->common.usedby == STACK){ -- wanpipe_lip_kick(chan,0); -- } -- } + aft_free_tx_descriptors(chan); + aft_free_rx_descriptors(chan); - -+ wanpipe_wake_stack(chan); -+ } -+ - wan_spin_unlock_irq(&card->wandev.lock,&flags); ++ ++ for (i=0;ihw_iface.busdma_free(card->hw,&chan->rx_dma_chain_table[i]); ++ card->hw_iface.busdma_free(card->hw,&chan->tx_dma_chain_table[i]); ++ } ++ card->hw_iface.busdma_tag_destroy( ++ card->hw, ++ &chan->rx_dma_chain_table[0], ++ MAX_AFT_DMA_CHAINS); ++ card->hw_iface.busdma_tag_destroy( ++ card->hw, ++ &chan->tx_dma_chain_table[0], ++ MAX_AFT_DMA_CHAINS); ++ + while ((skb=wan_skb_dequeue(&chan->wp_rx_free_list)) != NULL) { + #ifdef __LINUX__ + if (skb_shinfo(skb)->frag_list || +@@ -2422,7 +2514,7 @@ + aft_fifo_intr_ctrl(card, 0); + + /* Disable RTP Tap */ +- card->u.aft.rtp_len=0; ++ card->wandev.rtp_len=0; + + #if defined(CONFIG_PRODUCT_WANPIPE_TDM_VOICE) + if (card->wan_tdmv.sc) { +@@ -2705,7 +2797,7 @@ - /* Increment the module usage count */ -@@ -2083,10 +2122,13 @@ static void disable_comm (sdla_t *card) { - wan_smp_flag_t flags; -- -+ - /* TE1 - Unconfiging, only on shutdown */ - if (IS_TE1_CARD(card)) { - wan_smp_flag_t smp_flags,smp_flags1; -+ if (card->wandev.fe_iface.pre_release){ -+ card->wandev.fe_iface.pre_release(&card->fe); -+ } - card->hw_iface.hw_lock(card->hw,&smp_flags1); - wan_spin_lock_irq(&card->wandev.lock, &smp_flags); - if (card->wandev.fe_iface.unconfig){ -@@ -2094,7 +2136,7 @@ - } - wan_spin_unlock_irq(&card->wandev.lock, &smp_flags); - card->hw_iface.hw_unlock(card->hw,&smp_flags1); -- } -+ } +- wan_smp_flag_t flags,flags1; ++ wan_smp_flag_t smp_flags,smp_flags1; + int used_cnt; - wan_spin_lock_irq(&card->wandev.lock,&flags); + AFT_FUNC_DEBUG(); +@@ -2714,51 +2806,51 @@ + #else -@@ -2107,12 +2149,10 @@ - - wan_spin_unlock_irq(&card->wandev.lock,&flags); - -- - WP_DELAY(10); - - xilinx_chip_unconfigure(card); - -- - return; - } - -@@ -2162,20 +2202,12 @@ - reg_lo, reg_hi); - - wan_clear_bit(TX_BUSY,&chan->dma_status); -+ wan_netif_set_ticks(dev, SYSTEM_TICKS); - - xilinx_tx_fifo_under_recover(card,chan); -- -- wan_netif_set_ticks(dev, SYSTEM_TICKS); - -- WAN_NETIF_WAKE_QUEUE(dev); /*netif_wake_queue (dev);*/ -+ wanpipe_wake_stack(chan); - -- if (chan->common.usedby == API){ --# if defined(__LINUX__) -- wan_wakeup_api(chan); --# endif -- }else if (chan->common.usedby == STACK){ -- wanpipe_lip_kick(chan,0); -- } - } - - -@@ -2260,26 +2292,24 @@ - WAN_NETIF_STOP_QUEUE(dev); - wan_netif_set_ticks(dev, SYSTEM_TICKS); - return 1; -- - } else if (!WAN_NETIF_UP(dev)) { - ++chan->if_stats.tx_carrier_errors; - WAN_NETIF_START_QUEUE(dev); - wan_skb_free(skb); - wan_netif_set_ticks(dev, SYSTEM_TICKS); -- return 0; -- -+ return 0; - }else { - - if (chan->common.usedby == TDM_VOICE || - chan->common.usedby == TDM_VOICE_DCHAN){ - -- if (!card->u.aft.cfg.tdmv_dchan || card->u.aft.cfg.tdmv_dchan>32){ -+ if (!card->u.aft.tdmv_dchan || card->u.aft.tdmv_dchan>32){ - wan_skb_free(skb); - WAN_NETIF_START_QUEUE(dev); - goto if_send_exit_crit; - } - -- chan=(private_area_t*)card->u.aft.dev_to_ch_map[card->u.aft.cfg.tdmv_dchan-1]; -+ chan=(private_area_t*)card->u.aft.dev_to_ch_map[card->u.aft.tdmv_dchan-1]; - if (!chan){ - wan_skb_free(skb); - WAN_NETIF_START_QUEUE(dev); -@@ -2303,7 +2333,7 @@ - - } - -- if (chan->max_tx_bufs == 1) { -+ if (chan->max_tx_bufs == 1) { - wan_smp_flag_t smp_flags; - wan_spin_lock_irq(&card->wandev.lock, &smp_flags); - if (wan_test_bit(TX_BUSY,&chan->dma_status)){ -@@ -2315,8 +2345,13 @@ - goto xilinx_tx_dma; - - } else if (wan_skb_queue_len(&chan->wp_tx_pending_list) > chan->max_tx_bufs){ -- WAN_NETIF_STOP_QUEUE(dev); /*stop_net_queue(dev);*/ -- xilinx_dma_tx(card,chan); -+ wan_smp_flag_t smp_flags; -+ wan_spin_lock_irq(&card->wandev.lock, &smp_flags); -+ WAN_NETIF_STOP_QUEUE(dev); /*stop_net_queue(dev);*/ -+ wan_spin_unlock_irq(&card->wandev.lock, &smp_flags); -+ if (chan->hdlc_eng) { -+ xilinx_dma_tx(card,chan); -+ } - return 1; - }else{ - xilinx_tx_dma: -@@ -2345,11 +2380,14 @@ - } - - wan_skb_queue_tail(&chan->wp_tx_pending_list,skb); -- xilinx_dma_tx(card,chan); -+ if (chan->hdlc_eng) { -+ xilinx_dma_tx(card,chan); -+ } - wan_netif_set_ticks(dev, SYSTEM_TICKS); - } - } - -+ - #ifdef __LINUX__ - if (dev->tx_queue_len < chan->max_tx_bufs && - dev->tx_queue_len > 0) { -@@ -2364,7 +2402,8 @@ - chan->if_name,MAX_TX_BUF); - chan->max_tx_bufs = MAX_TX_BUF; - } --#endif -+#endif -+ - - if_send_exit_crit: - -@@ -2750,6 +2789,10 @@ - (IS_T1_CARD(card))?"T1":"E1"); - return -EINVAL; - } -+ /* Run rest of initialization not from lock */ -+ if (card->wandev.fe_iface.post_init){ -+ err=card->wandev.fe_iface.post_init(&card->fe); -+ } - - xilinx_delay(1); - -@@ -2871,7 +2914,6 @@ - { - u32 reg; - long free_logic_ch,i; -- int err=0; - - DEBUG_TEST("-- Configure Xilinx. --\n"); - -@@ -2978,13 +3020,10 @@ - DEBUG_TEST("Setting Timeslot %ld to logic ch %ld Reg=0x%X\n", - i, chan->logic_ch_num,reg); - -- err=xilinx_write_ctrl_hdlc(card, -+ xilinx_write_ctrl_hdlc(card, - i, - XILINX_CONTROL_RAM_ACCESS_BUF, - reg); -- if (err) { -- return err; -- } - - } - } -@@ -3032,13 +3071,10 @@ - i, free_logic_ch,reg); - - -- err=xilinx_write_ctrl_hdlc(card, -+ xilinx_write_ctrl_hdlc(card, - i, - XILINX_CONTROL_RAM_ACCESS_BUF, - reg); -- if (err){ -- return err; -- } - - free_ch_used=1; - } -@@ -3071,13 +3107,10 @@ - - wan_set_bit(HDLC_RX_ADDR_RECOGN_DIS_BIT,®); - -- err=xilinx_write_ctrl_hdlc(card, -+ xilinx_write_ctrl_hdlc(card, - chan->first_time_slot, - XILINX_HDLC_CONTROL_REG, - reg); -- if (err){ -- return err; -- } - } - } - -@@ -3109,22 +3142,22 @@ - * comms as soon as the HDLC is enabled */ - - -- err=xilinx_write_ctrl_hdlc(card, -+ xilinx_write_ctrl_hdlc(card, - chan->first_time_slot, - XILINX_HDLC_CONTROL_REG, - 0); -- return err; -+ return 0; - } - - wan_set_bit(HDLC_TX_CHAN_ENABLE_BIT,®); - wan_set_bit(HDLC_RX_ADDR_RECOGN_DIS_BIT,®); - -- err=xilinx_write_ctrl_hdlc(card, -+ xilinx_write_ctrl_hdlc(card, - chan->first_time_slot, - XILINX_HDLC_CONTROL_REG, - reg); - -- return err; -+ return 0; - } - - -@@ -3202,8 +3235,6 @@ - free_fifo_baddr_and_size(card,chan); - wan_spin_unlock_irq(&card->wandev.lock,&smp_flags); - -- /* Do not clear logic channel here, -- do it at the end of del_if_private */ - - for (i=0;iu.aft.num_of_time_slots;i++){ - if (wan_test_bit(i,&chan->time_slot_map)){ -@@ -3597,7 +3628,7 @@ - return -EINVAL; - } - -- if ((u32)wan_skb_data(skb) & 0x03){ -+ if ((unsigned long)wan_skb_data(skb) & 0x03){ - int err=aft_realign_skb_pkt(chan, skb); - if (err){ - DEBUG_EVENT("%s: Error: Failed to allocate memory in %s()\n", -@@ -3842,7 +3873,7 @@ - unsigned long reg = wan_skb_csum(skb); - private_area_t *top_chan; - -- if (card->u.aft.cfg.tdmv_dchan){ -+ if (card->u.aft.tdmv_dchan){ - top_chan=wan_netif_priv(chan->common.dev); - }else{ - top_chan=chan; -@@ -3914,7 +3945,7 @@ - - - if (wan_tracing_enabled(&top_chan->trace_info) >= 1){ -- if (card->u.aft.cfg.tdmv_dchan){ -+ if (card->u.aft.tdmv_dchan){ - if (chan->common.usedby == TDM_VOICE_DCHAN){ - wan_capture_trace_packet(card, &top_chan->trace_info, skb, TRC_OUTGOING_FRM); - } -@@ -3929,16 +3960,7 @@ - tx_post_exit: - - if (WAN_NETIF_QUEUE_STOPPED(chan->common.dev)){ -- WAN_NETIF_WAKE_QUEUE(chan->common.dev); --#if !defined(CONFIG_PRODUCT_WANPIPE_GENERIC) -- if (chan->common.usedby == API){ --# if defined(__LINUX__) -- wan_wakeup_api(chan); --# endif -- }else if (chan->common.usedby == STACK){ -- wanpipe_lip_kick(chan,0); + /* Unconfiging, only on shutdown */ +- if (IS_TE1_CARD(card) || IS_56K_CARD(card)) { +- wan_smp_flag_t smp_flags,smp_flags1; +- if (card->wandev.fe_iface.pre_release){ +- card->wandev.fe_iface.pre_release(&card->fe); - } --#endif -+ wanpipe_wake_stack(chan); +- card->hw_iface.hw_lock(card->hw,&smp_flags1); +- wan_spin_lock_irq(&card->wandev.lock, &smp_flags); +- __aft_fe_intr_ctrl(card, 0); +- if (card->wandev.fe_iface.unconfig){ +- card->wandev.fe_iface.unconfig(&card->fe); +- } +- __aft_fe_intr_ctrl(card, 1); +- wan_spin_unlock_irq(&card->wandev.lock, &smp_flags); +- card->hw_iface.hw_unlock(card->hw,&smp_flags1); +- ++ if (card->wandev.fe_iface.pre_release){ ++ card->wandev.fe_iface.pre_release(&card->fe); } +- +- wan_spin_lock_irq(&card->wandev.lock,&flags); +- +- wan_set_bit(CARD_DOWN,&card->wandev.critical); ++ card->hw_iface.hw_lock(card->hw,&smp_flags1); ++ wan_spin_lock_irq(&card->wandev.lock, &smp_flags); ++ __aft_fe_intr_ctrl(card, 0); ++ if (card->wandev.fe_iface.unconfig){ ++ card->wandev.fe_iface.unconfig(&card->fe); ++ } ++ __aft_fe_intr_ctrl(card, 1); ++ wan_spin_unlock_irq(&card->wandev.lock, &smp_flags); ++ card->hw_iface.hw_unlock(card->hw,&smp_flags1); + + /* Disable DMA ENGINE before we perform + * core reset. Otherwise, we will receive + * rx fifo errors on subsequent resetart. */ +- disable_data_error_intr(card,DEVICE_DOWN); +- ++ wan_spin_lock_irq(&card->wandev.lock,&smp_flags); ++ disable_data_error_intr(card,LINK_DOWN); ++#if defined(AFT_RTP_SUPPORT) + aft_rtp_unconfig(card); +- +- wan_spin_unlock_irq(&card->wandev.lock,&flags); +- ++#endif ++ wan_spin_unlock_irq(&card->wandev.lock,&smp_flags); ++ + aft_chip_unconfigure(card); + ++ /* Only disable the irq completely once the ++ chip unconfigure is executed */ ++ wan_spin_lock_irq(&card->wandev.lock,&smp_flags); ++ disable_data_error_intr(card,DEVICE_DOWN); ++ wan_set_bit(CARD_DOWN,&card->wandev.critical); ++ wan_spin_unlock_irq(&card->wandev.lock,&smp_flags); ++ + WP_DELAY(10); - #ifdef AFT_TDM_API_SUPPORT -@@ -4200,19 +4222,36 @@ + + card->hw_iface.getcfg(card->hw, SDLA_USEDCNT, &used_cnt); + +- card->hw_iface.hw_lock(card->hw,&flags1); +- wan_spin_lock_irq(&card->wandev.lock,&flags); ++ card->hw_iface.hw_lock(card->hw,&smp_flags1); ++ wan_spin_lock_irq(&card->wandev.lock,&smp_flags); + __aft_fe_intr_ctrl(card, 0); + aft_hwdev[card->wandev.card_type].aft_led_ctrl(card, WAN_AFT_RED, 0,WAN_AFT_ON); + aft_hwdev[card->wandev.card_type].aft_led_ctrl(card, WAN_AFT_GREEN, 0, WAN_AFT_ON); + __aft_fe_intr_ctrl(card, 1); +- wan_spin_unlock_irq(&card->wandev.lock,&flags); +- card->hw_iface.hw_unlock(card->hw,&flags1); ++ wan_spin_unlock_irq(&card->wandev.lock,&smp_flags); ++ card->hw_iface.hw_unlock(card->hw,&smp_flags1); + + __sdla_pull_ptr_isr_array(card->hw,card,card->wandev.comm_port); + +@@ -2766,9 +2858,9 @@ + DEBUG_EVENT("%s: Global Chip Shutdown Usage=%d\n", + card->devname,used_cnt); + +- wan_spin_lock_irq(&card->wandev.lock,&flags); ++ wan_spin_lock_irq(&card->wandev.lock,&smp_flags); + aft_global_chip_disable(card); +- wan_spin_unlock_irq(&card->wandev.lock,&flags); ++ wan_spin_unlock_irq(&card->wandev.lock,&smp_flags); + } + + +@@ -3134,7 +3226,6 @@ + if (card) { + #if defined(CONFIG_PRODUCT_WANPIPE_TDM_VOICE) + if (card->wan_tdmv.sc && +- !card->u.aft.rtp_len && + card->wandev.config_id != WANCONFIG_AFT_ANALOG && + chan->common.usedby == TDM_VOICE) { + chan->if_stats.rx_packets = card->wandev.stats.rx_packets; +@@ -3171,9 +3262,7 @@ + { + private_area_t* chan= (private_area_t*)wan_netif_priv(dev); + sdla_t *card; +-#if defined(__LINUX__) + wan_smp_flag_t smp_flags; +-#endif + wan_udp_pkt_t *wan_udp_pkt; + int err=-EOPNOTSUPP; + +@@ -4013,7 +4102,6 @@ + if (chan->common.usedby != API && data_error){ + goto rx_comp_error; + } +- } } -+ - if (len > aft_rx_copyback){ +@@ -4044,7 +4132,6 @@ + } -+#if defined(__OpenBSD__) -+ /* Try not to return our mbuf to the kernel. -+ ** Still possibility that firmware can use the hardware pointer -+ ** (not confirmed yet) */ -+ *new_skb=wan_skb_alloc(len + 20); -+ if (!*new_skb){ -+ DEBUG_EVENT("%s:%s: Failed to allocate rx skb pkt (len=%d)!\n", -+ card->devname,chan->if_name,(len+20)); -+ chan->if_stats.rx_dropped++; -+ goto rx_comp_error; -+ } -+ -+ buf=wan_skb_put((*new_skb),len); -+ memcpy(buf, wan_skb_tail(skb),len); -+ -+ aft_init_requeue_free_skb(chan, skb); -+#else + +- + *pkt_error=rx_el->pkt_error; + + /* After a RX FIFO overflow, we must mark max 7 +@@ -4069,12 +4156,14 @@ + } + } + +- + if (len > aft_rx_copyback){ /* The rx size is big enough, thus * send this buffer up the stack * and allocate another one */ -- memset(wan_skb_data(skb),0,sizeof(wp_rx_element_t)); + memset(wan_skb_data(skb),0,sizeof(wp_rx_element_t)); ++#if defined(__FreeBSD__) ++ wan_skb_trim(skb,sizeof(wp_rx_element_t)); ++#endif wan_skb_put(skb,len); wan_skb_pull(skb, sizeof(wp_rx_element_t)); *new_skb=skb; +@@ -4094,6 +4183,9 @@ + } + + buf=wan_skb_put((*new_skb),len); ++#if defined(__FreeBSD__) ++ wan_skb_trim(skb,sizeof(wp_rx_element_t)); ++#endif + memcpy(buf,wan_skb_tail(skb),len); + + aft_init_requeue_free_skb(chan, skb); +@@ -4387,8 +4479,6 @@ - aft_alloc_rx_dma_buff(card,chan,1,1); + new_skb=NULL; + pkt_error=0; +- - -- }else{ -+#endif -+ } else { - - /* The rx packet is very - * small thus, allocate a new -@@ -4372,7 +4411,6 @@ - } - #endif - -- - static int aft_alloc_rx_dma_buff(sdla_t *card, private_area_t *chan, int num, int irq) - { - int i; -@@ -4393,7 +4431,9 @@ - } - - return 0; --} -+} -+ -+ - - - /*============================================================================ -@@ -4407,9 +4447,10 @@ - wan_set_bit(AFT_FE_POLL,&card->u.aft.port_task_cmd); - WAN_TASKQ_SCHEDULE((&card->u.aft.port_task)); - #else -- wan_smp_flag_t smp_flags; -+ wan_smp_flag_t smp_flags; -+ int err = 0; - wan_spin_lock_irq(&card->wandev.lock, &smp_flags); -- card->wandev.fe_iface.polling(&card->fe); -+ err = card->wandev.fe_iface.polling(&card->fe); - wan_spin_unlock_irq(&card->wandev.lock, &smp_flags); - #endif - -@@ -4445,7 +4486,7 @@ - return; - } - -- if (card->u.aft.cfg.tdmv_dchan){ -+ if (card->u.aft.tdmv_dchan){ - top_chan=wan_netif_priv(chan->common.dev); - }else{ - top_chan=chan; -@@ -4472,6 +4513,7 @@ - if (new_skb == NULL){ - continue; - } -+ - len=wan_skb_len(new_skb); - - if (top_chan){ -@@ -4480,19 +4522,18 @@ - } - - if (chan->common.usedby == API){ -- -- if (chan->common.sk == NULL){ -+ -+ if (chan->common.sk == NULL){ - DEBUG_TEST("%s: No sock bound to channel rx dropping!\n", - chan->if_name); -- chan->if_stats.rx_dropped++; -- wan_skb_free(new_skb); -+ chan->if_stats.rx_dropped++; -+ wan_skb_free(new_skb); - continue; -- } -+ } - - #if defined(__LINUX__) - # ifndef CONFIG_PRODUCT_WANPIPE_GENERIC - -- - /* Only for API, we insert packet status - * byte to indicate a packet error. Take - * this byte and put it in the api header */ -@@ -4502,10 +4543,12 @@ - memset(rx_hdr,0,sizeof(api_rx_hdr_t)); - rx_hdr->error_flag=pkt_error; - }else{ -+ int hroom=wan_skb_headroom(new_skb); -+ int rx_sz=sizeof(api_rx_hdr_t); - DEBUG_EVENT("%s: Error Rx pkt headroom %d < %d\n", - chan->if_name, -- wan_skb_headroom(new_skb), -- sizeof(api_rx_hdr_t)); -+ hroom, -+ rx_sz); - ++chan->if_stats.rx_dropped; - wan_skb_free(new_skb); - continue; -@@ -4554,47 +4597,61 @@ - card->devname,chan->logic_ch_num,wan_skb_len(new_skb), - chan->tdmv_chan); - wan_skb_free(new_skb); -- -+ - #ifdef AFT_TDM_API_SUPPORT -- } else if (chan->tdmv_chan) { -+/* TDM API SUPPORT COMPILED IN */ -+ } else { - - int err; - wanpipe_tdm_api_dev_t *wp_tdm_api_dev = - &chan->wp_tdm_api_dev_idx[chan->tdmv_chan]; -+ -+ if (is_tdm_api(chan,wp_tdm_api_dev)){ - -- if (wan_skb_headroom(new_skb) >= sizeof(api_rx_hdr_t)){ -- api_rx_hdr_t *rx_hdr = -- (api_rx_hdr_t*)skb_push(new_skb,sizeof(api_rx_hdr_t)); -- memset(rx_hdr,0,sizeof(api_rx_hdr_t)); -- //rx_hdr->error_flag=pkt_error; -- } else { -- if (WAN_NET_RATELIMIT()){ -- DEBUG_EVENT("%s: Error Rx pkt headroom %u < %u\n", -- chan->if_name, -- (u32)wan_skb_headroom(new_skb), -- (u32)sizeof(api_rx_hdr_t)); -+ if (wan_skb_headroom(new_skb) >= sizeof(api_rx_hdr_t)){ -+ api_rx_hdr_t *rx_hdr = -+ (api_rx_hdr_t*)skb_push(new_skb,sizeof(api_rx_hdr_t)); -+ memset(rx_hdr,0,sizeof(api_rx_hdr_t)); -+ //rx_hdr->error_flag=pkt_error; -+ } else { -+ if (WAN_NET_RATELIMIT()){ -+ DEBUG_EVENT("%s: Error Rx pkt headroom %u < %u\n", -+ chan->if_name, -+ (u32)wan_skb_headroom(new_skb), -+ (u32)sizeof(api_rx_hdr_t)); -+ } -+ ++chan->if_stats.rx_dropped; -+ wan_skb_free(new_skb); -+ continue; - } -- ++chan->if_stats.rx_dropped; -- wan_skb_free(new_skb); -- continue; -- } -- -- err=wanpipe_tdm_api_rx_hdlc(wp_tdm_api_dev,new_skb); -- if (err){ -- ++chan->if_stats.rx_dropped; -+ -+ err=wanpipe_tdm_api_rx_hdlc(wp_tdm_api_dev,new_skb); -+ if (err){ -+ ++chan->if_stats.rx_dropped; -+ wan_skb_free(new_skb); -+ continue; -+ } -+ -+ } else { -+ DEBUG_EVENT("%s: DCHAN Rx Packet critical error op not supported ch=%i\n",card->devname,chan->tdmv_chan); -+ ++chan->if_stats.rx_dropped; - wan_skb_free(new_skb); -- continue; -+ continue; + + /* The post function will take care + * of the skb and new_skb buffer. +@@ -5031,8 +5121,7 @@ } --#endif -+ } -+#else -+/* TDM API SUPPORT NOT COMPILED IN */ -+ - } else { -- DEBUG_EVENT("%s: DCHAN Rx Packet critical error op not supported\n",card->devname); -+ DEBUG_EVENT("%s: TDM API support not compiled in\n",card->devname); - ++chan->if_stats.rx_dropped; - wan_skb_free(new_skb); - continue; -- } -- -- }else if (chan->common.usedby == TDM_VOICE){ -+ } -+#endif -+ -+ } else if (chan->common.usedby == TDM_VOICE){ - /* TDM VOICE doesn't operate here */ - if (WAN_NET_RATELIMIT()){ - DEBUG_EVENT("%s:%ld Critical Error: TDM VOICE Rx Pkt in BH\n", -@@ -4623,7 +4680,7 @@ - chan->if_stats.rx_bytes+=len; - } + #if defined(CONFIG_PRODUCT_WANPIPE_TDM_VOICE) +- if (tmp_card->wan_tdmv.sc && +- !tmp_card->u.aft.rtp_len) { ++ if (tmp_card->wan_tdmv.sc) { + aft_voice_span_rx_tx(tmp_card, + ring_buf_enabled); + }else +@@ -5067,7 +5156,6 @@ + #endif + #if defined(CONFIG_PRODUCT_WANPIPE_TDM_VOICE) + if (card->wan_tdmv.sc && +- !card->u.aft.rtp_len && + card->wandev.config_id != WANCONFIG_AFT_ANALOG) { + u32 dmareg; + aft_voice_span_rx_tx(card, 0); +@@ -7076,7 +7164,7 @@ + private_area_t *chan = (private_area_t *)data; + sdla_t *card = chan->card; + u32 reg,dma_descr,dma_status; +- aft_dma_chain_t *dma_chain; ++ wan_dma_descr_t *dma_chain; -- while((skb=wan_skb_dequeue(&chan->wp_tx_complete_list)) != NULL){ -+ while(chan->hdlc_eng && (skb=wan_skb_dequeue(&chan->wp_tx_complete_list)) != NULL){ - xilinx_tx_post_complete (chan->common.card,chan,skb); - wan_skb_free(skb); - } -@@ -4799,15 +4856,16 @@ - * Determin the interrupt received and handle it. + if (wan_test_and_set_bit(TX_HANDLER_BUSY,&chan->dma_status)){ + DEBUG_EVENT("%s: SMP Critical in %s\n", +@@ -7180,7 +7268,7 @@ + private_area_t *chan = (private_area_t *)data; + sdla_t *card = chan->card; + u32 reg,dma_descr; +- aft_dma_chain_t *dma_chain; ++ wan_dma_descr_t *dma_chain; + + if (wan_test_and_set_bit(TX_HANDLER_BUSY,&chan->dma_status)){ + DEBUG_EVENT("%s: SMP Critical in %s\n", +@@ -7273,7 +7361,7 @@ + * aft_dma_chain_tx * */ --static void wp_xilinx_isr (sdla_t* card) -+static WAN_IRQ_RETVAL wp_xilinx_isr (sdla_t* card) +-static int aft_dma_chain_tx(aft_dma_chain_t *dma_chain,private_area_t *chan, int intr,int fifo) ++static int aft_dma_chain_tx(wan_dma_descr_t *dma_chain,private_area_t *chan, int intr,int fifo) { - int i; - u32 reg; - u32 dma_tx_reg,dma_rx_reg,tx_fifo_status=0,rx_fifo_status=0; - private_area_t *chan; -+ WAN_IRQ_RETVAL_DECL(irq_ret); - if (wan_test_bit(CARD_DOWN,&card->wandev.critical)){ -- return; -+ WAN_IRQ_RETURN(irq_ret); + #define dma_descr dma_chain->dma_descr +@@ -7288,8 +7376,9 @@ + dma_descr=(chan->logic_ch_num<<4) + (dma_ch_indx*AFT_DMA_INDEX_OFFSET) + + AFT_PORT_REG(card,AFT_TX_DMA_HI_DESCR_BASE_REG); + +- DEBUG_DMA("%s:%d: chan logic ch=%ld chain=%d dma_descr=0x%x set!\n", +- __FUNCTION__,__LINE__,chan->logic_ch_num,dma_ch_indx,dma_descr); ++ DEBUG_DMA("%s: %s:%s: LogicCh=%ld ChIndex=%d DmaDesc=0x%x set\n", ++ __FUNCTION__, card->devname, chan->if_name, ++ chan->logic_ch_num,dma_ch_indx,dma_descr); + + card->hw_iface.bus_read_4(card->hw,dma_descr,®); + +@@ -7340,8 +7429,9 @@ + len_align=1; } - wan_set_bit(0,&card->in_isr); -@@ -4833,6 +4891,7 @@ - card->devname); +- DEBUG_DMA("%s: TXDMA_LO=0x%X PhyAddr=0x%X DmaDescr=0x%X Len=%i\n", +- __FUNCTION__,reg,(int)dma_chain->dma_addr,dma_descr,len); ++ DEBUG_DMA("%s: %s:%s: TXDMA_LO=0x%X PhyAddr=0x%X DmaDescr=0x%X Len=%d\n", ++ __FUNCTION__,card->devname,chan->if_name, ++ reg,dma_chain->dma_addr,dma_descr,len); - aft_critical_shutdown(card); -+ WAN_IRQ_RETVAL_SET(irq_ret, WAN_IRQ_HANDLED); - goto isr_end; - } - }else{ -@@ -4857,6 +4916,7 @@ - #else - front_end_interrupt(card,reg,0); - #endif -+ WAN_IRQ_RETVAL_SET(irq_ret, WAN_IRQ_HANDLED); - } - } + card->hw_iface.bus_write_4(card->hw,dma_descr,reg); -@@ -4875,6 +4935,7 @@ - tx_fifo_status&=card->u.aft.active_ch_map; - - fifo_error_interrupt(card,reg,tx_fifo_status,rx_fifo_status); -+ WAN_IRQ_RETVAL_SET(irq_ret, WAN_IRQ_HANDLED); - } +@@ -7404,8 +7494,9 @@ + wan_set_bit(AFT_TXDMA_HI_DMA_CMD_BIT,®); } -@@ -4887,6 +4948,7 @@ - if (wan_test_bit(GLOBAL_INTR_ENABLE_BIT,®) && - (wan_test_bit(DMA_INTR_FLAG,®) || rx_fifo_status) ){ +- DEBUG_DMA("%s: TXDMA_HI=0x%X DmaDescr=0x%X Len=%d Intr=%d\n", +- __FUNCTION__,reg,dma_descr,len,intr); ++ DEBUG_DMA("%s:: %s:%s: TXDMA_HI=0x%X DmaDescr=0x%X Len=%d Intr=%d\n", ++ __FUNCTION__,card->devname,chan->if_name, ++ reg,dma_descr,len,intr); -+ WAN_IRQ_RETVAL_SET(irq_ret, WAN_IRQ_HANDLED); + card->hw_iface.bus_write_4(card->hw,dma_descr,reg); - /* Receive DMA Engine */ - card->hw_iface.bus_read_4(card->hw, -@@ -5017,7 +5079,8 @@ +@@ -7426,15 +7517,17 @@ + * aft_dma_chain_init + * + */ +-static void aft_tx_dma_chain_init(private_area_t *chan, aft_dma_chain_t *dma_chain) ++static void aft_tx_dma_chain_init(private_area_t *chan, wan_dma_descr_t *dma_chain) + { ++#define card chan->card - DEBUG_ISR("---- ISR end.-------------------\n"); - wan_clear_bit(0,&card->in_isr); -- return; -+ -+ WAN_IRQ_RETURN(irq_ret); - } +- if (dma_chain->dma_addr){ +- chan->card->hw_iface.pci_unmap_dma(chan->card->hw, +- dma_chain->dma_addr-dma_chain->dma_offset, +- dma_chain->dma_map_len, +- PCI_DMA_TODEVICE); +- } ++ card->hw_iface.busdma_sync( card->hw, ++ dma_chain, ++ 1, 1, ++ SDLA_DMA_POSTWRITE); ++ card->hw_iface.busdma_unmap( card->hw, ++ dma_chain, ++ SDLA_DMA_POSTWRITE); - -@@ -5091,6 +5154,12 @@ - wan_udp_pkt->wan_udp_data_len=1; - break; - -+ case DIGITAL_LOOPTEST: -+ wan_udp_pkt->wan_udp_return_code = 0; -+ DEBUG_EVENT("Ready to send some data!!!\n"); -+ break; -+ -+ - case AFT_MODEM_STATUS: - wan_udp_pkt->wan_udp_return_code = 0; - if (card->wandev.state == WAN_CONNECTED){ -@@ -5101,11 +5170,6 @@ - wan_udp_pkt->wan_udp_data_len=1; - break; - -- case DIGITAL_LOOPTEST: -- wan_udp_pkt->wan_udp_return_code = -- digital_loop_test(card,wan_udp_pkt); -- break; -- - - case READ_OPERATIONAL_STATS: - wan_udp_pkt->wan_udp_return_code = 0; -@@ -5432,7 +5496,7 @@ - if (card->wandev.ignore_front_end_status == WANOPT_YES){ - return; + if (dma_chain->skb){ + if (!chan->hdlc_eng){ +@@ -7451,34 +7544,28 @@ + dma_chain->skb=NULL; + } } - -+ - if (!wan_test_bit(AFT_CHIP_CONFIGURED,&card->u.aft.chip_cfg_status)&& - card->fe.fe_status == FE_CONNECTED){ - DEBUG_TEST("%s: Skipping Front Front End State = %x\n", -@@ -5440,7 +5504,7 @@ - - wan_set_bit(AFT_FRONT_END_UP,&card->u.aft.chip_cfg_status); - return; -- } -+ } - - if (card->fe.fe_status == FE_CONNECTED){ - -@@ -5489,7 +5553,7 @@ - - }else{ - -- if (card->u.aft.cfg.tdmv_span_no){ -+ if (card->tdmv_conf.span_no){ - /* If running in TDMV voice mode, just note - * that state went down, but keep the - * connection up */ -@@ -6139,20 +6203,18 @@ - if (chan->tx_dma_skb){ - wan_skb_queue_head(&chan->wp_tx_pending_list, chan->tx_dma_skb); - chan->tx_dma_skb=NULL; -+ if (chan->lip_atm) { -+ netskb_t *tmpskb = chan->tx_dma_skb; -+ chan->tx_dma_skb=NULL; -+ wan_skb_free(tmpskb); -+ } else { -+ wan_skb_queue_head(&chan->wp_tx_pending_list, chan->tx_dma_skb); -+ chan->tx_dma_skb=NULL; -+ } - } - -- /* Wake up the stack, because tx dma interrupt -- * failed */ --#if defined(__LINUX__) -- if (WAN_NETIF_QUEUE_STOPPED(chan->common.dev)){ -- WAN_NETIF_WAKE_QUEUE(chan->common.dev); -- if (chan->common.usedby == API){ --#ifndef CONFIG_PRODUCT_WANPIPE_GENERIC -- wan_wakeup_api(chan); --#endif -- } -- } --#endif -+ /* Wake up the stack, because tx dma interrupt failed */ -+ wanpipe_wake_stack(chan); - - if (!chan->hdlc_eng){ - if (wan_test_bit(0,&chan->idle_start)){ -@@ -6197,8 +6259,8 @@ - return 0; - } - -- if ((SYSTEM_TICKS-timeout) > 10){ -- DEBUG_EVENT("%s: Error: Access to timeslot %d timed out!\n", -+ if ((SYSTEM_TICKS-timeout) > 1){ -+ DEBUG_EVENT("%s: Warning: Access to timeslot %d timed out!\n", - card->devname,ts_orig); - break; - } -@@ -6214,7 +6276,11 @@ - private_area_t *chan = wan_netif_priv(dev); - private_area_t *ch_ptr; - -- if (chan == NULL){ -+ if (chan == NULL) { -+ if (WAN_NET_RATELIMIT()){ -+ DEBUG_EVENT("%s: %s:%d No chan ptr!\n", -+ card->devname,__FUNCTION__,__LINE__); -+ } - /* This is case can happened for WANPIPE (LITE) */ - return 0; - } -@@ -6253,7 +6319,6 @@ - wan_update_api_state(chan); - } - #endif -- - if (chan->common.usedby == STACK){ - if (state == WAN_CONNECTED){ - wanpipe_lip_connect(chan,0); -@@ -6725,6 +6790,7 @@ - skb->pkt_type = WAN_PACKET_ERR; - skb->protocol=htons(PVC_PROT); - skb->dev=chan->common.dev; -+ - DEBUG_TEST("%s: Sending OOB message len=%i\n", - chan->if_name, wan_skb_len(skb)); - -@@ -6861,7 +6927,7 @@ - err=aft_rx_post_complete_voice(card,chan,skb); - if (err==0){ - if (wan_tracing_enabled(&chan->trace_info) >= 1){ -- if (card->u.aft.cfg.tdmv_dchan == 0){ -+ if (card->u.aft.tdmv_dchan == 0){ - wan_capture_trace_packet_offset(card, &chan->trace_info, skb, - IS_T1_CARD(card)?24:16, TRC_INCOMING_FRM); - } -@@ -6980,12 +7046,24 @@ +- dma_chain->dma_addr=0; +- dma_chain->dma_len=0; +- dma_chain->dma_map_len=dma_chain->dma_len; +- + wan_clear_bit(0,&dma_chain->init); ++#undef card } - #if defined(__LINUX__) -+# if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)) - static void aft_port_task (void * card_ptr) -+# else -+static void aft_port_task (struct work_struct *work) -+# endif - #else +-static void aft_rx_dma_chain_init(private_area_t *chan, aft_dma_chain_t *dma_chain) ++static void aft_rx_dma_chain_init(private_area_t *chan, wan_dma_descr_t *dma_chain) + { ++#define card chan->card + +- if (dma_chain->dma_addr){ +- chan->card->hw_iface.pci_unmap_dma(chan->card->hw, +- dma_chain->dma_addr-dma_chain->dma_offset, +- dma_chain->dma_map_len, +- PCI_DMA_FROMDEVICE); +- } ++ card->hw_iface.busdma_sync( card->hw, ++ dma_chain, ++ 1, 1, ++ SDLA_DMA_POSTREAD); ++ card->hw_iface.busdma_unmap( card->hw, ++ dma_chain, ++ SDLA_DMA_POSTREAD); + + if (dma_chain->skb){ + aft_init_requeue_free_skb(chan,dma_chain->skb); + dma_chain->skb=NULL; + } +- +- dma_chain->dma_addr=0; +- dma_chain->dma_len=0; +- dma_chain->dma_map_len=0; +- + wan_clear_bit(0,&dma_chain->init); ++#undef card + } + + +@@ -7486,7 +7573,7 @@ + static int aft_dma_voice_tx(sdla_t *card, private_area_t *chan) + { + int err=0; +- aft_dma_chain_t *dma_chain; ++ wan_dma_descr_t *dma_chain; + u32 reg, dma_ram_desc; + + if (wan_test_and_set_bit(TX_DMA_BUSY,&chan->dma_status)){ +@@ -7498,6 +7585,10 @@ + + dma_chain = &chan->tx_dma_chain_table[0]; + ++ DEBUG_DMA("%s: %s:%s:: Chain %d Used %ld\n", ++ __FUNCTION__,card->devname,chan->if_name, ++ dma_chain->index,dma_chain->init); ++ + /* If the current DMA chain is in use,then + * all chains are busy */ + if (wan_test_and_set_bit(0,&dma_chain->init)){ +@@ -7533,29 +7624,19 @@ + buf=wan_skb_put(dma_chain->skb,chan->mtu*2); + memset(buf,chan->idle_flag,chan->mtu*2); + +- dma_chain->dma_addr = card->hw_iface.pci_map_dma(card->hw, +- wan_skb_data(dma_chain->skb), +- chan->dma_mru, +- PCI_DMA_TODEVICE); +- +- if (dma_chain->dma_addr & AFT_TDMV_BUF_MASK) { +- dma_chain->dma_offset = +- AFT_TDMV_BUF_MASK - (dma_chain->dma_addr & AFT_TDMV_BUF_MASK) + 1; +- +- dma_chain->dma_virt = wan_skb_data(dma_chain->skb) + dma_chain->dma_offset; +- dma_chain->dma_addr += dma_chain->dma_offset; +- +- } else { +- dma_chain->dma_offset=0; +- dma_chain->dma_virt = wan_skb_data(dma_chain->skb); +- } +- +- dma_chain->dma_len = wan_skb_len(dma_chain->skb); +- dma_chain->dma_map_len=chan->dma_mru; +- ++ /* A-DMA */ ++ card->hw_iface.busdma_map( card->hw, ++ dma_chain, ++ wan_skb_data(dma_chain->skb), ++ wan_skb_len(dma_chain->skb), ++ chan->dma_mru, ++ SDLA_DMA_PREWRITE); ++ card->hw_iface.busdma_sync( card->hw, ++ dma_chain, ++ 1, 1, ++ SDLA_DMA_PREWRITE); + } + +- + dma_ram_desc=chan->logic_ch_num*4 + + AFT_PORT_REG(card,AFT_DMA_CHAIN_RAM_BASE_REG); + card->hw_iface.bus_read_4(card->hw,dma_ram_desc,®); +@@ -7590,7 +7671,7 @@ + static int aft_dma_tx (sdla_t *card,private_area_t *chan) + { + int err=0, intr=0, cnt=0; +- aft_dma_chain_t *dma_chain; ++ wan_dma_descr_t *dma_chain; + netskb_t *skb=NULL; + + if (chan->channelized_cfg && !chan->hdlc_eng){ +@@ -7685,17 +7766,19 @@ + } + + dma_chain->skb=skb; +- +- dma_chain->dma_addr = card->hw_iface.pci_map_dma(card->hw, ++ ++ /* A-DMA */ ++ card->hw_iface.busdma_map( card->hw, ++ dma_chain, + wan_skb_data(dma_chain->skb), + wan_skb_len(dma_chain->skb), +- PCI_DMA_TODEVICE); ++ wan_skb_len(dma_chain->skb), ++ SDLA_DMA_PREWRITE); ++ card->hw_iface.busdma_sync( card->hw, ++ dma_chain, ++ 1, chan->single_dma_chain, ++ SDLA_DMA_PREWRITE); + +- dma_chain->dma_len = wan_skb_len(dma_chain->skb); +- dma_chain->dma_map_len=dma_chain->dma_len; +- dma_chain->dma_offset=0; +- +- + DEBUG_TEST("%s: DMA Chain %d: Cur=%d Pend=%d\n", + chan->if_name,dma_chain->index, + chan->tx_chain_indx,chan->tx_pending_chain_indx); +@@ -7763,7 +7846,7 @@ + * + **********************************************************************/ + +-static int aft_dma_chain_rx(aft_dma_chain_t *dma_chain, private_area_t *chan, int intr, int fifo) ++static int aft_dma_chain_rx(wan_dma_descr_t *dma_chain, private_area_t *chan, int intr, int fifo) + { + #define dma_descr dma_chain->dma_descr + #define reg dma_chain->reg +@@ -7784,8 +7867,10 @@ + dma_descr=(chan->logic_ch_num<<4) + (dma_ch_indx*AFT_DMA_INDEX_OFFSET) + + AFT_PORT_REG(card,AFT_RX_DMA_LO_DESCR_BASE_REG); + +- DEBUG_DMA("%s: RxDMA_LO(%ld) = 0x%X, DmaDescr=0x%X\n", +- __FUNCTION__,chan->logic_ch_num,reg,dma_descr); ++ DEBUG_DMA("%s: %s:%s: RxDMA_LO(%ld) = 0x%X, PhyAddr:%X DmaDescr=0x%X (%p)\n", ++ __FUNCTION__,card->devname,chan->if_name, ++ chan->logic_ch_num,reg, ++ dma_chain->dma_addr, dma_descr,dma_chain); + + card->hw_iface.bus_write_4(card->hw,dma_descr,reg); + +@@ -7831,8 +7916,9 @@ + wan_set_bit(AFT_RXDMA_HI_DMA_CMD_BIT,®); + } + +- DEBUG_DMA("%s: RXDMA_HI(%ld) = 0x%X, DmaDescr=0x%X\n", +- __FUNCTION__,chan->logic_ch_num,reg,dma_descr); ++ DEBUG_DMA("%s: %s:%s: RXDMA_HI(%ld) = 0x%X, DmaDescr=0x%X\n", ++ __FUNCTION__,card->devname,chan->if_name, ++ chan->logic_ch_num,reg,dma_descr); + + card->hw_iface.bus_write_4(card->hw,dma_descr,reg); + +@@ -7849,7 +7935,7 @@ + static int aft_dma_voice_rx(sdla_t *card, private_area_t *chan) + { + int err=0; +- aft_dma_chain_t *dma_chain; ++ wan_dma_descr_t *dma_chain; + u32 reg, dma_ram_desc; + + if (wan_test_and_set_bit(RX_DMA_BUSY,&chan->dma_status)){ +@@ -7860,6 +7946,9 @@ + + dma_chain = &chan->rx_dma_chain_table[0]; + ++ DEBUG_DMA("%s: %s:%s: Chain %d Used %ld\n", ++ __FUNCTION__,card->devname,chan->if_name, ++ dma_chain->index,dma_chain->init); + + /* If the current DMA chain is in use,then + * all chains are busy */ +@@ -7886,50 +7975,21 @@ + + wan_skb_init(dma_chain->skb,16); + wan_skb_trim(dma_chain->skb,0); +- +-#if defined(__LINUX__) +- dma_chain->dma_addr = card->hw_iface.pci_map_dma(card->hw, ++ ++ /* A-DMA */ ++ card->hw_iface.busdma_map( card->hw, ++ dma_chain, + wan_skb_tail(dma_chain->skb), + chan->dma_mru, +- PCI_DMA_FROMDEVICE); +- +- if (dma_chain->dma_addr & AFT_TDMV_BUF_MASK) { +- dma_chain->dma_offset = +- AFT_TDMV_BUF_MASK - (dma_chain->dma_addr & AFT_TDMV_BUF_MASK) + 1; +- +- dma_chain->dma_virt = wan_skb_tail(dma_chain->skb) + dma_chain->dma_offset; +- dma_chain->dma_addr += dma_chain->dma_offset; +- +- } else { +- dma_chain->dma_offset=0; +- dma_chain->dma_virt = wan_skb_tail(dma_chain->skb); +- } +- +- dma_chain->dma_len = chan->dma_mru-dma_chain->dma_offset; +- dma_chain->dma_map_len=dma_chain->dma_len; +- +- DEBUG_TEST("%s: RXDMA PHY = 0x%08X VIRT = %p \n", ++ chan->dma_mru, ++ SDLA_DMA_PREREAD); ++ card->hw_iface.busdma_sync( card->hw, ++ dma_chain, ++ MAX_AFT_DMA_CHAINS, chan->single_dma_chain, ++ SDLA_DMA_PREREAD); ++ DEBUG_DMA("%s: RXDMA PHY = 0x%08X VIRT = %p \n", + chan->if_name, + dma_chain->dma_addr,wan_skb_tail(dma_chain->skb)+dma_chain->dma_offset); +-#else +- dma_chain->dma_addr = +- virt_to_phys(wan_skb_tail(dma_chain->skb)); +- +- if (dma_chain->dma_addr & AFT_TDMV_BUF_MASK) { +- dma_chain->dma_offset = +- AFT_TDMV_BUF_MASK - +- (dma_chain->dma_addr & AFT_TDMV_BUF_MASK) + 1; +- dma_chain->dma_virt = wan_skb_tail(dma_chain->skb) + dma_chain->dma_offset; +- dma_chain->dma_addr = virt_to_phys(wan_skb_tail(dma_chain->dma_virt)); +- } else { +- dma_chain->dma_offset=0; +- dma_chain->dma_virt = wan_skb_tail(dma_chain->skb); +- } +- +- dma_chain->dma_len = chan->dma_mru; +- dma_chain->dma_map_len=dma_chain->dma_len; +- +-#endif + }else{ + wan_skb_init(dma_chain->skb,16); + wan_skb_trim(dma_chain->skb,0); +@@ -7959,11 +8019,10 @@ + static int aft_dma_rx(sdla_t *card, private_area_t *chan) + { + int err=0, intr=0; +- aft_dma_chain_t *dma_chain; ++ wan_dma_descr_t *dma_chain; + int cur_dma_ptr, i,max_dma_cnt,free_queue_len; + u32 reg, dma_ram_desc; + +- + if (chan->channelized_cfg && !chan->hdlc_eng){ + return aft_dma_voice_rx(card,chan); + } +@@ -8042,16 +8101,17 @@ + } + + } +- +- dma_chain->dma_addr = card->hw_iface.pci_map_dma(card->hw, +- wan_skb_tail(dma_chain->skb), +- chan->dma_mru, +- PCI_DMA_FROMDEVICE); +- +- dma_chain->dma_len = chan->dma_mru; +- dma_chain->dma_map_len=dma_chain->dma_len; +- dma_chain->dma_offset=0; + ++ card->hw_iface.busdma_map( card->hw, ++ dma_chain, ++ wan_skb_tail(dma_chain->skb), ++ chan->dma_mru, ++ chan->dma_mru, ++ SDLA_DMA_PREREAD); ++ card->hw_iface.busdma_sync( card->hw, ++ dma_chain, ++ 1, chan->single_dma_chain, ++ SDLA_DMA_PREREAD); + intr=0; + if (!wan_test_bit(RX_INTR_PENDING,&chan->dma_chain_status)){ + +@@ -8128,7 +8188,7 @@ + sdla_t *card = chan->card; + u32 reg,dma_descr; + wp_rx_element_t *rx_el; +- aft_dma_chain_t *dma_chain; ++ wan_dma_descr_t *dma_chain; + int i,max_dma_cnt, cur_dma_ptr; + int rx_data_available=0; + u32 dma_ram_desc; +@@ -8210,11 +8270,6 @@ + wan_clear_bit(RX_INTR_PENDING,&chan->dma_chain_status); + } + +- card->hw_iface.pci_unmap_dma(card->hw, +- dma_chain->dma_addr-dma_chain->dma_offset, +- dma_chain->dma_map_len, +- PCI_DMA_FROMDEVICE); +- + if (sizeof(wp_rx_element_t) > wan_skb_headroom(dma_chain->skb)){ + if (WAN_NET_RATELIMIT()){ + DEBUG_EVENT("%s: Rx error: rx_el=%u > max head room=%u\n", +@@ -8247,9 +8302,32 @@ + + card->hw_iface.bus_read_4(card->hw,dma_descr, &rx_el->reg); + ++ /* New for FreeBSD/Solaris */ ++ rx_el->len=rx_el->reg&AFT_RXDMA_HI_DMA_LENGTH_MASK; ++ if (chan->hdlc_eng){ ++ /* In HDLC mode, calculate rx length based ++ * on alignment value, received from DMA */ ++ rx_el->len=((((chan->dma_mru>>2)-1)-rx_el->len)<<2) - (~(rx_el->align)&AFT_RXDMA_LO_ALIGN_MASK); ++ }else{ ++ /* In Transparent mode, our RX buffer will always be ++ * aligned to the 32bit (word) boundary, because ++ * the RX buffers are all of equal length */ ++ rx_el->len=(((chan->mru>>2)-rx_el->len)<<2) - (~(0x03)&AFT_RXDMA_LO_ALIGN_MASK); ++ } ++ + rx_el->pkt_error= dma_chain->pkt_error; + rx_el->dma_addr = dma_chain->dma_addr; + ++ /* A-DMA */ ++ card->hw_iface.busdma_sync( card->hw, ++ dma_chain, ++ 1, chan->single_dma_chain, ++ SDLA_DMA_POSTREAD); ++ dma_chain->dma_len = rx_el->len; /* update real dma len*/ ++ card->hw_iface.busdma_unmap( card->hw, ++ dma_chain, ++ SDLA_DMA_POSTREAD); ++ + wan_skb_queue_tail(&chan->wp_rx_complete_list,dma_chain->skb); + rx_data_available=1; + +@@ -8262,9 +8340,6 @@ + + rx_hndlr_skip_rx: + dma_chain->skb=NULL; +- dma_chain->dma_addr=0; +- dma_chain->dma_len=0; +- dma_chain->dma_map_len=dma_chain->dma_len; + dma_chain->pkt_error=0; + wan_clear_bit(0,&dma_chain->init); + +@@ -8369,7 +8444,7 @@ + #if 0 + u32 reg,cur_dma_ptr; + sdla_t *card=chan->card; +- aft_dma_chain_t *dma_chain; ++ wan_dma_descr_t *dma_chain; + u32 dma_descr; + int i; + u32 dma_ram_desc; +@@ -8401,7 +8476,7 @@ + { + u32 reg,cur_dma_ptr,lo_reg; + sdla_t *card=chan->card; +- aft_dma_chain_t *dma_chain; ++ wan_dma_descr_t *dma_chain; + u32 dma_descr; + int i; + u32 dma_ram_desc; +@@ -8455,7 +8530,7 @@ + { + u32 reg,cur_dma_ptr,lo_reg; + sdla_t *card=chan->card; +- aft_dma_chain_t *dma_chain; ++ wan_dma_descr_t *dma_chain; + u32 dma_descr; + int i; + u32 dma_ram_desc; +@@ -8549,7 +8624,7 @@ + { + u32 reg; + sdla_t *card=chan->card; +- aft_dma_chain_t *dma_chain; ++ wan_dma_descr_t *dma_chain; + u32 dma_descr; + int i; + unsigned int dma_cnt=MAX_AFT_DMA_CHAINS; +@@ -8582,19 +8657,19 @@ + reg=0; + card->hw_iface.bus_write_4(card->hw,dma_descr,reg); + +- card->hw_iface.pci_unmap_dma(card->hw, +- dma_chain->dma_addr-dma_chain->dma_offset, +- dma_chain->dma_map_len, +- PCI_DMA_FROMDEVICE); ++ card->hw_iface.busdma_sync( card->hw, ++ dma_chain, ++ 1, chan->single_dma_chain, ++ SDLA_DMA_POSTREAD); ++ card->hw_iface.busdma_unmap( card->hw, ++ dma_chain, ++ SDLA_DMA_POSTREAD); + + if (dma_chain->skb){ + aft_init_requeue_free_skb(chan, dma_chain->skb); + } + + dma_chain->skb=NULL; +- dma_chain->dma_addr=0; +- dma_chain->dma_len=0; +- dma_chain->dma_map_len=dma_chain->dma_len; + dma_chain->pkt_error=0; + wan_clear_bit(0,&dma_chain->init); + } +@@ -8637,7 +8712,7 @@ + { + u32 reg,dma_descr; + sdla_t *card=chan->card; +- aft_dma_chain_t *dma_chain; ++ wan_dma_descr_t *dma_chain; + int i; + void *skb; + unsigned int dma_cnt=MAX_AFT_DMA_CHAINS; +@@ -8893,8 +8968,12 @@ static void aft_port_task (void * card_ptr, int arg) #endif { +-#if defined(__LINUX__) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)) +#if defined(__LINUX__) +# if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)) -+ sdla_t *card = (sdla_t *)container_of(work, sdla_t, u.aft.port_task); + sdla_t *card = (sdla_t *)container_of(work, sdla_t, u.aft.port_task); +# else - sdla_t *card = (sdla_t *)card_ptr; -+# endif -+#else + sdla_t *card = (sdla_t *)card_ptr; -+#endif - wan_smp_flag_t smp_flags; - - if (wan_test_bit(CARD_DOWN,&card->wandev.critical)){ -@@ -7009,9 +7087,10 @@ - if (wan_test_bit(AFT_FE_POLL,&card->u.aft.port_task_cmd)){ - aft_fe_intr_ctrl(card, 0); - if (card->wandev.fe_iface.polling){ -- wan_smp_flag_t smp_flags; -+ wan_smp_flag_t smp_flags; -+ int err = 0; - -- card->wandev.fe_iface.polling(&card->fe); -+ err = card->wandev.fe_iface.polling(&card->fe); - - wan_spin_lock_irq(&card->wandev.lock,&smp_flags); - handle_front_end_state(card); -@@ -7211,8 +7290,8 @@ - - DEBUG_EVENT("%s: TDMV Span = %d : %s\n", - card->devname, -- card->u.aft.cfg.tdmv_span_no, -- card->u.aft.cfg.tdmv_span_no?"Enabled":"Disabled"); -+ card->tdmv_conf.span_no, -+ card->tdmv_conf.span_no?"Enabled":"Disabled"); - - err=0; - -@@ -7222,7 +7301,7 @@ - static int aft_tdmv_free(sdla_t *card) ++# endif + #else + sdla_t *card = (sdla_t *)card_ptr; + #endif +@@ -9414,7 +9493,7 @@ + static int gtmp_cnt=0; + static void aft_set_channel(sdla_t *card, int ch) { - #if defined(CONFIG_PRODUCT_WANPIPE_TDM_VOICE) -- if (card->u.aft.cfg.tdmv_span_no && -+ if (card->tdmv_conf.span_no && - card->wan_tdmv.sc) { - int err; - WAN_TDMV_CALL(remove, (card), err); -@@ -7235,13 +7314,17 @@ - { - - int err = 0; -- int dchan=card->u.aft.cfg.tdmv_dchan; -- -+ int dchan=card->u.aft.tdmv_dchan; -+ -+ if (IS_T1_CARD(card) && card->u.aft.tdmv_dchan){ -+ dchan--; -+ } -+ - if (chan->common.usedby != TDM_VOICE && chan->common.usedby != TDM_VOICE_API){ - return 0; - } - -- if (!card->u.aft.cfg.tdmv_span_no){ -+ if (!card->tdmv_conf.span_no){ - return -EINVAL; - } - -@@ -7272,10 +7355,7 @@ - /* If DCHAN is enabled, set this timeslot, so zaptel - * configures it. However, the wp_tdmv_software_init() - * will remove it from the timeslot list. */ -- if (IS_T1_CARD(card) && card->u.aft.cfg.tdmv_dchan){ -- dchan--; -- } -- if (card->u.aft.cfg.tdmv_dchan){ -+ if (card->u.aft.tdmv_dchan){ - wan_set_bit(dchan,&conf->active_ch); - } - -@@ -7290,7 +7370,7 @@ - #if defined(CONFIG_PRODUCT_WANPIPE_TDM_VOICE) - if (chan->tdmv_zaptel_cfg){ - -- WAN_TDMV_CALL(reg, (card, conf, chan->common.dev), err); -+ WAN_TDMV_CALL(reg, (card, &conf->tdmv, conf->active_ch, conf->hwec.enable, chan->common.dev), err); - if (err < 0){ - DEBUG_EVENT("%s: Error: Failed to register TDMV channel!\n", - chan->if_name); -@@ -7308,7 +7388,7 @@ - } - #endif +- aft_dma_chain_t *tx_dma_chain; ++ wan_dma_descr_t *tx_dma_chain; + u8 *buf; + private_area_t *chan=(private_area_t*)card->u.aft.dev_to_ch_map[ch]; -- if (card->u.aft.cfg.tdmv_dchan){ -+ if (card->u.aft.tdmv_dchan){ - wan_clear_bit(dchan,&conf->active_ch); +@@ -9479,8 +9558,8 @@ + u32 rx_offset=0; + u32 tx_offset=0; + +- aft_dma_chain_t *tx_dma_chain; +- aft_dma_chain_t *rx_dma_chain; ++ wan_dma_descr_t *tx_dma_chain; ++ wan_dma_descr_t *rx_dma_chain; + + tx_dma_chain = &chan->tx_dma_chain_table[0]; + rx_dma_chain = &chan->rx_dma_chain_table[0]; +@@ -9532,8 +9611,8 @@ + + #if 0 + defined(AFT_TDMV_BH_ENABLE) +- aft_dma_chain_t *tx_bh_dma_chain = &chan->tx_dma_chain_table[1]; +- aft_dma_chain_t *rx_bh_dma_chain = &chan->rx_dma_chain_table[1]; ++ wan_dma_descr_t *tx_bh_dma_chain = &chan->tx_dma_chain_table[1]; ++ wan_dma_descr_t *rx_bh_dma_chain = &chan->rx_dma_chain_table[1]; + + if (!rx_bh_dma_chain->skb){ + rx_bh_dma_chain->skb=wan_skb_dequeue(&chan->wp_rx_free_list); +@@ -9576,20 +9655,10 @@ + card->devname,chan->logic_ch_num, + chan->tdmv_chan); + #if 1 +- +-#if 0 +-#warning "RTP TAP ENABLED Not Finished" +- if (card->u.aft.rtp_len) { +- aft_rtp_tap(card,chan, +- rx_dma_chain->dma_virt+rx_offset, +- tx_dma_chain->dma_virt+tx_offset, +- chan->mtu); +- } +-#endif + WAN_TDMV_CALL(rx_chan, + (&card->wan_tdmv,chan->tdmv_chan, +- rx_dma_chain->dma_virt+rx_offset, +- tx_dma_chain->dma_virt+tx_offset), ++ (unsigned char*)rx_dma_chain->dma_virt+rx_offset, ++ (unsigned char*)tx_dma_chain->dma_virt+tx_offset), + err); + #else + #warning "NCDEBUG rx_chan disabled irq" +@@ -9660,7 +9729,26 @@ + + #else + #if 1 ++ ++ card->hw_iface.busdma_sync( card->hw, ++ &chan->tx_dma_chain_table[0], ++ MAX_AFT_DMA_CHAINS, ++ chan->single_dma_chain, ++ SDLA_DMA_POSTREAD); ++ + WAN_TDMV_CALL(rx_tx_span, (card), err); ++ ++ card->hw_iface.busdma_sync( card->hw, ++ &chan->tx_dma_chain_table[0], ++ MAX_AFT_DMA_CHAINS, ++ chan->single_dma_chain, ++ SDLA_DMA_PREWRITE); ++ card->hw_iface.busdma_sync( card->hw, ++ &chan->rx_dma_chain_table[0], ++ MAX_AFT_DMA_CHAINS, ++ chan->single_dma_chain, ++ SDLA_DMA_PREREAD); ++ + #else + #warning "NCDEBUG: rx_tx_span disabled irq" + #endif +@@ -10567,13 +10655,6 @@ + aft_hwdev[card->wandev.card_type].aft_led_ctrl(card, WAN_AFT_GREEN, 0, WAN_AFT_OFF); + } + +-enum { +- WAN_TDM_RTP_NO_CHANGE, +- WAN_TDM_RTP_CALL_START, +- WAN_TDM_RTP_CALL_STOP +-}; +- +- + static int aft_hwec_config (sdla_t *card, private_area_t *chan, wanif_conf_t *conf, int ctrl) + { + int err = 0; +@@ -10619,34 +10700,48 @@ + } + + +-#if defined(__LINUX__) ++#if defined(AFT_RTP_SUPPORT) ++enum { ++ WAN_TDM_RTP_NO_CHANGE, ++ WAN_TDM_RTP_CALL_START, ++ WAN_TDM_RTP_CALL_STOP ++}; + + static void aft_rtp_unconfig(sdla_t *card) + { +- netskb_t *skb; ++ wan_rtp_chan_t *rtp_chan; ++ int i; ++ ++ card->wandev.rtp_len=0; + + card->u.aft.cfg.rtp_ip=0; + card->u.aft.cfg.rtp_sample=0; +- card->u.aft.rtp_len=0; +- if (card->u.aft.rtp_dev) { +- dev_put(card->u.aft.rtp_dev); +- card->u.aft.rtp_dev=NULL; ++ ++ if (card->wandev.rtp_dev) { ++ dev_put(card->wandev.rtp_dev); ++ card->wandev.rtp_dev=NULL; } -@@ -7478,7 +7558,6 @@ - - #endif - -- - static void aft_critical_shutdown (sdla_t *card) - { - -@@ -7490,7 +7569,11 @@ - card->devname); - #endif - -- if (IS_TE1_CARD(card)) { -+ /* TE1 - Unconfiging, only on shutdown */ -+ if (IS_TE1_CARD(card)) { -+ if (card->wandev.fe_iface.pre_release){ -+ card->wandev.fe_iface.pre_release(&card->fe); +- if ((skb=card->u.aft.rx_rtp_skb)) { +- card->u.aft.rx_rtp_skb=NULL; +- wan_skb_free(skb); ++ for (i=0;i<32;i++) { ++ rtp_chan=&card->wandev.rtp_chan[i]; ++ if (rtp_chan->rx_skb) { ++ wan_skb_free(rtp_chan->rx_skb); ++ rtp_chan->rx_skb=NULL; + } - if (card->wandev.fe_iface.unconfig){ - card->wandev.fe_iface.unconfig(&card->fe); - } -@@ -7505,73 +7588,6 @@ ++ if (rtp_chan->tx_skb) { ++ wan_skb_free(rtp_chan->tx_skb); ++ rtp_chan->rx_skb=NULL; ++ } + } +- ++ + } ++#endif + ++#if defined(AFT_RTP_SUPPORT) + static void aft_rtp_config(sdla_t *card) + { +- +-/* RTP TAP Not finished yet */ +- return; +- + ++ return; + #if 0 + if (!card->u.aft.cfg.rtp_ip || !card->u.aft.cfg.rtp_sample) { + goto aft_rtp_init_exit; +@@ -10667,16 +10762,20 @@ + card->u.aft.cfg.rtp_port=9000; + card->u.aft.cfg.rtp_ip=0x0100007F; + card->u.aft.cfg.rtp_sample=100; +- card->u.aft.rtp_len = (card->u.aft.cfg.rtp_sample * 8) + sizeof(wan_rtp_pkt_t); ++ card->wandev.rtp_len = (card->u.aft.cfg.rtp_sample * 8) + sizeof(wan_rtp_pkt_t); + sprintf(card->u.aft.cfg.rtp_devname,"lo"); + +- if ((card->u.aft.rtp_dev=dev_get_by_name(card->u.aft.cfg.rtp_devname)) == NULL){ ++ if ((card->wandev.rtp_dev=dev_get_by_name(card->u.aft.cfg.rtp_devname)) == NULL){ + DEBUG_EVENT("%s: Failed to open rtp tx device %s\n", + card->devname, + card->u.aft.cfg.rtp_devname); + goto aft_rtp_init_exit; + } + ++ card->wandev.rtp_tap=aft_rtp_tap; ++ ++ memset(card->wandev.rtp_chan,0,sizeof(card->wandev.rtp_chan)); ++ + DEBUG_EVENT("%s: Configured rtp tap!\n",card->devname); + return; + +@@ -10690,52 +10789,20 @@ } --static int digital_loop_test(sdla_t* card,wan_udp_pkt_t* wan_udp_pkt) --{ -- netskb_t* skb; -- netdevice_t* dev; -- char* buf; -- private_area_t *chan; -- -- dev = WAN_DEVLE2DEV(WAN_LIST_FIRST(&card->wandev.dev_head)); -- if (dev == NULL) { -- return 1; -- } -- chan = wan_netif_priv(dev); -- if (chan == NULL) { -- return 1; -- } +-#if 0 +-static void aft_rtp_tap(sdla_t *card, private_area_t *chan, u8* rx, u8* tx, u32 len) ++static __inline void aft_rtp_tap_chan(sdla_t *card, u8 *data, u32 len, ++ netskb_t **skb_q, ++ u8 call_status, u8 chan) + { + wan_rtp_pkt_t *pkt; + u8 *buf; + netskb_t *skb; +- u32 ecmap, call_status=WAN_TDM_RTP_NO_CHANGE; - -- if (chan->common.state != WAN_CONNECTED) { -- DEBUG_EVENT("%s: Loop test failed: dev not connected!\n", -- card->devname); -- return 2; +- if (!card->u.aft.cfg.rtp_ip || +- !card->u.aft.cfg.rtp_sample || +- !card->u.aft.rtp_len || +- !card->u.aft.rtp_dev) { +- return; - } -- -- skb = wan_skb_alloc(wan_udp_pkt->wan_udp_data_len+100); -- if (skb == NULL) { -- return 3; + +- if (IS_T1_CARD(card)) { +- ecmap=card->wandev.ec_map; +- } else { +- ecmap=card->wandev.ec_map << 1; - } - -- switch (chan->common.usedby) { -- -- case API: -- wan_skb_push(skb, sizeof(api_rx_hdr_t)); -- break; -- -- case STACK: -- case WANPIPE: -- break; -- -- case TDM_VOICE: -- case TDM_VOICE_API: -- case TDM_VOICE_DCHAN: -- if (card->u.aft.cfg.tdmv_dchan) { -- break; -- } else { -- DEBUG_EVENT("%s: Loop test failed: no dchan in TDMV mode!\n", -- card->devname); +- if (1) { //wan_test_bit(chan->first_time_slot,&ecmap)) { +- if (!wan_test_and_set_bit(0,&chan->tdm_call_status)) { +- /* Start of the call */ +- call_status=WAN_TDM_RTP_CALL_START; +- DEBUG_TEST("%s: CALL Start on ch %i\n", +- chan->if_name,chan->first_time_slot); - } -- /* Fall into the default case */ -- -- default: -- DEBUG_EVENT("%s: Loop test failed: invalid operation mode!\n", -- card->devname); -- wan_skb_free(skb); -- return 4; +- } else { +- if (!wan_test_bit(0,&chan->tdm_call_status)) { +- /* Call not up */ +- return; +- } +- call_status=WAN_TDM_RTP_CALL_STOP; +- DEBUG_TEST("%s: CALL Stop on ch %i\n", +- chan->if_name,chan->first_time_slot); - } - -- buf = wan_skb_put(skb, wan_udp_pkt->wan_udp_data_len); -- memcpy(buf, wan_udp_pkt->wan_udp_data, wan_udp_pkt->wan_udp_data_len); -- -- -- skb->next = skb->prev = NULL; -- skb->dev = dev; -- skb->protocol = htons(ETH_P_IP); -- skb->mac.raw = wan_skb_data(skb); -- dev_queue_xmit(skb); -- -- return 0; --} +- +- if (!(skb=chan->rx_rtp_skb)) { +- card->u.aft.rtp_len = (card->u.aft.cfg.rtp_sample * 8) + sizeof(wan_rtp_pkt_t); +- chan->rx_rtp_skb=wan_skb_alloc(card->u.aft.rtp_len+128); +- if (!chan->rx_rtp_skb) { ++ if (!(skb=*skb_q)) { ++ *skb_q=wan_skb_alloc(card->wandev.rtp_len+128); ++ if (!*skb_q) { + return; + } +- skb=chan->rx_rtp_skb; ++ skb=*skb_q; + pkt = (wan_rtp_pkt_t*)wan_skb_put(skb,sizeof(wan_rtp_pkt_t)); + memset(pkt,0,sizeof(wan_rtp_pkt_t)); + pkt->rtp_hdr.version=2; +@@ -10754,21 +10821,21 @@ + } + + buf=wan_skb_put(skb,len); +- memcpy(buf,rx,len); ++ memcpy(buf,data,len); + pkt->rtp_hdr.ts++; + +- if (wan_skb_len(skb) >= card->u.aft.rtp_len || ++ if (wan_skb_len(skb) >= card->wandev.rtp_len || + call_status==WAN_TDM_RTP_CALL_STOP) { + netskb_t *nskb; + wan_ip_udp_setup(card, + card->u.aft.cfg.rtp_ip, +- card->u.aft.cfg.rtp_port+chan->first_time_slot, ++ card->u.aft.cfg.rtp_port+chan, + wan_skb_data(skb), + wan_skb_len(skb)-sizeof(wan_rtp_pkt_t)); + nskb=wan_skb_clone(skb); + if (nskb) { + nskb->next = nskb->prev = NULL; +- nskb->dev = card->u.aft.rtp_dev; ++ nskb->dev = card->wandev.rtp_dev; + nskb->protocol = htons(ETH_P_802_2); + nskb->mac.raw = wan_skb_data(nskb); + //nskb->nh.raw = wan_skb_data(nskb); +@@ -10779,14 +10846,58 @@ + + #if 0 + /* Disable rtp (debugging) */ +- card->u.aft.rtp_len=0; ++ card->wandev.rtp_len=0; + #endif +- + } + } +-#endif +-#endif + ++static void aft_rtp_tap(void *card_ptr, u8 chan, u8* rx, u8* tx, u32 len) ++{ ++ sdla_t *card = (sdla_t *)card_ptr; ++ u8 call_status=WAN_TDM_RTP_NO_CHANGE; ++ wan_rtp_chan_t *rtp_chan; ++ int span = card->tdmv_conf.span_no-1; ++ ++ ++ if (!card->u.aft.cfg.rtp_ip || ++ !card->u.aft.cfg.rtp_sample || ++ !card->wandev.rtp_len || ++ !card->wandev.rtp_dev) { ++ return; ++ } ++ ++ if (chan >= 32) { ++ if (WAN_NET_RATELIMIT()) { ++ DEBUG_EVENT("%s: Internal Error: rtp tap chan out of range %i\n", ++ card->devname,chan); ++ } ++ return; ++ } ++ ++ rtp_chan = &card->wandev.rtp_chan[chan]; ++ ++ if (1) { //wan_test_bit(chan,&card->wandev.rtp_tap_call_map)) { ++ if (!wan_test_and_set_bit(chan,card->wandev.rtp_tap_call_status)) { ++ /* Start of the call */ ++ call_status=WAN_TDM_RTP_CALL_START; ++ DEBUG_EVENT("%s: CALL Start on ch %i\n", ++ card->devname,chan); ++ } ++ } else { ++ if (!wan_test_bit(chan,card->wandev.rtp_tap_call_status)) { ++ /* Call not up */ ++ return; ++ } ++ call_status=WAN_TDM_RTP_CALL_STOP; ++ DEBUG_EVENT("%s: CALL Stop on ch %i\n", ++ card->devname,chan); ++ } ++ ++ aft_rtp_tap_chan(card, rx, len, &rtp_chan->rx_skb, call_status, span+chan); ++ aft_rtp_tap_chan(card, tx, len, &rtp_chan->tx_skb, call_status, span+chan+1); ++ ++} ++#endif + + static int aft_find_master_if_and_dchan(sdla_t *card, int *master_if, u32 active_ch) + { +@@ -10905,12 +11016,15 @@ + memcpy(buf, wan_udp_pkt->wan_udp_data, wan_udp_pkt->wan_udp_data_len); ++#if defined(__LINUX__) + skb->next = skb->prev = NULL; + skb->dev = dev; + skb->protocol = htons(ETH_P_IP); + skb->mac.raw = wan_skb_data(skb); + dev_queue_xmit(skb); +- ++#elif defined(__FreeBSD__) || defined(__OpenBSD__) ++# warning "FIXME: Add code for digital loop test" ++#endif + return 0; + } /****** End ****************************************************************/ diff --git a/patches/kdrivers/src/net/sdla_56k.c b/patches/kdrivers/src/net/sdla_56k.c index b3a3c4c..90454e3 100644 --- a/patches/kdrivers/src/net/sdla_56k.c +++ b/patches/kdrivers/src/net/sdla_56k.c @@ -4,19 +4,29 @@ * * Author: Nenad Corbic * - * Copyright: (c) 1995-2001 Sangoma Technologies Inc. + * Copyright: (c) 1995-2007 Sangoma Technologies 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 of the License, or (at your option) any later version. * ============================================================================ - * Jul 22, 2001 Nenad Corbic Initial version. - * Oct 01, 2001 Gideon Hack Modifications for interrupt usage. + * Jul 22, 2001 Nenad Corbic + * Initial version. + * + * Oct 01, 2001 Gideon Hack + * Modifications for interrupt usage. + * + * Mar 29, 2007 David Rokhvarg + * 1. Added support for AFT-56k card, at the same time, + * made sure S514-56k card is working too. + * 2. When line is in 'disconnected' state, there is FE + * interrupt every 4 seconds. Do NOT try to disable + * this interrupt (in the 56k chip), and do NOT try to use + * a timer instead of this interrupt because it will NOT work. ****************************************************************************** */ - /* ****************************************************************************** INCLUDE FILES @@ -27,9 +37,11 @@ # include # include # include +# include /* for aft_56k_write_cpld() declaration */ #elif defined(__WINDOWS__) # include # include /* WANPIPE common user API definitions */ +# include /* for aft_56k_write_cpld() declaration */ #else # include # include @@ -42,16 +54,15 @@ /****************************************************************************** DEFINES AND MACROS ******************************************************************************/ -#define WRITE_REG(reg,val) fe->write_fe_reg(fe->card, 0, (u32)(reg),(u32)(val)) -#define READ_REG(reg) fe->read_fe_reg(fe->card, 0, (u32)(reg)) +#define WRITE_REG(reg,val) fe->write_fe_reg(fe->card, 0, (int)(reg),(int)(val)) +#define READ_REG(reg) fe->read_fe_reg(fe->card, 0, (int)(reg)) -#if 0 -#define AFT_FUNC_DEBUG() DEBUG_EVENT("%s:%d\n",__FUNCTION__,__LINE__) +#if 1 +#define AFT_FUNC_DEBUG() #else -#define AFT_FUNC_DEBUG() +#define AFT_FUNC_DEBUG() DEBUG_EVENT("%s:%d\n",__FUNCTION__,__LINE__) #endif - /****************************************************************************** STRUCTURES AND TYPEDEFS ******************************************************************************/ @@ -65,34 +76,25 @@ FUNCTION PROTOTYPES ******************************************************************************/ - static int sdla_56k_global_config(void* pfe); static int sdla_56k_global_unconfig(void* pfe); - -static unsigned int sdla_56k_alarm(sdla_fe_t *fe, int manual_read); - - static int sdla_56k_config(void* pfe); -static int sdla_56k_unconfig(void* pfe); -static int sdla_56k_intr(sdla_fe_t *fe); -static int sdla_56k_check_intr(sdla_fe_t *fe); - static unsigned int sdla_56k_alarm(sdla_fe_t *fe, int manual_read); static int sdla_56k_udp(sdla_fe_t*, void*, unsigned char*); static void display_Rx_code_condition(sdla_fe_t* fe); static int sdla_56k_print_alarm(sdla_fe_t* fe, unsigned int); static int sdla_56k_update_alarm_info(sdla_fe_t *fe, struct seq_file* m, int* stop_cnt); +static int sdla_56k_unconfig(void* pfe); +static int sdla_56k_intr(sdla_fe_t *fe); +static int sdla_56k_check_intr(sdla_fe_t *fe); /* enable 56k chip reset state */ static unsigned int reset_on_LXT441PE(sdla_t *card); /* disable 56k chip reset state */ static unsigned int reset_off_LXT441PE(sdla_t *card); - - - /****************************************************************************** FUNCTION DEFINITIONS ******************************************************************************/ @@ -107,7 +109,9 @@ static unsigned int reset_off_LXT441PE(sdla_t *card); */ static char* sdla_56k_get_fe_media_string(void) { + AFT_FUNC_DEBUG(); return ("S514_56K"); + /*return ("S514_AFT_56K"); ??*/ } /****************************************************************************** @@ -120,6 +124,7 @@ static char* sdla_56k_get_fe_media_string(void) */ static unsigned char sdla_56k_get_fe_media(sdla_fe_t *fe) { + AFT_FUNC_DEBUG(); return fe->fe_cfg.media; } @@ -133,6 +138,7 @@ static unsigned char sdla_56k_get_fe_media(sdla_fe_t *fe) */ static int sdla_56k_get_fe_status(sdla_fe_t *fe, unsigned char *status) { + AFT_FUNC_DEBUG(); *status = fe->fe_status; return 0; } @@ -141,6 +147,8 @@ unsigned int sdla_56k_alarm(sdla_fe_t *fe, int manual_read) { unsigned short status = 0x00; + + AFT_FUNC_DEBUG(); WAN_ASSERT(fe->write_fe_reg == NULL); WAN_ASSERT(fe->read_fe_reg == NULL); @@ -187,7 +195,8 @@ unsigned int sdla_56k_alarm(sdla_fe_t *fe, int manual_read) /* if Insertion Loss is less than 44.4 dB, then we are connected */ if ((fe->fe_param.k56_param.RRA_reg_56k & 0x0F) > BIT_DEV_STAT_IL_44_dB) { - if((fe->fe_status != FE_CONNECTED)) { + if((fe->fe_status == FE_DISCONNECTED) || + (fe->fe_status == FE_UNITIALIZED)) { fe->fe_status = FE_CONNECTED; /* reset the Rx code condition changes */ @@ -203,7 +212,7 @@ unsigned int sdla_56k_alarm(sdla_fe_t *fe, int manual_read) } }else{ if((fe->fe_status == FE_CONNECTED) || - (fe->fe_status == FE_UNITIALIZED)) { + (fe->fe_status == FE_UNITIALIZED)) { fe->fe_status = FE_DISCONNECTED; /* reset the Rx code condition changes */ @@ -213,10 +222,8 @@ unsigned int sdla_56k_alarm(sdla_fe_t *fe, int manual_read) DEBUG_EVENT("%s: 56k Receive Loss of Signal\n", fe->name); } - DEBUG_EVENT("%s: 56k Disconnected (loopback) (RRA=0x%0X < 0x%0X)\n", - fe->name, - fe->fe_param.k56_param.RRA_reg_56k & 0x0F, - BIT_DEV_STAT_IL_44_dB); + DEBUG_EVENT("%s: 56k Disconnected (loopback)\n", + fe->name); } } } @@ -230,23 +237,23 @@ unsigned int sdla_56k_alarm(sdla_fe_t *fe, int manual_read) int sdla_56k_default_cfg(void* pcard, void* p56k_cfg) { + AFT_FUNC_DEBUG(); return 0; } -int sdla_56k_iface_init(void *p_fe, void* pfe_iface) +int sdla_56k_iface_init(void* pfe_iface) { - - sdla_fe_t *fe = (sdla_fe_t*)p_fe; sdla_fe_iface_t *fe_iface = (sdla_fe_iface_t*)pfe_iface; + AFT_FUNC_DEBUG(); fe_iface->global_config = &sdla_56k_global_config; fe_iface->global_unconfig = &sdla_56k_global_unconfig; - fe_iface->config = &sdla_56k_config; - fe_iface->unconfig = &sdla_56k_unconfig; - + fe_iface->config = &sdla_56k_config; + fe_iface->unconfig = &sdla_56k_unconfig; + fe_iface->get_fe_status = &sdla_56k_get_fe_status; fe_iface->get_fe_media = &sdla_56k_get_fe_media; fe_iface->get_fe_media_string = &sdla_56k_get_fe_media_string; @@ -255,11 +262,8 @@ int sdla_56k_iface_init(void *p_fe, void* pfe_iface) fe_iface->update_alarm_info = &sdla_56k_update_alarm_info; fe_iface->process_udp = &sdla_56k_udp; - fe_iface->isr = &sdla_56k_intr; - fe_iface->check_isr = &sdla_56k_check_intr; - - /* The 56k CSU/DSU front end status has not been initialized */ - fe->fe_status = FE_UNITIALIZED; + fe_iface->isr = &sdla_56k_intr; + fe_iface->check_isr = &sdla_56k_check_intr; return 0; } @@ -267,7 +271,7 @@ int sdla_56k_iface_init(void *p_fe, void* pfe_iface) /* called from TASK */ static int sdla_56k_intr(sdla_fe_t *fe) { - /*AFT_FUNC_DEBUG();*/ + AFT_FUNC_DEBUG(); WAN_ASSERT(fe->write_fe_reg == NULL); WAN_ASSERT(fe->read_fe_reg == NULL); @@ -283,7 +287,7 @@ static int sdla_56k_intr(sdla_fe_t *fe) */ static int sdla_56k_check_intr(sdla_fe_t *fe) { - /*AFT_FUNC_DEBUG();*/ + AFT_FUNC_DEBUG(); WAN_ASSERT(fe->write_fe_reg == NULL); WAN_ASSERT(fe->read_fe_reg == NULL); @@ -307,26 +311,21 @@ static int sdla_56k_global_unconfig(void* pfe) } - - static int sdla_56k_config(void* pfe) { sdla_fe_t *fe = (sdla_fe_t*)pfe; sdla_t *card = (sdla_t *)fe->card; u16 adapter_type; - /*AFT_FUNC_DEBUG();*/ - + AFT_FUNC_DEBUG(); WAN_ASSERT(fe->write_fe_reg == NULL); WAN_ASSERT(fe->read_fe_reg == NULL); card->hw_iface.getcfg(card->hw, SDLA_ADAPTERTYPE, &adapter_type); -#if 0 /* The 56k CSU/DSU front end status has not been initialized */ fe->fe_status = FE_UNITIALIZED; -#endif /* Zero the previously read RRC register value */ fe->fe_param.k56_param.prev_RRC_reg_56k = 0; @@ -334,7 +333,6 @@ static int sdla_56k_config(void* pfe) /* Zero the RRC register changes */ fe->fe_param.k56_param.delta_RRC_reg_56k = 0; - if(adapter_type == AFT_ADPTR_56K){ reset_on_LXT441PE(card); reset_off_LXT441PE(card); @@ -395,7 +393,7 @@ static int sdla_56k_unconfig(void* pfe) sdla_t *card = (sdla_t *)fe->card; u16 adapter_type; - /*AFT_FUNC_DEBUG();*/ + AFT_FUNC_DEBUG(); WAN_ASSERT(fe->write_fe_reg == NULL); WAN_ASSERT(fe->read_fe_reg == NULL); @@ -408,9 +406,6 @@ static int sdla_56k_unconfig(void* pfe) return 0; } - - - static unsigned int reset_on_LXT441PE(sdla_t *card) { AFT_FUNC_DEBUG(); @@ -427,31 +422,21 @@ static unsigned int reset_off_LXT441PE(sdla_t *card) return 0; } - - - - - - - - static void display_Rx_code_condition(sdla_fe_t* fe) { sdla_56k_param_t *k56_param = &fe->fe_param.k56_param; + AFT_FUNC_DEBUG(); + /* check for a DLP (DSU Non-latching loopback) code condition */ if((k56_param->RRC_reg_56k ^ k56_param->prev_RRC_reg_56k) & BIT_RX_CODES_DLP) { if(k56_param->RRC_reg_56k & BIT_RX_CODES_DLP) { - if (WAN_NET_RATELIMIT()) { DEBUG_EVENT("%s: 56k receiving DSU Loopback code\n", fe->name); - } } else { - if (WAN_NET_RATELIMIT()) { DEBUG_EVENT("%s: 56k DSU Loopback code condition ceased\n", fe->name); - } } } @@ -459,15 +444,11 @@ static void display_Rx_code_condition(sdla_fe_t* fe) if((k56_param->RRC_reg_56k ^ k56_param->prev_RRC_reg_56k) & BIT_RX_CODES_OOF) { if(k56_param->RRC_reg_56k & BIT_RX_CODES_OOF) { - if (WAN_NET_RATELIMIT()) { DEBUG_EVENT("%s: 56k receiving Out of Frame code\n", fe->name); - } } else { - if (WAN_NET_RATELIMIT()) { DEBUG_EVENT("%s: 56k Out of Frame code condition ceased\n", fe->name); - } } } @@ -475,15 +456,11 @@ static void display_Rx_code_condition(sdla_fe_t* fe) if((k56_param->RRC_reg_56k ^ k56_param->prev_RRC_reg_56k) & BIT_RX_CODES_OOS) { if(k56_param->RRC_reg_56k & BIT_RX_CODES_OOS) { - if (WAN_NET_RATELIMIT()) { DEBUG_EVENT("%s: 56k receiving Out of Service code\n", fe->name); - } } else { - if (WAN_NET_RATELIMIT()) { DEBUG_EVENT("%s: 56k Out of Service code condition ceased\n", fe->name); - } } } @@ -491,15 +468,11 @@ static void display_Rx_code_condition(sdla_fe_t* fe) if((k56_param->RRC_reg_56k ^ k56_param->prev_RRC_reg_56k) & BIT_RX_CODES_CMI) { if(k56_param->RRC_reg_56k & BIT_RX_CODES_CMI) { - if (WAN_NET_RATELIMIT()) { DEBUG_EVENT("%s: 56k receiving Control Mode Idle\n", fe->name); - } } else { - if (WAN_NET_RATELIMIT()) { DEBUG_EVENT("%s: 56k Control Mode Idle condition ceased\n", fe->name); - } } } @@ -507,15 +480,11 @@ static void display_Rx_code_condition(sdla_fe_t* fe) if((k56_param->RRC_reg_56k ^ k56_param->prev_RRC_reg_56k) & BIT_RX_CODES_ZSC) { if(k56_param->RRC_reg_56k & BIT_RX_CODES_ZSC) { - if (WAN_NET_RATELIMIT()) { DEBUG_EVENT("%s: 56k receiving Zero Suppression code\n", fe->name); - } } else { - if (WAN_NET_RATELIMIT()) { DEBUG_EVENT("%s: 56k Zero Suppression code condition ceased\n", fe->name); - } } } @@ -523,59 +492,53 @@ static void display_Rx_code_condition(sdla_fe_t* fe) if((k56_param->RRC_reg_56k ^ k56_param->prev_RRC_reg_56k) & BIT_RX_CODES_DMI) { if(k56_param->RRC_reg_56k & BIT_RX_CODES_DMI) { - if (WAN_NET_RATELIMIT()) { DEBUG_EVENT("%s: 56k receiving Data Mode Idle\n", fe->name); - } } else { - if (WAN_NET_RATELIMIT()) { DEBUG_EVENT("%s: 56k Data Mode Idle condition ceased\n", fe->name); - } } } } - /* ****************************************************************************** - * sdla_te_set_lbmode() + * sdla_te_set_lbmode() * * Description: * Arguments: * Returns: ****************************************************************************** */ - -static int -sdla_56k_set_lbmode(sdla_fe_t *fe, unsigned char type, unsigned char mode) +static int +sdla_56k_set_lbmode(sdla_fe_t *fe, unsigned char type, unsigned char mode) { + + //unsigned char loop=BIT_RX_CTRL_DSU_LOOP|BIT_RX_CTRL_CSU_LOOP; + //unsigned char loop=BIT_RX_CTRL_DSU_LOOP; + //unsigned char loop=BIT_RX_CTRL_CSU_LOOP; + unsigned char loop=0x40; + + WAN_ASSERT(fe->write_fe_reg == NULL); + WAN_ASSERT(fe->read_fe_reg == NULL); + + if (mode == WAN_TE1_ACTIVATE_LB){ + WRITE_REG(REG_RX_CTRL, READ_REG(REG_RX_CTRL) | loop); + + DEBUG_EVENT("%s: %s Diagnostic Digital Loopback mode activated (0x%X).\n", + fe->name, + FE_MEDIA_DECODE(fe), + READ_REG(REG_RX_CTRL)); + }else{ + + WRITE_REG(REG_RX_CTRL, READ_REG(REG_RX_CTRL) & ~(loop)); + DEBUG_EVENT("%s: %s Diagnostic Digital Loopback mode deactivated (0x%X).\n", + fe->name, + FE_MEDIA_DECODE(fe), + READ_REG(REG_RX_CTRL)); + } - unsigned char loop=BIT_RX_CTRL_DSU_LOOP|BIT_RX_CTRL_CSU_LOOP; - //unsigned char loop=BIT_RX_CTRL_DSU_LOOP; - //unsigned char loop=BIT_RX_CTRL_CSU_LOOP; - //unsigned char loop=0x40; - - WAN_ASSERT(fe->write_fe_reg == NULL); - WAN_ASSERT(fe->read_fe_reg == NULL); - - if (mode == WAN_TE1_ACTIVATE_LB){ - WRITE_REG(REG_RX_CTRL, READ_REG(REG_RX_CTRL) | loop); - - DEBUG_EVENT("%s: %s Diagnostic Line Loopback mode activated (0x%X).\n", - fe->name, - FE_MEDIA_DECODE(fe), - READ_REG(REG_RX_CTRL)); - }else{ - - WRITE_REG(REG_RX_CTRL, READ_REG(REG_RX_CTRL) & ~(loop)); - DEBUG_EVENT("%s: %s Diagnostic Line Loopback mode deactivated (0x%X).\n", - fe->name, - FE_MEDIA_DECODE(fe), - READ_REG(REG_RX_CTRL)); - } - - return 0; + return 0; } @@ -592,8 +555,10 @@ sdla_56k_set_lbmode(sdla_fe_t *fe, unsigned char type, unsigned char mode) static int sdla_56k_udp(sdla_fe_t *fe, void* pudp_cmd, unsigned char* data) { wan_cmd_t *udp_cmd = (wan_cmd_t*)pudp_cmd; - int err=0; - + int err; + + AFT_FUNC_DEBUG(); + switch(udp_cmd->wan_cmd_command){ case WAN_GET_MEDIA_TYPE: data[0] = (IS_56K_FEMEDIA(fe) ? WAN_MEDIA_56K : @@ -609,15 +574,15 @@ static int sdla_56k_udp(sdla_fe_t *fe, void* pudp_cmd, unsigned char* data) udp_cmd->wan_cmd_return_code = WAN_CMD_OK; udp_cmd->wan_cmd_data_len = sizeof(sdla_fe_stats_t); break; - - case WAN_FE_SET_LB_MODE: - /* Activate/Deactivate Line Loopback modes */ - err = sdla_56k_set_lbmode(fe, data[0], data[1]); - udp_cmd->wan_cmd_return_code = - (!err) ? WAN_CMD_OK : WAN_UDP_FAILED_CMD; - udp_cmd->wan_cmd_data_len = 0x00; - break; + case WAN_FE_SET_LB_MODE: + /* Activate/Deactivate Line Loopback modes */ + err = sdla_56k_set_lbmode(fe, data[0], data[1]); + udp_cmd->wan_cmd_return_code = + (!err) ? WAN_CMD_OK : WAN_UDP_FAILED_CMD; + udp_cmd->wan_cmd_data_len = 0x00; + break; + case WAN_FE_FLUSH_PMON: case WAN_FE_GET_CFG: default: @@ -640,6 +605,8 @@ static int sdla_56k_print_alarm(sdla_fe_t* fe, unsigned int status) { unsigned int alarms = (unsigned int)status; + AFT_FUNC_DEBUG(); + if (!alarms){ alarms = sdla_56k_alarm(fe, 0); } @@ -673,6 +640,8 @@ static int sdla_56k_print_alarm(sdla_fe_t* fe, unsigned int status) static int sdla_56k_update_alarm_info(sdla_fe_t* fe, struct seq_file* m, int* stop_cnt) { + AFT_FUNC_DEBUG(); + #if !defined(__WINDOWS__) PROC_ADD_LINE(m, "\n====================== Rx 56K CSU/DSU Alarms ==============================\n"); @@ -704,3 +673,4 @@ static int sdla_56k_update_alarm_info(sdla_fe_t* fe, struct seq_file* m, int* st return m->count; } + diff --git a/patches/kdrivers/src/net/sdla_8te1.c b/patches/kdrivers/src/net/sdla_8te1.c index d911b15..7b8f675 100644 --- a/patches/kdrivers/src/net/sdla_8te1.c +++ b/patches/kdrivers/src/net/sdla_8te1.c @@ -29,7 +29,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: sdla_8te1.c,v 1.44 2006/11/30 20:07:15 sangoma Exp $ + * $Id: sdla_8te1.c,v 1.66 2007/04/10 16:28:49 sangoma Exp $ */ /* @@ -105,64 +105,68 @@ fe->write_fe_reg( \ fe->card, \ fe->fe_cfg.line_no, \ - (u32)sdla_ds_te1_address(fe,fe->fe_cfg.line_no,(reg)), \ - (u32)(val)) + (int)sdla_ds_te1_address(fe,fe->fe_cfg.line_no,(reg)), \ + (int)(val)) #define WRITE_REG_LINE(fe_line_no, reg,val) \ fe->write_fe_reg( \ fe->card, \ fe_line_no, \ - (u32)sdla_ds_te1_address(fe,fe_line_no,(reg)), \ - (u32)(val)) + (int)sdla_ds_te1_address(fe,fe_line_no,(reg)), \ + (int)(val)) #define READ_REG(reg) \ fe->read_fe_reg( \ fe->card, \ fe->fe_cfg.line_no, \ - (u32)sdla_ds_te1_address(fe,fe->fe_cfg.line_no,(reg))) + (int)sdla_ds_te1_address(fe,fe->fe_cfg.line_no,(reg))) #define __READ_REG(reg) \ fe->__read_fe_reg( \ fe->card, \ fe->fe_cfg.line_no, \ - (u32)sdla_ds_te1_address(fe,fe->fe_cfg.line_no,(reg))) + (int)sdla_ds_te1_address(fe,fe->fe_cfg.line_no,(reg))) #define READ_REG_LINE(fe_line_no, reg) \ fe->read_fe_reg( \ fe->card, \ fe_line_no, \ - (u32)sdla_ds_te1_address(fe,fe_line_no,(reg))) + (int)sdla_ds_te1_address(fe,fe_line_no,(reg))) #else /* Read/Write to front-end register */ #define WRITE_REG(reg,val) \ fe->write_fe_reg( \ fe->card, \ - (u32)((reg) + ((fe->fe_cfg.line_no)*(DLS_PORT_DELTA(reg)))),\ - (u32)(val)) + (int)((reg) + ((fe->fe_cfg.line_no)*(DLS_PORT_DELTA(reg)))),\ + (int)(val)) #define WRITE_REG_LINE(fe_line_no, reg,val) \ fe->write_fe_reg( \ fe->card, \ - (u32)((reg) + (fe_line_no)*(DLS_PORT_DELTA(reg))), \ - (u32)(val)) + (int)((reg) + (fe_line_no)*(DLS_PORT_DELTA(reg))), \ + (int)(val)) #define READ_REG(reg) \ fe->read_fe_reg( \ fe->card, \ - (u32)((reg) + ((fe->fe_cfg.line_no)*(DLS_PORT_DELTA(reg))))) + (int)((reg) + ((fe->fe_cfg.line_no)*(DLS_PORT_DELTA(reg))))) #define __READ_REG(reg) \ fe->__read_fe_reg( \ fe->card, \ - (u32)((reg) + ((fe->fe_cfg.line_no)*(DLS_PORT_DELTA(reg))))) + (int)((reg) + ((fe->fe_cfg.line_no)*(DLS_PORT_DELTA(reg))))) #define READ_REG_LINE(fe_line_no, reg) \ fe->read_fe_reg( \ fe->card, \ - (u32)((reg) + (fe_line_no)*(DLS_PORT_DELTA(reg)))) + (int)((reg) + (fe_line_no)*(DLS_PORT_DELTA(reg)))) #endif + +#define WAN_TE1_FRAMED_ALARMS (WAN_TE_BIT_RED_ALARM | WAN_TE_BIT_OOF_ALARM) +#define WAN_TE1_UNFRAMED_ALARMS (WAN_TE_BIT_RED_ALARM) + #define IS_T1_ALARM(alarm) \ (alarm & \ ( \ @@ -187,9 +191,6 @@ #define WAN_DS_REGBITMAP(fe) (((fe)->fe_chip_id==DEVICE_ID_DS26521)?0:WAN_FE_LINENO((fe))) - -#define WAN_TE1_FRAMED_ALARMS (WAN_TE_BIT_RED_ALARM | WAN_TE_BIT_OOF_ALARM) - /****************************************************************************** * STRUCTURES AND TYPEDEFS ******************************************************************************/ @@ -198,6 +199,43 @@ /****************************************************************************** * GLOBAL VERIABLES ******************************************************************************/ +char *wan_t1_ds_rxlevel[] = { + "> -2.5db", + "-2.5db to -5db", + "-5db to -7.5db", + "-7.5db to -10db", + "-10db to -12.5db", + "-12.5db to -15db", + "-15db to -17.5db", + "-17.5db to -20db", + "-20db to -23db", + "-23db to -26db", + "-26db to -29db", + "-29db to -32db", + "-32db to -36db", + "< -36db", + "", + "" +}; + +char *wan_e1_ds_rxlevel[] = { + "> -2.5db", + "-2.5db to -5db", + "-5db to -7.5db", + "-7.5db to -10db", + "-10db to -12.5db", + "-12.5db to -15db", + "-15db to -17.5db", + "-17.5db to -20db", + "-20db to -23db", + "-23db to -26db", + "-26db to -29db", + "-29db to -32db", + "-32db to -36db", + "-36db to -40db", + "-40db to -44db", + "< -44db" +}; /****************************************************************************** * FUNCTION PROTOTYPES @@ -205,8 +243,12 @@ static int sdla_ds_te1_reset(void* pfe, int port_no, int reset); static int sdla_ds_te1_global_config(void* pfe); /* Change to static */ static int sdla_ds_te1_global_unconfig(void* pfe); /* Change to static */ +static int sdla_ds_te1_chip_config(void* pfe); static int sdla_ds_te1_config(void* pfe); /* Change to static */ +static int sdla_ds_te1_reconfig(sdla_fe_t* fe); +static int sdla_ds_te1_post_init(void *pfe); static int sdla_ds_te1_unconfig(void* pfe); /* Change to static */ +static int sdla_ds_te1_pre_release(void* pfe); static int sdla_ds_te1_TxChanCtrl(sdla_fe_t* fe, int channel, int enable); static int sdla_ds_te1_RxChanCtrl(sdla_fe_t* fe, int channel, int enable); static int sdla_ds_te1_disable_irq(void* pfe); /* Change to static */ @@ -216,6 +258,7 @@ static int sdla_ds_te1_intr(sdla_fe_t *fe); static int sdla_ds_te1_udp(sdla_fe_t *fe, void* p_udp_cmd, unsigned char* data); static int sdla_ds_te1_flush_pmon(sdla_fe_t *fe); static int sdla_ds_te1_pmon(sdla_fe_t *fe, int action); +static int sdla_ds_te1_rxlevel(sdla_fe_t* fe); static int sdla_ds_te1_polling(sdla_fe_t* fe); static unsigned int sdla_ds_te1_read_alarms(sdla_fe_t *fe, int read); static int sdla_ds_te1_set_alarms(sdla_fe_t* fe, unsigned long alarms); @@ -228,8 +271,10 @@ static int sdla_ds_te1_set_rbsbits(sdla_fe_t *fe, int, unsigned char); static int sdla_ds_te1_rbs_report(sdla_fe_t* fe); static int sdla_ds_te1_check_rbsbits(sdla_fe_t* fe, int, unsigned int, int); static unsigned char sdla_ds_te1_read_rbsbits(sdla_fe_t* fe, int, int); -static void sdla_ds_te1_enable_timer(sdla_fe_t*, unsigned char, unsigned long); -static int sdla_ds_te1_post_config(sdla_fe_t* fe); +static int sdla_ds_te1_add_event(sdla_fe_t*, sdla_fe_timer_event_t*); +static int sdla_ds_te1_add_timer(sdla_fe_t*, unsigned long); + +//static void sdla_ds_te1_enable_timer(sdla_fe_t*, unsigned char, unsigned long); static int sdla_ds_te1_sigctrl(sdla_fe_t *fe, int, unsigned long, int); #if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) @@ -301,7 +346,7 @@ static int sdla_ds_te1_address(sdla_fe_t *fe, int port_no, int reg) if (fe->fe_chip_id == DEVICE_ID_DS26521){ port_no = 0; } - return (u32)((reg) + ((port_no)*(DLS_PORT_DELTA(reg)))); + return (int)((reg) + ((port_no)*(DLS_PORT_DELTA(reg)))); } /* @@ -362,8 +407,12 @@ int sdla_ds_te1_iface_init(void *p_fe_iface) fe_iface->reset = &sdla_ds_te1_reset; fe_iface->global_config = &sdla_ds_te1_global_config; fe_iface->global_unconfig = &sdla_ds_te1_global_unconfig; + fe_iface->chip_config = &sdla_ds_te1_chip_config; fe_iface->config = &sdla_ds_te1_config; + fe_iface->post_init = &sdla_ds_te1_post_init; + fe_iface->reconfig = &sdla_ds_te1_reconfig; fe_iface->unconfig = &sdla_ds_te1_unconfig; + fe_iface->pre_release = &sdla_ds_te1_pre_release; fe_iface->disable_irq = &sdla_ds_te1_disable_irq; fe_iface->isr = &sdla_ds_te1_intr; fe_iface->check_isr = &sdla_ds_te1_check_intr; @@ -387,7 +436,6 @@ int sdla_ds_te1_iface_init(void *p_fe_iface) fe_iface->check_rbsbits = &sdla_ds_te1_check_rbsbits; fe_iface->report_rbsbits = &sdla_ds_te1_rbs_report; fe_iface->set_rbsbits = &sdla_ds_te1_set_rbsbits; - fe_iface->post_config = &sdla_ds_te1_post_config; fe_iface->set_fe_sigctrl = &sdla_ds_te1_sigctrl; #if 0 @@ -509,6 +557,46 @@ static int sdla_ds_te1_reset(void* pfe, int port_no, int reset) return 0; } +/* + ****************************************************************************** + * sdla_ds_e1_set_sig_mode() + * + * Description: Set E1 signalling mode for A101/A102/A104/A108 DallasMaxim board. + * Arguments: + * Returns: + ****************************************************************************** + */ +static int sdla_ds_e1_set_sig_mode(sdla_fe_t *fe, int verbose) +{ + unsigned char value = 0x00; + + if (WAN_TE1_SIG_MODE(fe) == WAN_TE1_SIG_CAS){ + + /* CAS signalling mode */ + if (verbose){ + DEBUG_EVENT("%s: Enabling CAS Signalling mode!\n", + fe->name); + } + value = READ_REG(REG_RCR1); + WRITE_REG(REG_RCR1, value & ~BIT_RCR1_E1_RSIGM); + //value = READ_REG(REG_RSIGC); + //WRITE_REG(REG_RSIGC, value | BIT_RSIGC_CASMS); + value = READ_REG(REG_TCR1); + WRITE_REG(REG_TCR1, value | BIT_TCR1_E1_T16S); + }else{ + + /* CCS signalling mode */ + if (verbose){ + DEBUG_TEST("%s: Enabling CCS Signalling mode!\n", + fe->name); + } + WAN_TE1_SIG_MODE(fe) = WAN_TE1_SIG_CCS; + value = READ_REG(REG_RCR1); + WRITE_REG(REG_RCR1, value | BIT_RCR1_E1_RSIGM); + } + return 0; +} + /* ****************************************************************************** * sdla_8te_global_config() @@ -570,135 +658,21 @@ static int sdla_ds_te1_global_unconfig(void* pfe) return 0; } -/* - ****************************************************************************** - * sdla_ds_te1_config() - * - * Description: Configure Sangoma 8 ports T1/E1 board - * Arguments: - * Returns: WANTRUE - TE1 configred successfully, otherwise WAN_FALSE. - ****************************************************************************** - */ -static int sdla_ds_te1_config(void* pfe) +/****************************************************************************** +** sdla_ds_te1_chip_config() +** +** Description: Configure Dallas Front-End chip +** Arguments: +** Returns: 0 - successfully, otherwise -EINVAL. +*******************************************************************************/ +static int sdla_ds_te1_chip_config(void* pfe) { - sdla_fe_t *fe = (sdla_fe_t*)pfe; unsigned char value = 0x00; -#if defined(__WINDOWS__) - sdla_t *card = (sdla_t*)fe->card; -#endif WAN_ASSERT(fe->write_fe_reg == NULL); WAN_ASSERT(fe->read_fe_reg == NULL); - /* Initial FE state */ - fe->fe_status=FE_UNITIALIZED; //FE_DISCONNECTED; - - /* Revision/Chip ID (Reg. 0x0D) */ - if (sdla_ds_te1_device_id(fe)) return -EINVAL; - switch(fe->fe_chip_id){ - case DEVICE_ID_DS26528: - if ((int)WAN_FE_LINENO(fe) < 0 || WAN_FE_LINENO(fe) > 8){ - DEBUG_EVENT( - "%s: TE Config: Invalid Port selected %d (Min=1 Max=8)\n", - fe->name, - WAN_FE_LINENO(fe)+1); - return -EINVAL; - } - break; - case DEVICE_ID_DS26524: - if ((int)WAN_FE_LINENO(fe) < 0 || WAN_FE_LINENO(fe) > 4){ - DEBUG_EVENT( - "%s: TE Config: Invalid Port selected %d (Min=1 Max=4)\n", - fe->name, - WAN_FE_LINENO(fe)+1); - return -EINVAL; - } - break; - case DEVICE_ID_DS26521: - case DEVICE_ID_DS26522: - if ((int)WAN_FE_LINENO(fe) < 0 || WAN_FE_LINENO(fe) > 1){ - DEBUG_EVENT( - "%s: TE Config: Invalid Port selected %d (Min=1 Max=2)\n", - fe->name, - WAN_FE_LINENO(fe)+1); - return -EINVAL; - } - break; - } - - DEBUG_EVENT("%s: Configuring DS %s %s FE\n", - fe->name, - DECODE_CHIPID(fe->fe_chip_id), - FE_MEDIA_DECODE(fe)); - DEBUG_EVENT("%s: Port %d,%s,%s,%s\n", - fe->name, - WAN_FE_LINENO(fe)+1, - FE_LCODE_DECODE(fe), - FE_FRAME_DECODE(fe), - TE_LBO_DECODE(fe)); - DEBUG_EVENT("%s: Clk %s:%d, Ch %lX\n", - fe->name, - TE_CLK_DECODE(fe), - WAN_TE1_REFCLK(fe), - WAN_TE1_ACTIVE_CH(fe)); - - if (IS_E1_FEMEDIA(fe)){ - DEBUG_EVENT("%s: Sig Mode %s\n", - fe->name, - WAN_TE1_SIG_DECODE(fe)); - } - -#if 0 - DEBUG_EVENT("%s: Configuring DS %s %s FE (%d:%s,%s,%s,%s:%d,%X)\n", - fe->name, - DECODE_CHIPID(fe->fe_chip_id), - FE_MEDIA_DECODE(fe), - WAN_FE_LINENO(fe)+1, - FE_LCODE_DECODE(fe), - FE_FRAME_DECODE(fe), - TE_LBO_DECODE(fe), - TE_CLK_DECODE(fe), - WAN_TE1_REFCLK(fe), - WAN_TE1_ACTIVE_CH(fe)); - - DEBUG_TE1("%s: %s:%d Line decoding %s\n", - fe->name, - FE_MEDIA_DECODE(fe), WAN_FE_LINENO(fe)+1, - FE_LCODE_DECODE(fe)); - DEBUG_TE1("%s: %s:%d Frame type %s\n", - fe->name, - FE_MEDIA_DECODE(fe), WAN_FE_LINENO(fe)+1, - FE_FRAME_DECODE(fe)); - DEBUG_TE1("%s: %s LBO %s\n", - fe->name, - FE_MEDIA_DECODE(fe), - TE_LBO_DECODE(fe)); - - //sdla_ds_te1_reset(fe, WAN_FE_LINENO(fe)+1, 0); - - if (WAN_TE1_CLK(fe) == WAN_MASTER_CLK){ - DEBUG_TE1("%s: %s Clock mode Master (Osciliator)\n", - fe->name, - FE_MEDIA_DECODE(fe)); -#if 0 - if (WAN_TE1_REFCLK(fe) != WAN_TE1_REFCLK_OSC){ - DEBUG_TE1("%s: %s Clock mode Master (refclk from Port %d)\n", - fe->name, - FE_MEDIA_DECODE(fe), - WAN_TE1_REFCLK(fe)); - }else{ - DEBUG_TE1("%s: %s Clock mode Master (Osciliator)\n", - fe->name, - FE_MEDIA_DECODE(fe)); - } -#endif - }else{ - DEBUG_TE1("%s: %s Clock mode Normal\n", - fe->name, - FE_MEDIA_DECODE(fe)); - } -#endif /* Init Rx Framer registers */ CLEAR_REG(0x0000, 0x00F0); /* Init Tx Framer registers */ @@ -769,31 +743,7 @@ static int sdla_ds_te1_config(void* pfe) } if (IS_E1_FEMEDIA(fe)){ - switch(WAN_FE_FRAME(fe)){ - case WAN_FR_CRC4: - value = READ_REG(REG_TCR2); - WRITE_REG(REG_TCR2, value | BIT_TCR2_E1_AEBE); - break; - } - } - - if (IS_E1_FEMEDIA(fe)){ - if (WAN_TE1_SIG_MODE(fe) == WAN_TE1_SIG_CAS){ - - /* CAS signalling mode */ - value = READ_REG(REG_RCR1); - WRITE_REG(REG_RCR1, value & ~BIT_RCR1_E1_RSIGM); -// value = READ_REG(REG_RSIGC); -// WRITE_REG(REG_RSIGC, value | BIT_RSIGC_CASMS); - value = READ_REG(REG_TCR1); - WRITE_REG(REG_TCR1, value | BIT_TCR1_E1_T16S); - }else{ - - /* CCS signalling mode */ - WAN_TE1_SIG_MODE(fe) = WAN_TE1_SIG_CCS; - value = READ_REG(REG_RCR1); - WRITE_REG(REG_RCR1, value | BIT_RCR1_E1_RSIGM); - } + sdla_ds_e1_set_sig_mode(fe, 0); } switch(WAN_FE_LCODE(fe)){ @@ -920,19 +870,25 @@ static int sdla_ds_te1_config(void* pfe) if (IS_T1_FEMEDIA(fe)){ WRITE_REG(REG_LTITSR, value | BIT_LTITSR_TIMPL0); }else if (IS_E1_FEMEDIA(fe)){ - WRITE_REG(REG_LTITSR, - value | BIT_LTITSR_TIMPL1 | BIT_LTITSR_TIMPL0); + if (WAN_TE1_LBO(fe) == WAN_E1_120){ + value |= (BIT_LTITSR_TIMPL1 | BIT_LTITSR_TIMPL0); + } + WRITE_REG(REG_LTITSR, value); }else if (IS_J1_FEMEDIA(fe)){ WRITE_REG(REG_LTITSR, value | BIT_LTITSR_TIMPL0); } value = BIT_LRISMR_RSMS1 | BIT_LRISMR_RSMS0; + if (WAN_TE1_HI_MODE(fe)){ + value |= BIT_LRISMR_RMONEN; + } if (IS_T1_FEMEDIA(fe)){ WRITE_REG(REG_LRISMR, value | BIT_LRISMR_RIMPM0); }else{ + value |= BIT_LRISMR_RIMPOFF; if (WAN_TE1_LBO(fe) == WAN_E1_120){ - value |= BIT_LRISMR_RIMPM1 | BIT_LRISMR_RIMPM0 | BIT_LRISMR_RIMPOFF; + value |= BIT_LRISMR_RIMPM1 | BIT_LRISMR_RIMPM0; } WRITE_REG(REG_LRISMR, value); } @@ -974,27 +930,99 @@ static int sdla_ds_te1_config(void* pfe) WRITE_REG(REG_TESCR, tescr | BIT_TESCR_TGPCKEN); } #endif - fe->te_param.max_channels = - (IS_E1_FEMEDIA(fe)) ? NUM_OF_E1_TIMESLOTS: NUM_OF_T1_CHANNELS; /* Turn on LIU output */ WRITE_REG(REG_LMCR, BIT_LMCR_TE); - /* Initialize and start T1/E1 timer */ - wan_set_bit(TE_TIMER_KILL,(void*)&fe->te_param.critical); + return 0; +} -#if defined(__WINDOWS__) - /* can NOT initialize timer while holding the spinlock */ - card->hw_iface.hw_unlock(card->hw,NULL); -#endif +/* + ****************************************************************************** + * sdla_ds_te1_config() + * + * Description: Configure Sangoma 8 ports T1/E1 board + * Arguments: + * Returns: WANTRUE - TE1 configred successfully, otherwise WAN_FALSE. + ****************************************************************************** + */ +static int sdla_ds_te1_config(void* pfe) +{ + + sdla_fe_t *fe = (sdla_fe_t*)pfe; + + WAN_ASSERT(fe->write_fe_reg == NULL); + WAN_ASSERT(fe->read_fe_reg == NULL); + + /* Initial FE state */ + fe->fe_status = FE_UNITIALIZED; //FE_DISCONNECTED; + WAN_LIST_INIT(&fe->event); + wan_spin_lock_init(&fe->lock); + + /* Revision/Chip ID (Reg. 0x0D) */ + if (sdla_ds_te1_device_id(fe)) return -EINVAL; + switch(fe->fe_chip_id){ + case DEVICE_ID_DS26528: + if ((int)WAN_FE_LINENO(fe) < 0 || WAN_FE_LINENO(fe) > 8){ + DEBUG_EVENT( + "%s: TE Config: Invalid Port selected %d (Min=1 Max=8)\n", + fe->name, + WAN_FE_LINENO(fe)+1); + return -EINVAL; + } + break; + case DEVICE_ID_DS26524: + if ((int)WAN_FE_LINENO(fe) < 0 || WAN_FE_LINENO(fe) > 4){ + DEBUG_EVENT( + "%s: TE Config: Invalid Port selected %d (Min=1 Max=4)\n", + fe->name, + WAN_FE_LINENO(fe)+1); + return -EINVAL; + } + break; + case DEVICE_ID_DS26521: + case DEVICE_ID_DS26522: + if ((int)WAN_FE_LINENO(fe) < 0 || WAN_FE_LINENO(fe) > 1){ + DEBUG_EVENT( + "%s: TE Config: Invalid Port selected %d (Min=1 Max=2)\n", + fe->name, + WAN_FE_LINENO(fe)+1); + return -EINVAL; + } + break; + } + + DEBUG_EVENT("%s: Configuring DS %s %s FE\n", + fe->name, + DECODE_CHIPID(fe->fe_chip_id), + FE_MEDIA_DECODE(fe)); + DEBUG_EVENT("%s: Port %d,%s,%s,%s\n", + fe->name, + WAN_FE_LINENO(fe)+1, + FE_LCODE_DECODE(fe), + FE_FRAME_DECODE(fe), + TE_LBO_DECODE(fe)); + DEBUG_EVENT("%s: Clk %s:%d, Ch %X\n", + fe->name, + TE_CLK_DECODE(fe), + WAN_TE1_REFCLK(fe), + WAN_TE1_ACTIVE_CH(fe)); + + if (IS_E1_FEMEDIA(fe)){ + DEBUG_EVENT("%s: Sig Mode %s\n", + fe->name, + WAN_TE1_SIG_DECODE(fe)); + } + + if (sdla_ds_te1_chip_config(fe)){ + return -EINVAL; + } + + fe->te_param.max_channels = + (IS_E1_FEMEDIA(fe)) ? NUM_OF_E1_TIMESLOTS: NUM_OF_T1_CHANNELS; sdla_ds_te1_flush_pmon(fe); - wan_init_timer( - &fe->te_param.timer, - sdla_ds_te1_timer, - (wan_timer_arg_t)fe); - /* LIU alarms are available in A108 */ fe->fe_stats.liu_alarms = WAN_TE_BIT_LIU_ALARM; @@ -1003,21 +1031,73 @@ static int sdla_ds_te1_config(void* pfe) /* Enable interrupts */ sdla_ds_te1_intr_ctrl(fe, 0, WAN_TE_INTR_BASIC, WAN_FE_INTR_ENABLE, 0x00); /* Enable manual update pmon counter */ - sdla_ds_te1_intr_ctrl(fe, 0, WAN_TE_INTR_PMON, WAN_FE_INTR_MASK, 0x00); + sdla_ds_te1_intr_ctrl(fe, 0, WAN_TE_INTR_PMON, WAN_FE_INTR_MASK, 0x00); + return 0; +} + +/* + ****************************************************************************** + * sdla_ds_te1_post_init() + * + * Description: T1/E1 post init. + * Arguments: + * Returns: + ****************************************************************************** + */ +static int sdla_ds_te1_post_init(void* pfe) +{ + sdla_fe_t *fe = (sdla_fe_t*)pfe; + sdla_fe_timer_event_t event; + + /* Initialize and start T1/E1 timer */ + wan_set_bit(TE_TIMER_KILL,(void*)&fe->te_param.critical); + + wan_init_timer( + &fe->timer, + sdla_ds_te1_timer, + (wan_timer_arg_t)fe); /* Initialize T1/E1 timer */ wan_clear_bit(TE_TIMER_KILL,(void*)&fe->te_param.critical); /* Start T1/E1 timer */ - sdla_ds_te1_enable_timer(fe, TE_LINKDOWN_TIMER, POLLING_TE1_TIMER); - -#if defined(__WINDOWS__) - /* return to the previouse state - before this function was called */ - card->hw_iface.hw_lock(card->hw,NULL); -#endif - + + event.type = TE_LINKDOWN_TIMER; + event.delay = POLLING_TE1_TIMER; + sdla_ds_te1_add_event(fe, &event); + sdla_ds_te1_add_timer(fe, HZ); return 0; +} +/* + ****************************************************************************** + * sdla_ds_te1_pre_release() + * + * Description: T1/E1 pre release function (not locked routines) + * Arguments: + * Returns: + ****************************************************************************** + */ +static int sdla_ds_te1_pre_release(void* pfe) +{ + sdla_fe_t *fe = (sdla_fe_t*)pfe; + sdla_fe_timer_event_t *fe_event; + wan_smp_flag_t smp_flags; + + /* Kill TE timer poll command */ + wan_set_bit(TE_TIMER_KILL,(void*)&fe->te_param.critical); + if (wan_test_bit(TE_TIMER_RUNNING,(void*)&fe->te_param.critical)){ + wan_del_timer(&fe->timer); + } + wan_clear_bit(TE_TIMER_RUNNING,(void*)&fe->te_param.critical); + wan_spin_lock_irq(&fe->lock,&smp_flags); + while(!WAN_LIST_EMPTY(&fe->event)){ + fe_event = WAN_LIST_FIRST(&fe->event); + WAN_LIST_REMOVE(fe_event, next); + if (fe_event) wan_free(fe_event); + } + wan_spin_unlock_irq(&fe->lock,&smp_flags); + return 0; } /* @@ -1032,41 +1112,23 @@ static int sdla_ds_te1_config(void* pfe) static int sdla_ds_te1_unconfig(void* pfe) { sdla_fe_t *fe = (sdla_fe_t*)pfe; -#if defined(__WINDOWS__) - sdla_t* card = (sdla_t*)fe->card; -#endif + /* Verify if FE timer is stopped */ + if (!wan_test_bit(TE_TIMER_KILL,(void*)&fe->te_param.critical)){ + DEBUG_EVENT("%s: Front-End timer is not stopped!\n", + fe->name); + return -EINVAL; + } + DEBUG_EVENT("%s: %s Front End unconfigation!\n", fe->name, FE_MEDIA_DECODE(fe)); - + + /* FIXME: Alex to disable interrupts here */ sdla_ds_te1_disable_irq(fe); - - /* Set Rx Framer soft reset */ - WRITE_REG(REG_RMMR, BIT_RMMR_SFTRST); - /* Set Tx Framer soft reset */ - WRITE_REG(REG_TMMR, BIT_RMMR_SFTRST); /* Clear configuration flag */ wan_clear_bit(TE_CONFIGURED,(void*)&fe->te_param.critical); - /* Kill TE timer poll command */ - wan_set_bit(TE_TIMER_KILL,(void*)&fe->te_param.critical); - -#if defined(__WINDOWS__) - /* can NOT stop timer while holding the spinlock(s) */ - wan_spin_unlock_irq(&card->wandev.lock,NULL); - card->hw_iface.hw_unlock(card->hw,NULL); -#endif - - wan_del_timer(&fe->te_param.timer); - -#if defined(__WINDOWS__) - card->hw_iface.hw_lock(card->hw,NULL); - wan_spin_lock_irq(&card->wandev.lock,NULL); -#endif - - fe->te_param.timer_cmd = 0x00; - wan_clear_bit(TE_TIMER_RUNNING,(void*)&fe->te_param.critical); //sdla_ds_te1_reset(fe, WAN_FE_LINENO(fe)+1, 1); @@ -1100,71 +1162,58 @@ static int sdla_ds_te1_disable_irq(void* pfe) /* ****************************************************************************** - * sdla_ds_te1_post_config() + * sdla_ds_te1_reconfig() * * Description: T1/E1 post configuration. * Arguments: * Returns: ****************************************************************************** */ -static int sdla_ds_te1_post_config(sdla_fe_t* fe) +static int sdla_ds_te1_reconfig(sdla_fe_t* fe) { - unsigned char value; - + if (IS_E1_FEMEDIA(fe)){ - if (WAN_TE1_SIG_MODE(fe) == WAN_TE1_SIG_CAS){ - - DEBUG_EVENT("%s: Enabling CAS Signalling mode!\n", - fe->name); - /* CAS signalling mode */ - value = READ_REG(REG_RCR1); - WRITE_REG(REG_RCR1, value & ~BIT_RCR1_E1_RSIGM); -// value = READ_REG(REG_RSIGC); -// WRITE_REG(REG_RSIGC, value | BIT_RSIGC_CASMS); - value = READ_REG(REG_TCR1); - WRITE_REG(REG_TCR1, value | BIT_TCR1_E1_T16S); - }else{ - - DEBUG_EVENT("%s: Enabling CCS Signalling mode!\n", - fe->name); - /* CCS signalling mode */ - WAN_TE1_SIG_MODE(fe) = WAN_TE1_SIG_CCS; - value = READ_REG(REG_RCR1); - WRITE_REG(REG_RCR1, value | BIT_RCR1_E1_RSIGM); - } + sdla_ds_e1_set_sig_mode(fe, 1); } - return 0; } -static int sdla_ds_te1_sigctrl(sdla_fe_t *fe, int sig_mode, unsigned long ch_map, int mode) +static int +sdla_ds_te1_sigctrl(sdla_fe_t *fe, int sig_mode, unsigned long ch_map, int mode) { - fe->te_param.timer_ch_map = ch_map; - /* Start T1/E1 timer */ - sdla_ds_te1_enable_timer( - fe, - (mode == WAN_ENABLE) ? TE_RBS_ENABLE : TE_RBS_DISABLE, - POLLING_TE1_TIMER); + sdla_fe_timer_event_t event; + int err; + + event.type = (mode == WAN_ENABLE) ? + TE_RBS_ENABLE : TE_RBS_DISABLE; + event.delay = POLLING_TE1_TIMER; + event.te_event.ch_map = ch_map; + err = sdla_ds_te1_add_event(fe, &event); + if (err){ + DEBUG_EVENT("%s: Failed to add new fe event %02X ch_map=%08lX!\n", + fe->name, + event.type, event.te_event.ch_map); + return -EINVAL; + } return 0; } /****************************************************************************** -** sdla_ds_te1_is_connected() +** sdla_ds_t1_is_connected() ** -** Description: Set T1/E1 status. Enable OOF and LCV interrupt (if status -** changed to disconnected. +** Description: Verify T1 status. ** Arguments: ** Returns: 1 - the port is connected ** 0 - the port is disconnected ******************************************************************************/ static int sdla_ds_t1_is_connected(sdla_fe_t *fe, unsigned long alarms) { + if (alarms & WAN_TE1_FRAMED_ALARMS) return 0; return 1; } - /****************************************************************************** ** sdla_ds_e1_is_connected() ** @@ -1179,7 +1228,6 @@ static int sdla_ds_e1_is_connected(sdla_fe_t *fe, unsigned long alarms) return 1; } - /* ****************************************************************************** * sdla_ds_te1_set_status() @@ -1196,6 +1244,7 @@ static void sdla_ds_te1_set_status(sdla_fe_t* fe, unsigned long alarms) unsigned char curr_fe_status = fe->fe_status; if (IS_T1_FEMEDIA(fe)){ + if (sdla_ds_t1_is_connected(fe, alarms)){ sdla_ds_te1_clear_alarms(fe, WAN_TE_BIT_YEL_ALARM); if (!(fe->fe_alarm & WAN_TE_BIT_YEL_ALARM)){ @@ -1206,26 +1255,27 @@ static void sdla_ds_te1_set_status(sdla_fe_t* fe, unsigned long alarms) if (WAN_NET_RATELIMIT()){ DEBUG_EVENT("%s: T1 Waiting for Yellow Alarm to clear...\n", fe->name); - } + } fe->fe_status = FE_DISCONNECTED; } }else{ if (fe->fe_status != FE_DISCONNECTED){ - sdla_ds_te1_set_alarms(fe, WAN_TE_BIT_YEL_ALARM); fe->fe_status = FE_DISCONNECTED; } - } - }else{ + } + + } else { if (sdla_ds_e1_is_connected(fe, alarms)){ if (fe->fe_status != FE_CONNECTED){ fe->fe_status = FE_CONNECTED; } - }else{ + } else { if (fe->fe_status != FE_DISCONNECTED){ fe->fe_status = FE_DISCONNECTED; } } } + if (curr_fe_status != fe->fe_status){ if (fe->fe_status == FE_CONNECTED){ if (fe->te_param.status_cnt > WAN_TE1_STATUS_THRESHOLD){ @@ -1233,7 +1283,9 @@ static void sdla_ds_te1_set_status(sdla_fe_t* fe, unsigned long alarms) fe->name, FE_MEDIA_DECODE(fe)); if (card->wandev.te_report_alarms){ - card->wandev.te_report_alarms(card, alarms); + card->wandev.te_report_alarms( + card, + fe->fe_alarm); } }else{ if (!fe->te_param.status_cnt){ @@ -1252,11 +1304,13 @@ static void sdla_ds_te1_set_status(sdla_fe_t* fe, unsigned long alarms) DEBUG_EVENT("%s: %s disconnected!\n", fe->name, FE_MEDIA_DECODE(fe)); + fe->fe_status = FE_DISCONNECTED; fe->te_param.status_cnt = 0; if (card->wandev.te_report_alarms){ - card->wandev.te_report_alarms(card, alarms); + card->wandev.te_report_alarms(card, fe->fe_alarm); } } + }else{ fe->te_param.status_cnt = 0; DEBUG_TEST("%s: %s %s...%d\n", @@ -1272,7 +1326,7 @@ static void sdla_ds_te1_set_status(sdla_fe_t* fe, unsigned long alarms) /* ******************************************************************************* -** sdla_te_alaram_print() +** sdla_te_alarm_print() ** ** Description: ** Arguments: @@ -1326,6 +1380,14 @@ static int sdla_ds_te1_print_alarms(sdla_fe_t* fe, unsigned int alarms) return 0; } +/* +******************************************************************************* +** sdla_te_read_alarms() +** +** Description: +** Arguments: +** Returns: +*/ static unsigned int sdla_ds_te1_read_alarms(sdla_fe_t *fe, int action) { @@ -1333,52 +1395,116 @@ static unsigned int sdla_ds_te1_read_alarms(sdla_fe_t *fe, int action) unsigned char rrts1 = READ_REG(REG_RRTS1); unsigned char lrsr = READ_REG(REG_LRSR); - DEBUG_TE1("%s: Alarm status = %02X\n", - fe->name, rrts1); + DEBUG_TE1("%s: Alarm status = %02X (%X)\n", + fe->name, rrts1, fe->fe_alarm); /* Framer alarms */ if (rrts1 & BIT_RRTS1_RRAI){ + if (!(fe->fe_alarm & WAN_TE_BIT_RAI_ALARM)){ + DEBUG_EVENT("%s: RAI alarm is ON\n", + fe->name); + } fe->fe_alarm |= WAN_TE_BIT_RAI_ALARM; }else{ + if (fe->fe_alarm & WAN_TE_BIT_RAI_ALARM){ + DEBUG_EVENT("%s: RAI alarm is OFF\n", + fe->name); + } fe->fe_alarm &= ~WAN_TE_BIT_RAI_ALARM; } if (rrts1 & BIT_RRTS1_RAIS){ + if (!(fe->fe_alarm & WAN_TE_BIT_AIS_ALARM)){ + DEBUG_EVENT("%s: AIS alarm is ON\n", + fe->name); + } fe->fe_alarm |= WAN_TE_BIT_AIS_ALARM; }else{ + if (fe->fe_alarm & WAN_TE_BIT_AIS_ALARM){ + DEBUG_EVENT("%s: AIS alarm is OFF\n", + fe->name); + } fe->fe_alarm &= ~WAN_TE_BIT_AIS_ALARM; } if (rrts1 & BIT_RRTS1_RLOS){ + if (!(fe->fe_alarm & WAN_TE_BIT_LOS_ALARM)){ + DEBUG_EVENT("%s: LOS alarm is ON\n", + fe->name); + } fe->fe_alarm |= WAN_TE_BIT_LOS_ALARM; }else{ + if (fe->fe_alarm & WAN_TE_BIT_LOS_ALARM){ + DEBUG_EVENT("%s: LOS alarm is OFF\n", + fe->name); + } fe->fe_alarm &= ~WAN_TE_BIT_LOS_ALARM; } if (rrts1 & BIT_RRTS1_RLOF){ + if (!(fe->fe_alarm & WAN_TE_BIT_OOF_ALARM)){ + DEBUG_EVENT("%s: OOF alarm is ON\n", + fe->name); + } fe->fe_alarm |= WAN_TE_BIT_OOF_ALARM; }else{ + if (fe->fe_alarm & WAN_TE_BIT_OOF_ALARM){ + DEBUG_EVENT("%s: OOF alarm is OFF\n", + fe->name); + } fe->fe_alarm &= ~WAN_TE_BIT_OOF_ALARM; } /* Aug 30, 2006 ** Red alarm is either LOS or OOF alarms */ if (IS_TE_OOF_ALARM(fe->fe_alarm) || IS_TE_LOS_ALARM(fe->fe_alarm)){ + if (!(fe->fe_alarm & WAN_TE_BIT_RED_ALARM)){ + DEBUG_EVENT("%s: RED alarm is ON\n", + fe->name); + } fe->fe_alarm |= WAN_TE_BIT_RED_ALARM; }else{ + if (fe->fe_alarm & WAN_TE_BIT_RED_ALARM){ + DEBUG_EVENT("%s: RED alarm is OFF\n", + fe->name); + } fe->fe_alarm &= ~WAN_TE_BIT_RED_ALARM; } /* LIU alarms */ if (lrsr & BIT_LRSR_OCS){ + if (!(fe->liu_alarm & WAN_TE_BIT_LIU_ALARM_OC)){ + DEBUG_EVENT("%s: Open Circuit is detected!\n", + fe->name); + } fe->liu_alarm |= WAN_TE_BIT_LIU_ALARM_OC; }else{ + if (fe->liu_alarm & WAN_TE_BIT_LIU_ALARM_OC){ + DEBUG_EVENT("%s: Open Circuit is cleared!\n", + fe->name); + } fe->liu_alarm &= ~WAN_TE_BIT_LIU_ALARM_OC; } if (lrsr & BIT_LRSR_SCS){ + if (!(fe->liu_alarm & WAN_TE_BIT_LIU_ALARM_SC)){ + DEBUG_EVENT("%s: Short Circuit is detected!\n", + fe->name); + } fe->liu_alarm |= WAN_TE_BIT_LIU_ALARM_SC; }else{ + if (fe->liu_alarm & WAN_TE_BIT_LIU_ALARM_SC){ + DEBUG_EVENT("%s: Short Circuit is cleared!\n", + fe->name); + } fe->liu_alarm &= ~WAN_TE_BIT_LIU_ALARM_SC; } if (lrsr & BIT_LRSR_LOSS){ + if (!(fe->liu_alarm & WAN_TE_BIT_LIU_ALARM_LOS)){ + DEBUG_EVENT("%s: Lost of Signal is detected!\n", + fe->name); + } fe->liu_alarm |= WAN_TE_BIT_LIU_ALARM_LOS; }else{ + if (fe->liu_alarm & WAN_TE_BIT_LIU_ALARM_LOS){ + DEBUG_EVENT("%s: Lost of Signal is cleared!\n", + fe->name); + } fe->liu_alarm &= ~WAN_TE_BIT_LIU_ALARM_LOS; } } @@ -1413,23 +1539,15 @@ static int sdla_ds_te1_set_alarms(sdla_fe_t* fe, unsigned long alarms) ** Arguments: ** Returns: */ - static int sdla_ds_te1_clear_alarms(sdla_fe_t* fe, unsigned long alarms) { - u8 value; - if (alarms & WAN_TE_BIT_YEL_ALARM){ - if (IS_T1_FEMEDIA(fe)){ - DEBUG_EVENT("%s: Clearing YELLOW alarm!\n", - fe->name); - value = READ_REG(REG_TCR1); - WRITE_REG(REG_TCR1, value & ~BIT_TCR1_T1_TRAI); - } + DEBUG_TEST("%s: Clearing YELLOW alarm (not supported)!\n", + fe->name); } return 0; } - /* ****************************************************************************** * sdla_ds_te1_rbs_report() @@ -1522,7 +1640,8 @@ static int sdla_ds_te1_rbs_update(sdla_fe_t* fe, int channo, unsigned char status) { - if (fe->fe_debug & WAN_FE_DEBUG_RBS_RX_ENABLE && fe->te_param.rx_rbs[channo] != status){ + if (fe->fe_debug & WAN_FE_DEBUG_RBS_RX_ENABLE && + fe->te_param.rx_rbs[channo] != status){ DEBUG_EVENT( "%s: %s:%-3d RX RBS A:%1d B:%1d C:%1d D:%1d\n", fe->name, @@ -2241,16 +2360,12 @@ static int sdla_ds_te1_framer_tx_intr(sdla_fe_t *fe) WRITE_REG(REG_TLS1, status); } if (istatus & BIT_TIIR_TLS2){ - DEBUG_EVENT("%s: Internal Error (%s:%d)!\n", - fe->name, __FUNCTION__,__LINE__); status = READ_REG(REG_TLS2); WRITE_REG(REG_TLS2, status); } if (istatus & BIT_TIIR_TLS3){ - DEBUG_EVENT("%s: Internal Error (%s:%d)!\n", - fe->name, __FUNCTION__,__LINE__); status = READ_REG(REG_TLS3); - WRITE_REG(REG_TLS3, status); + WRITE_REG(REG_TLS3, status); } return 0; } @@ -2437,15 +2552,23 @@ static int sdla_ds_te1_intr(sdla_fe_t *fe) sdla_ds_te1_set_status(fe, fe->fe_alarm); if (status != fe->fe_status){ if (fe->fe_status != FE_CONNECTED){ + sdla_fe_timer_event_t event; /* AL: March 1, 2006: Mask global FE intr */ - sdla_ds_te1_intr_ctrl(fe, 0, WAN_TE_INTR_GLOBAL, WAN_FE_INTR_MASK, 0x00); + sdla_ds_te1_intr_ctrl( + fe, 0, + WAN_TE_INTR_GLOBAL, + WAN_FE_INTR_MASK, + 0x00); /* Disable automatic update */ - sdla_ds_te1_intr_ctrl(fe, 0, WAN_TE_INTR_PMON, WAN_FE_INTR_MASK, 0x00); + sdla_ds_te1_intr_ctrl( + fe, 0, + WAN_TE_INTR_PMON, + WAN_FE_INTR_MASK, + 0x00); /* Start LINKDOWN poll */ - sdla_ds_te1_enable_timer( - fe, - TE_LINKDOWN_TIMER, - POLLING_TE1_TIMER*5); + event.type = TE_LINKDOWN_TIMER; + event.delay = POLLING_TE1_TIMER*5; + sdla_ds_te1_add_event(fe, &event); } } return 0; @@ -2471,91 +2594,124 @@ static void sdla_ds_te1_timer(unsigned long pfe) sdla_fe_t *fe = (sdla_fe_t*)pfe; sdla_t *card = (sdla_t*)fe->card; wan_device_t *wandev = &card->wandev; + wan_smp_flag_t smp_flags; + int empty = 1; + DEBUG_TEST("[TE1] %s: TE1 timer!\n", fe->name); if (wan_test_bit(TE_TIMER_KILL,(void*)&fe->te_param.critical)){ wan_clear_bit(TE_TIMER_RUNNING,(void*)&fe->te_param.critical); return; } - /*WAN_ASSERT1(wandev->te_enable_timer == NULL); */ - DEBUG_TIMER("%s: TE1 timer!\n", fe->name); - /* Enable hardware interrupt for TE1 */ - - if (wandev->fe_enable_timer){ - wandev->fe_enable_timer(fe->card); - }else{ - sdla_ds_te1_polling(fe); + if (!wan_test_bit(TE_TIMER_RUNNING,(void*)&fe->te_param.critical)){ + /* Somebody clear this bit */ + DEBUG_EVENT("WARNING: %s: Timer bit is cleared (should never happened)!\n", + fe->name); + return; } + wan_clear_bit(TE_TIMER_RUNNING,(void*)&fe->te_param.critical); + + /* Enable hardware interrupt for TE1 */ + wan_spin_lock_irq(&fe->lock,&smp_flags); + empty = WAN_LIST_EMPTY(&fe->event); + wan_spin_unlock_irq(&fe->lock,&smp_flags); + if (!empty){ + if (wan_test_and_set_bit(TE_TIMER_EVENT_PENDING,(void*)&fe->te_param.critical)){ + DEBUG_EVENT("%s: RM timer event is pending!\n", fe->name); + return; + } + if (wandev->fe_enable_timer){ + wandev->fe_enable_timer(fe->card); + }else{ + sdla_ds_te1_polling(fe); + } + }else{ + sdla_ds_te1_add_timer(fe, 1000); + } return; } /* ****************************************************************************** - * sdla_ds_te1_enable_timer() + * sdla_ds_te1_add_timer() * * Description: Enable software timer interrupt in delay ms. * Arguments: * Returns: ****************************************************************************** */ -static void sdla_ds_te1_enable_timer(sdla_fe_t* fe, unsigned char cmd, unsigned long delay) +static int sdla_ds_te1_add_timer(sdla_fe_t* fe, unsigned long delay) { - sdla_t *card = (sdla_t*)fe->card; - int err; - unsigned char last_cmd; - - WAN_ASSERT1(card == NULL); + int err; - DEBUG_TIMER("%s: %s:%d Cmd=0x%X\n", - fe->name,__FUNCTION__,__LINE__,cmd); - -#if defined (__WINDOWS__) - { - int rc=SILENT; - /* make sure not called from ISR */ - VERIFY_DISPATCH_IRQL(rc); - if(rc){ - DEBUG_EVENT("%s(): Error: invalid IRQL! current irql: %d\n", - __FUNCTION__, KeGetCurrentIrql()); - return; - } - } -#endif - if (wan_test_bit(TE_TIMER_KILL,(void*)&fe->te_param.critical)){ - wan_clear_bit( - TE_TIMER_RUNNING, - (void*)&fe->te_param.critical); - return; - } - - if (wan_test_and_set_bit(TE_TIMER_RUNNING,(void*)&fe->te_param.critical)){ - if (fe->te_param.timer_cmd == cmd){ - /* Just ignore current request */ - return; - } - DEBUG_TEST("%s: TE_TIMER_RUNNING: new_cmd=%X curr_cmd=%X\n", - fe->name, - cmd, - fe->te_param.timer_cmd); - return; - } - - //wan_set_bit(TE_TIMER_RUNNING,(void*)&fe->te_param.critical); - - last_cmd = fe->te_param.timer_cmd; - fe->te_param.timer_cmd=cmd; - - err = wan_add_timer(&fe->te_param.timer, delay * HZ / 1000); + err = wan_add_timer(&fe->timer, delay * HZ / 1000); if (err){ - DEBUG_EVENT("%s: Failed to start timer (cmd=%X, curr_cmd=%X)!\n", - fe->name, - cmd, - last_cmd); - return; + /* Failed to add timer */ + return -EINVAL; } - return; + wan_set_bit(TE_TIMER_RUNNING,(void*)&fe->te_param.critical); + return 0; } +/* + ****************************************************************************** + * sdla_ds_te1_add_event() + * + * Description: Enable software timer interrupt in delay ms. + * Arguments: + * Returns: + ****************************************************************************** + */ +static int +sdla_ds_te1_add_event(sdla_fe_t *fe, sdla_fe_timer_event_t *event) +{ + sdla_t *card = (sdla_t*)fe->card; + sdla_fe_timer_event_t *tevent = NULL; + wan_smp_flag_t smp_flags; + + WAN_ASSERT_RC(card == NULL, -EINVAL); + + DEBUG_TE1("%s: Add new DS Event=0x%X\n", + fe->name, event->type); + + /* Creating event timer */ + tevent = wan_malloc(sizeof(sdla_fe_timer_event_t)); + if (tevent == NULL){ + DEBUG_EVENT( + "%s: Failed to allocate memory for timer event!\n", + fe->name); + return -EINVAL; + } + + memcpy(tevent, event, sizeof(sdla_fe_timer_event_t)); + +#if 0 + DEBUG_EVENT("%s: %s:%d: ---------------START ----------------------\n", + fe->name, __FUNCTION__,__LINE__); + WARN_ON(1); + DEBUG_EVENT("%s: %s:%d: ---------------STOP ----------------------\n", + fe->name, __FUNCTION__,__LINE__); +#endif + wan_spin_lock_irq(&fe->lock,&smp_flags); + if (WAN_LIST_EMPTY(&fe->event)){ + WAN_LIST_INSERT_HEAD(&fe->event, tevent, next); + }else{ + sdla_fe_timer_event_t *tmp; + WAN_LIST_FOREACH(tmp, &fe->event, next){ + if (!WAN_LIST_NEXT(tmp, next)) break; + } + if (tmp == NULL){ + DEBUG_EVENT("%s: Internal Error!!!\n", fe->name); + wan_spin_unlock_irq(&fe->lock, &smp_flags); + return -EINVAL; + } + WAN_LIST_INSERT_AFTER(tmp, tevent, next); + } + wan_spin_unlock_irq(&fe->lock, &smp_flags); + return 0; +} + + /* ****************************************************************************** * sdla_ds_te1_polling() @@ -2567,31 +2723,51 @@ static void sdla_ds_te1_enable_timer(sdla_fe_t* fe, unsigned char cmd, unsigned */ static int sdla_ds_te1_polling(sdla_fe_t* fe) { - sdla_t *card = (sdla_t*)fe->card; - unsigned long ch_map = fe->te_param.timer_ch_map; - unsigned char cmd = fe->te_param.timer_cmd; + sdla_t *card = (sdla_t*)fe->card; + sdla_fe_timer_event_t *event; + wan_smp_flag_t smp_flags; + u_int8_t pending = 0; unsigned char value; unsigned int ch, bit, off; WAN_ASSERT(fe->write_fe_reg == NULL); WAN_ASSERT(fe->read_fe_reg == NULL); - DEBUG_TIMER("%s: TE1 Polling State=%s Cmd=0x%X!\n", - fe->name, WAN_FE_STATUS_DECODE(fe), - cmd); - - wan_clear_bit(TE_TIMER_RUNNING,(void*)&fe->te_param.critical); - switch(cmd){ +#if 0 + DEBUG_EVENT("%s: %s:%d: ---------------START ----------------------\n", + fe->name, __FUNCTION__,__LINE__); + WARN_ON(1); + DEBUG_EVENT("%s: %s:%d: ---------------STOP ----------------------\n", + fe->name, __FUNCTION__,__LINE__); +#endif + wan_spin_lock_irq(&fe->lock,&smp_flags); + if (WAN_LIST_EMPTY(&fe->event)){ + wan_clear_bit(TE_TIMER_EVENT_PENDING,(void*)&fe->te_param.critical); + wan_spin_unlock_irq(&fe->lock,&smp_flags); + DEBUG_EVENT("%s: WARNING: No FE events in a queue!\n", + fe->name); + sdla_ds_te1_add_timer(fe, HZ); + return 0; + } + event = WAN_LIST_FIRST(&fe->event); + WAN_LIST_REMOVE(event, next); + wan_spin_unlock_irq(&fe->lock,&smp_flags); + + DEBUG_TE1("%s: TE1 Polling State=%s Event=%X!\n", + fe->name, WAN_FE_STATUS_DECODE(fe), event->type); + switch(event->type){ case TE_LINKDOWN_TIMER: sdla_ds_te1_read_alarms(fe, WAN_FE_ALARM_READ); sdla_ds_te1_pmon(fe, WAN_FE_PMON_UPDATE|WAN_FE_PMON_READ); sdla_ds_te1_set_status(fe, fe->fe_alarm); if (fe->fe_status == FE_CONNECTED){ - sdla_ds_te1_enable_timer(fe, - TE_LINKUP_TIMER, - POLLING_TE1_TIMER); + event->type = TE_LINKUP_TIMER; + event->delay = POLLING_TE1_TIMER; + pending = 1; }else{ - sdla_ds_te1_enable_timer(fe, TE_LINKDOWN_TIMER, POLLING_TE1_TIMER); + event->type = TE_LINKDOWN_TIMER; + event->delay = POLLING_TE1_TIMER; + pending = 1; } break; @@ -2602,14 +2778,22 @@ static int sdla_ds_te1_polling(sdla_fe_t* fe) ** (critical for XILINX code) */ if (fe->fe_status == FE_CONNECTED){ /* Enable Basic Interrupt */ - sdla_ds_te1_intr_ctrl(fe, 0, WAN_TE_INTR_GLOBAL, WAN_FE_INTR_ENABLE, 0x00); + sdla_ds_te1_intr_ctrl( fe, 0, + WAN_TE_INTR_GLOBAL, + WAN_FE_INTR_ENABLE, + 0x00); /* Enable automatic update pmon counters */ - sdla_ds_te1_intr_ctrl(fe, 0, WAN_TE_INTR_PMON, WAN_FE_INTR_ENABLE, 0x00); + sdla_ds_te1_intr_ctrl( fe, 0, + WAN_TE_INTR_PMON, + WAN_FE_INTR_ENABLE, + 0x00); if (card->wandev.te_link_state){ card->wandev.te_link_state(card); } }else{ - sdla_ds_te1_enable_timer(fe, TE_LINKDOWN_TIMER, POLLING_TE1_TIMER); + event->type = TE_LINKDOWN_TIMER; + event->delay = POLLING_TE1_TIMER; + pending = 1; } break; @@ -2622,26 +2806,24 @@ static int sdla_ds_te1_polling(sdla_fe_t* fe) /* Set RBS bits */ DEBUG_TE1("%s: Set ABCD bits (%X) for channel %d!\n", fe->name, - fe->te_param.timer_abcd, - fe->te_param.timer_channel); + event->te_event.rbs_abcd, + event->te_event.rbs_channel); sdla_ds_te1_set_rbsbits(fe, - fe->te_param.timer_channel, - fe->te_param.timer_abcd); - fe->te_param.timer_channel = 0; - fe->te_param.timer_abcd = 0; + event->te_event.rbs_channel, + event->te_event.rbs_abcd); break; case TE_RBS_ENABLE: case TE_RBS_DISABLE: value = READ_REG(REG_TCR1); if (IS_T1_FEMEDIA(fe)){ - if (cmd == TE_RBS_ENABLE){ + if (event->type == TE_RBS_ENABLE){ value |= BIT_TCR1_T1_TSSE; }else{ value &= ~BIT_TCR1_T1_TSSE; } }else{ - if (cmd == TE_RBS_ENABLE){ + if (event->type == TE_RBS_ENABLE){ value |= BIT_TCR1_E1_T16S; }else{ value &= ~BIT_TCR1_E1_T16S; @@ -2650,7 +2832,7 @@ static int sdla_ds_te1_polling(sdla_fe_t* fe) WRITE_REG(REG_TCR1, value); for(ch = 1; ch <= fe->te_param.max_channels; ch++){ - if (!wan_test_bit(ch, &ch_map)){ + if (!wan_test_bit(ch, &event->te_event.ch_map)){ continue; } if (IS_T1_FEMEDIA(fe)){ @@ -2662,7 +2844,7 @@ static int sdla_ds_te1_polling(sdla_fe_t* fe) off = ch / 8; } value = READ_REG(REG_SSIE1+off); - if (cmd == TE_RBS_ENABLE){ + if (event->type == TE_RBS_ENABLE){ value |= (1<name, fe->te_param.timer_cmd, - __FUNCTION__,__LINE__); + case TE_SET_LB_MODE: + sdla_ds_te1_set_lbmode(fe, event->te_event.lb_type, event->mode); break; + + case TE_POLL_CONFIG: + DEBUG_EVENT("%s: Re-configuring %s Front-End chip...\n", + fe->name, FE_MEDIA_DECODE(fe)); + if (sdla_ds_te1_chip_config(fe)){ + DEBUG_EVENT("%s: Failed to re-configuring Front-End chip!\n", + fe->name); + return -EINVAL; + } + /* Enable interrupts */ + sdla_ds_te1_intr_ctrl(fe, 0, WAN_TE_INTR_BASIC, WAN_FE_INTR_ENABLE, 0x00); + /* Enable manual update pmon counter */ + sdla_ds_te1_intr_ctrl(fe, 0, WAN_TE_INTR_PMON, WAN_FE_INTR_MASK, 0x00); + event->type = TE_LINKDOWN_TIMER; + event->delay = POLLING_TE1_TIMER; + pending = 1; + break; + + case TE_POLL_READ: + DEBUG_EVENT("%s: Reading %s Front-End register: Reg[%04X]=%02X\n", + fe->name, FE_MEDIA_DECODE(fe), + event->te_event.reg, + READ_REG(event->te_event.reg)); + break; + + case TE_POLL_WRITE: + DEBUG_EVENT("%s: Writting %s Front-End register: Reg[%04X]=%02X\n", + fe->name, FE_MEDIA_DECODE(fe), + event->te_event.reg, + event->te_event.value); + WRITE_REG(event->te_event.reg, event->te_event.value); + break; + + default: + DEBUG_EVENT("%s: Unknown DS TE1 Polling type %02X\n", + fe->name, event->type); + break; + } + /* Add new event */ + if (pending){ + sdla_ds_te1_add_event(fe, event); + } + wan_clear_bit(TE_TIMER_EVENT_PENDING,(void*)&fe->te_param.critical); + if (event) wan_free(event); + + /* Add fe timer */ + event = WAN_LIST_FIRST(&fe->event); + if (event){ + sdla_ds_te1_add_timer(fe, event->delay); + }else{ + sdla_ds_te1_add_timer(fe, HZ); } return 0; } @@ -2693,7 +2924,7 @@ static int sdla_ds_te1_polling(sdla_fe_t* fe) */ static int sdla_ds_te1_flush_pmon(sdla_fe_t *fe) { - sdla_te_pmon_t *pmon = &fe->fe_stats.u.te_pmon; + sdla_te_pmon_t *pmon = &fe->fe_stats.te_pmon; sdla_ds_te1_pmon(fe, WAN_FE_PMON_UPDATE | WAN_FE_PMON_READ); pmon->lcv_errors = 0; pmon->oof_errors = 0; @@ -2715,7 +2946,7 @@ static int sdla_ds_te1_flush_pmon(sdla_fe_t *fe) */ static int sdla_ds_te1_pmon(sdla_fe_t *fe, int action) { - sdla_te_pmon_t *pmon = &fe->fe_stats.u.te_pmon; + sdla_te_pmon_t *pmon = &fe->fe_stats.te_pmon; u16 pmon1 = 0, pmon2 = 0, pmon3 = 0, pmon4 = 0; WAN_ASSERT(fe->write_fe_reg == NULL); @@ -2786,6 +3017,38 @@ static int sdla_ds_te1_pmon(sdla_fe_t *fe, int action) return 0; } +/* + ****************************************************************************** + * sdla_ds_te1_rxlevel() + * + * Description: + * Arguments: + * Returns: + ****************************************************************************** + */ +static int sdla_ds_te1_rxlevel(sdla_fe_t* fe) +{ + int index = 0; + unsigned char rxlevel; + + WAN_ASSERT(fe->write_fe_reg == NULL); + WAN_ASSERT(fe->read_fe_reg == NULL); + + rxlevel = READ_REG(REG_LRSL); + index = (rxlevel >> REG_LRSL_SHIFT) & REG_LRSL_MASK; + + memset(fe->fe_stats.u.te1_stats.rxlevel, 0, WAN_TE_RXLEVEL_LEN); + if (IS_T1_FEMEDIA(fe)){ + memcpy( fe->fe_stats.u.te1_stats.rxlevel, + wan_t1_ds_rxlevel[index], + strlen(wan_t1_ds_rxlevel[index])); + }else{ + memcpy( fe->fe_stats.u.te1_stats.rxlevel, + wan_e1_ds_rxlevel[index], + strlen(wan_e1_ds_rxlevel[index])); + } + return 0; +} /* ****************************************************************************** @@ -2937,14 +3200,12 @@ sdla_ds_te1_set_lbmode(sdla_fe_t *fe, unsigned char type, unsigned char mode) WAN_TE1_LB_MODE_DECODE(mode), WAN_TE1_LB_TYPE_DECODE(type)); switch(type){ - case WAN_TE1_DDLB_MODE: case WAN_TE1_LIU_ALB_MODE: sdla_ds_te1_liu_alb(fe, mode); break; case WAN_TE1_LIU_LLB_MODE: sdla_ds_te1_liu_llb(fe, mode); break; - case WAN_TE1_LINELB_MODE: case WAN_TE1_LIU_RLB_MODE: sdla_ds_te1_liu_rlb(fe, mode); break; @@ -2955,16 +3216,11 @@ sdla_ds_te1_set_lbmode(sdla_fe_t *fe, unsigned char type, unsigned char mode) case WAN_TE1_FR_FLB_MODE: sdla_ds_te1_fr_flb(fe, mode); break; - case WAN_TE1_PAYLB_MODE: case WAN_TE1_FR_PLB_MODE: sdla_ds_te1_fr_plb(fe, mode); break; case WAN_TE1_FR_RLB_MODE: - default: - DEBUG_EVENT("%s: Unsupport loopback mode (%s)!\n", - fe->name, - WAN_TE1_LB_MODE_DECODE(mode)); - return -EINVAL; + break; } return 0; } @@ -2980,9 +3236,10 @@ sdla_ds_te1_set_lbmode(sdla_fe_t *fe, unsigned char type, unsigned char mode) */ static int sdla_ds_te1_udp(sdla_fe_t *fe, void* p_udp_cmd, unsigned char* data) { - wan_cmd_t *udp_cmd = (wan_cmd_t*)p_udp_cmd; - sdla_fe_debug_t *fe_debug; - int err = 0; + wan_cmd_t *udp_cmd = (wan_cmd_t*)p_udp_cmd; + sdla_fe_debug_t *fe_debug; + sdla_fe_timer_event_t event; + int err = 0; switch(udp_cmd->wan_cmd_command){ case WAN_GET_MEDIA_TYPE: @@ -2995,7 +3252,15 @@ static int sdla_ds_te1_udp(sdla_fe_t *fe, void* p_udp_cmd, unsigned char* data) case WAN_FE_SET_LB_MODE: /* Activate/Deactivate Line Loopback modes */ - err = sdla_ds_te1_set_lbmode(fe, data[0], data[1]); +#if 1 + event.type = TE_SET_LB_MODE; + event.te_event.lb_type = data[0]; /* LB type */ + event.mode = data[1]; /* LB mode (activate/deactivate) */ + event.delay = POLLING_TE1_TIMER; + err = sdla_ds_te1_add_event(fe, &event); +#else + err = sdla_ds_te1_set_lbmode(fe, data[0], data[1]); +#endif udp_cmd->wan_cmd_return_code = (!err) ? WAN_CMD_OK : WAN_UDP_FAILED_CMD; udp_cmd->wan_cmd_data_len = 0x00; @@ -3004,6 +3269,14 @@ static int sdla_ds_te1_udp(sdla_fe_t *fe, void* p_udp_cmd, unsigned char* data) case WAN_FE_GET_STAT: /* TE1 Update T1/E1 perfomance counters */ sdla_ds_te1_pmon(fe, WAN_FE_PMON_UPDATE|WAN_FE_PMON_READ); + if (udp_cmd->wan_cmd_fe_force){ + /* force to read FE alarms */ + DEBUG_EVENT("%s: Force to read Front-End alarms\n", + fe->name); + fe->fe_stats.alarms = + sdla_ds_te1_read_alarms(fe, WAN_FE_ALARM_READ); + } + sdla_ds_te1_rxlevel(fe); memcpy(&data[0], &fe->fe_stats, sizeof(sdla_fe_stats_t)); udp_cmd->wan_cmd_return_code = WAN_CMD_OK; udp_cmd->wan_cmd_data_len = sizeof(sdla_fe_stats_t); @@ -3031,7 +3304,9 @@ static int sdla_ds_te1_udp(sdla_fe_t *fe, void* p_udp_cmd, unsigned char* data) if (fe_debug->mode == WAN_FE_DEBUG_RBS_READ){ DEBUG_EVENT("%s: Reading RBS status!\n", fe->name); - sdla_ds_te1_enable_timer(fe, TE_RBS_READ, POLLING_TE1_TIMER); + event.type = TE_RBS_READ; + event.delay = POLLING_TE1_TIMER; + sdla_ds_te1_add_event(fe, &event); udp_cmd->wan_cmd_return_code = WAN_CMD_OK; }else if (fe_debug->mode == WAN_FE_DEBUG_RBS_PRINT){ /* Enable extra debugging */ @@ -3068,39 +3343,49 @@ static int sdla_ds_te1_udp(sdla_fe_t *fe, void* p_udp_cmd, unsigned char* data) }else if (fe_debug->mode == WAN_FE_DEBUG_RBS_SET){ if (IS_T1_FEMEDIA(fe)){ - if (fe_debug->channel < 1 || fe_debug->channel > 24){ - DEBUG_EVENT("%s: Invalid channel number %d\n", - fe->name, - fe_debug->channel); + if (fe_debug->fe_debug_rbs.channel < 1 || + fe_debug->fe_debug_rbs.channel > 24){ + DEBUG_EVENT( + "%s: Invalid channel number %d\n", + fe->name, + fe_debug->fe_debug_rbs.channel); break; } }else{ - if (fe_debug->channel < 0 || fe_debug->channel > 31){ - DEBUG_EVENT("%s: Invalid channel number %d\n", - fe->name, - fe_debug->channel); + if (fe_debug->fe_debug_rbs.channel < 0 || + fe_debug->fe_debug_rbs.channel > 31){ + DEBUG_EVENT( + "%s: Invalid channel number %d\n", + fe->name, + fe_debug->fe_debug_rbs.channel); break; } } - fe->te_param.timer_channel = fe_debug->channel; - fe->te_param.timer_abcd = fe_debug->abcd; - sdla_ds_te1_enable_timer(fe, TE_SET_RBS, POLLING_TE1_TIMER); - udp_cmd->wan_cmd_return_code = WAN_CMD_OK; + event.type = TE_RBS_READ; + event.delay = POLLING_TE1_TIMER; + event.te_event.rbs_channel = fe_debug->fe_debug_rbs.channel; + event.te_event.rbs_abcd = fe_debug->fe_debug_rbs.abcd; + sdla_ds_te1_add_event(fe, &event); + udp_cmd->wan_cmd_return_code = WAN_CMD_OK; } break; + case WAN_FE_DEBUG_RECONFIG: + event.type = TE_POLL_CONFIG; + event.delay = POLLING_TE1_TIMER; + sdla_ds_te1_add_event(fe, &event); + udp_cmd->wan_cmd_return_code = WAN_CMD_OK; + break; case WAN_FE_DEBUG_REG: - if (fe_debug->read){ - fe_debug->value = READ_REG(fe_debug->reg); - DEBUG_EVENT("%s: Read Front-End register %04X = %02X\n", - fe->name, fe_debug->reg,fe_debug->value); - }else{ - DEBUG_EVENT("%s: Write Front-End register %04X = %02X\n", - fe->name, fe_debug->reg,fe_debug->value); - WRITE_REG(fe_debug->reg, fe_debug->value); - } - udp_cmd->wan_cmd_return_code = WAN_CMD_OK; + event.type = (fe_debug->fe_debug_reg.read) ? + TE_POLL_READ : TE_POLL_WRITE; + event.te_event.reg = fe_debug->fe_debug_reg.reg; + event.te_event.value = fe_debug->fe_debug_reg.value; + event.delay = POLLING_TE1_TIMER; + sdla_ds_te1_add_event(fe, &event); + udp_cmd->wan_cmd_return_code = WAN_CMD_OK; break; + case WAN_FE_DEBUG_ALARM: default: udp_cmd->wan_cmd_return_code = WAN_UDP_INVALID_CMD; @@ -3178,21 +3463,21 @@ sdla_ds_te1_update_pmon_info(sdla_fe_t* fe, struct seq_file* m, int* stop_cnt) if (IS_T1_FEMEDIA(fe)){ PROC_ADD_LINE(m, PROC_STATS_PMON_FORMAT, - "Line Code Violation", fe->fe_stats.u.te_pmon.lcv_errors, - "Bit Errors", fe->fe_stats.u.te_pmon.bee_errors); + "Line Code Violation", fe->fe_stats.te_pmon.lcv_errors, + "Bit Errors", fe->fe_stats.te_pmon.bee_errors); PROC_ADD_LINE(m, PROC_STATS_PMON_FORMAT, - "Out of Frame Errors", fe->fe_stats.u.te_pmon.oof_errors, + "Out of Frame Errors", fe->fe_stats.te_pmon.oof_errors, "", (u_int32_t)0); }else{ PROC_ADD_LINE(m, PROC_STATS_PMON_FORMAT, - "Line Code Violation", fe->fe_stats.u.te_pmon.lcv_errors, - "CRC4 Errors", fe->fe_stats.u.te_pmon.crc4_errors); + "Line Code Violation", fe->fe_stats.te_pmon.lcv_errors, + "CRC4 Errors", fe->fe_stats.te_pmon.crc4_errors); PROC_ADD_LINE(m, PROC_STATS_PMON_FORMAT, - "FAS Errors", fe->fe_stats.u.te_pmon.fas_errors, - "Far End Block Errors", fe->fe_stats.u.te_pmon.feb_errors); + "FAS Errors", fe->fe_stats.te_pmon.fas_errors, + "Far End Block Errors", fe->fe_stats.te_pmon.feb_errors); } return m->count; #endif diff --git a/patches/kdrivers/src/net/sdla_adccp.c b/patches/kdrivers/src/net/sdla_adccp.c index 855e713..df4f830 100644 --- a/patches/kdrivers/src/net/sdla_adccp.c +++ b/patches/kdrivers/src/net/sdla_adccp.c @@ -239,34 +239,32 @@ typedef struct x25_channel /* FIXME Take this out */ -#pragma pack(1) #ifdef NEX_OLD_CALL_INFO typedef struct x25_call_info { - char dest[17]; ;/* ASCIIZ destination address */ - char src[17]; ;/* ASCIIZ source address */ - char nuser; ;/* number of user data bytes */ - unsigned char user[127]; ;/* user data */ - char nfacil; ;/* number of facilities */ + char dest[17]; PACKED;/* ASCIIZ destination address */ + char src[17]; PACKED;/* ASCIIZ source address */ + char nuser; PACKED;/* number of user data bytes */ + unsigned char user[127]; PACKED;/* user data */ + char nfacil; PACKED;/* number of facilities */ struct { - unsigned char code; ; - unsigned char parm; ; + unsigned char code; PACKED; + unsigned char parm; PACKED; } facil[64]; /* facilities */ } x25_call_info_t; #else typedef struct x25_call_info { - char dest[MAX_X25_ADDR_SIZE] ;/* ASCIIZ destination address */ - char src[MAX_X25_ADDR_SIZE] ;/* ASCIIZ source address */ - unsigned char nuser ; - unsigned char user[MAX_X25_DATA_SIZE] ;/* user data */ - unsigned char nfacil ; - unsigned char facil[MAX_X25_FACL_SIZE] ; - unsigned short lcn ; + char dest[MAX_X25_ADDR_SIZE] PACKED;/* ASCIIZ destination address */ + char src[MAX_X25_ADDR_SIZE] PACKED;/* ASCIIZ source address */ + unsigned char nuser PACKED; + unsigned char user[MAX_X25_DATA_SIZE] PACKED;/* user data */ + unsigned char nfacil PACKED; + unsigned char facil[MAX_X25_FACL_SIZE] PACKED; + unsigned short lcn PACKED; } x25_call_info_t; #endif -#pragma pack() @@ -309,7 +307,7 @@ static void if_tx_timeout (netdevice_t *dev); /*================================================= * Interrupt handlers */ -static void wpx_isr (sdla_t *); +static WAN_IRQ_RETVAL wpx_isr (sdla_t *); static void rx_intr (sdla_t *); static void tx_intr (sdla_t *); static void status_intr (sdla_t *); @@ -430,7 +428,7 @@ static TX25Stats X25Stats; /*=================================================================== - * wpx_init: X.25 Protocol Initialization routine. + * wp_adccp_init: ADCCP Protocol Initialization routine. * * Purpose: To initialize the protocol/firmware. * @@ -1545,7 +1543,7 @@ static int if_ioctl (netdevice_t *dev, struct ifreq *ifr, int cmd) * X.25 Interrupt Service Routine. */ -static void wpx_isr (sdla_t* card) +static WAN_IRQ_RETVAL wpx_isr (sdla_t* card) { TX25Status status; card->hw_iface.peek(card->hw, card->flags_off, &status, sizeof(status)); @@ -1555,7 +1553,7 @@ static void wpx_isr (sdla_t* card) printk(KERN_INFO "%s: Critical in WPX_ISR\n",card->devname); status.iflags = 0; card->hw_iface.poke(card->hw, card->flags_off, &status, sizeof(status)); - return; + WAN_IRQ_RETURN(WAN_IRQ_HANDLED); } card->in_isr = 1; @@ -1566,7 +1564,7 @@ static void wpx_isr (sdla_t* card) card->in_isr=0; status.iflags = 0; card->hw_iface.poke(card->hw, card->flags_off, &status, sizeof(status)); - return; + WAN_IRQ_RETURN(WAN_IRQ_HANDLED); } if (test_bit(SEND_CRIT, (void*)&card->wandev.critical)){ @@ -1576,7 +1574,7 @@ static void wpx_isr (sdla_t* card) card->in_isr = 0; status.iflags = 0; card->hw_iface.poke(card->hw, card->flags_off, &status, sizeof(status)); - return; + WAN_IRQ_RETURN(WAN_IRQ_HANDLED); } @@ -1616,6 +1614,7 @@ static void wpx_isr (sdla_t* card) card->in_isr = 0; status.iflags = 0; card->hw_iface.poke(card->hw, card->flags_off, &status, sizeof(status)); + WAN_IRQ_RETURN(WAN_IRQ_HANDLED); } /* diff --git a/patches/kdrivers/src/net/sdla_adsl.c b/patches/kdrivers/src/net/sdla_adsl.c index 7a5a69b..6b9d54c 100644 --- a/patches/kdrivers/src/net/sdla_adsl.c +++ b/patches/kdrivers/src/net/sdla_adsl.c @@ -169,13 +169,17 @@ static int adsl_init(netdevice_t* dev); # endif #endif -static void wpa_isr (sdla_t*); +static WAN_IRQ_RETVAL wpa_isr (sdla_t*); static void disable_comm(sdla_t* card); static int process_udp_mgmt_pkt(sdla_t*, netdevice_t*, adsl_private_area_t*, int); static int new_if (wan_device_t*, netdevice_t*, wanif_conf_t*); static int del_if (wan_device_t*, netdevice_t*); static int process_udp_cmd(netdevice_t*,wan_udp_hdr_t*); -void process_bh(void *); +# if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)) +static void process_bh (void *); +#else +static void process_bh (struct work_struct *work); +#endif int adsl_trace_queue_len(void *trace_ptr); @@ -360,7 +364,7 @@ static int new_if (wan_device_t* wandev, netdevice_t* ifp, wanif_conf_t* conf) ifp->if_snd.ifq_len = 0; #elif defined(__LINUX__) - INIT_WORK((&adsl->common.wanpipe_task),process_bh,ifp); + WAN_TASKQ_INIT((&adsl->common.wanpipe_task),0,process_bh,ifp); ifp->priv = adsl; ifp->irq = card->wandev.irq; @@ -670,7 +674,6 @@ static int adsl_open(netdevice_t* ifp) int status = 0; #if defined (__LINUX__) adsl_private_area_t* adsl = wan_netif_priv(ifp); - sdla_t *card=adsl->common.card; #endif #if defined (__LINUX__) @@ -683,14 +686,7 @@ static int adsl_open(netdevice_t* ifp) /* Start Tx queuing */ WAN_NETDEVICE_START(ifp); - - if (card->wandev.state == WAN_CONNECTED) { - WAN_NETIF_CARRIER_ON(ifp); - WAN_NETIF_START_QUEUE(ifp); - } else { - WAN_NETIF_CARRIER_OFF(ifp); - WAN_NETIF_STOP_QUEUE(ifp); - } + WAN_NETIF_START_QUEUE(ifp); if (adsl->common.usedby == STACK){ /* Force the lip to connect state @@ -745,14 +741,20 @@ int adsl_close(netdevice_t* ifp) * * Description: *-F*************************************************************************/ -static void wpa_isr (sdla_t* card) +static WAN_IRQ_RETVAL wpa_isr (sdla_t* card) { + int ret; if (!card->u.adsl.adapter){ DEBUG_CFG("wpa_isr: No adapter ptr!\n"); - return; + WAN_IRQ_RETURN(WAN_IRQ_NONE); } /*WAN_ASSERT1(card->u.adsl.adapter == NULL);*/ - adsl_isr((void*)card->u.adsl.adapter); + ret=adsl_isr((void*)card->u.adsl.adapter); + if (ret) { + WAN_IRQ_RETURN(WAN_IRQ_HANDLED); + } + + WAN_IRQ_RETURN(WAN_IRQ_NONE); } /*+F************************************************************************* @@ -832,9 +834,9 @@ adsl_lan_rx( #if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) # if defined(__FreeBSD__) && (__FreeBSD_version < 500000) - wan_bpf_report(dev, rx_skb, 0); + wan_bpf_report(dev, rx_skb, 0, WAN_BPF_DIR_IN); # elif defined(__NetBSD__) || defined(__OpenBSD__) - wan_bpf_report(dev, rx_skb, 0); + wan_bpf_report(dev, rx_skb, 0, WAN_BPF_DIR_IN); # endif card->wandev.stats.rx_packets ++; @@ -859,7 +861,7 @@ adsl_lan_rx( case RFC_MODE_ROUTED_IP_VC: wan_skb_clear_mark(rx_skb); #if (__FreeBSD_version >= 501000) - wan_bpf_report(dev, rx_skb, 0); + wan_bpf_report(dev, rx_skb, 0, WAN_BPF_DIR_IN); netisr_queue(NETISR_IP, rx_skb); #else wan_spin_lock_irq(NULL, &s); @@ -988,8 +990,8 @@ adsl_output(netdevice_t* dev, netskb_t* skb, struct sockaddr* dst, struct rtentr case RFC_MODE_STACK_VC: if (wan_skb_len(skb) <= 2){ - DEBUG_EVENT("%s: Error: TxLan: PPP pkt len <= 2!\n", - wan_netif_name(dev)); + DEBUG_EVENT("%s: Error: TxLan: PPP pkt len <= 2! (len=%i)\n", + wan_netif_name(dev),wan_skb_len(skb)); wan_skb_print(skb); wan_skb_free(skb); WAN_NETIF_START_QUEUE(dev); @@ -1127,7 +1129,7 @@ void adsl_sppp_tx (netdevice_t *ifp) DEBUG_TX("%s: TxLan %d bytes...\n", wan_netif_name(ifp), wan_skb_len(tx_mbuf)); - wan_bpf_report(ifp, tx_mbuf, 0); + wan_bpf_report(ifp, tx_mbuf, 0, WAN_BPF_DIR_OUT); wan_skb_pull(tx_mbuf, 2); if (adsl_send(adsl->pAdapter, tx_mbuf, 0)){ DEBUG_TX("%s: TX failed to send %d bytes!\n", @@ -1212,7 +1214,7 @@ void adsl_tx (netdevice_t *ifp) ifp->if_iqdrops++; } - wan_bpf_report(ifp, tx_mbuf, 0); + wan_bpf_report(ifp, tx_mbuf, 0, WAN_BPF_DIR_OUT); if (tx_mbuf){ wan_skb_free(tx_mbuf); @@ -1619,12 +1621,31 @@ adsl_ioctl_done: #if defined(__LINUX__) /* FIXME update for BSD */ -void process_bh(void* dev_ptr) -{ - netdevice_t *dev = dev_ptr; - adsl_private_area_t* adsl = wan_netif_priv(dev); - sdla_t* card = adsl->common.card; +# if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)) +static void process_bh (void *dev_ptr) +#else +static void process_bh (struct work_struct *work) +#endif +{ + netdevice_t *dev; + adsl_private_area_t *adsl; + sdla_t* card; + +# if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)) + adsl = container_of(work, adsl_private_area_t, common.wanpipe_task); + dev = adsl->common.dev; + if (!dev) { + return; + } +#else + dev=dev_ptr; + if (!dev || (adsl = wan_netif_priv(dev)) == NULL){ + return; + } +#endif + card = adsl->common.card; + process_udp_mgmt_pkt(card, dev, adsl,0); } #endif @@ -1729,9 +1750,9 @@ static int process_udp_mgmt_pkt(sdla_t* card, netdevice_t* dev, # endif # if defined(__FreeBSD__) && (__FreeBSD_version < 500000) - wan_bpf_report(dev, new_skb, 0); + wan_bpf_report(dev, new_skb, 0, WAN_BPF_DIR_IN); # elif defined(__NetBSD__) || defined(__OpenBSD__) - wan_bpf_report(dev, new_skb, 0); + wan_bpf_report(dev, new_skb, 0, WAN_BPF_DIR_IN); # endif # if defined(__NetBSD__) || defined(__FreeBSD__) && (__FreeBSD_version > 500000) dev->if_input(dev, new_skb); diff --git a/patches/kdrivers/src/net/sdla_aft_te1.c b/patches/kdrivers/src/net/sdla_aft_te1.c index fa66835..b408b61 100644 --- a/patches/kdrivers/src/net/sdla_aft_te1.c +++ b/patches/kdrivers/src/net/sdla_aft_te1.c @@ -15,7 +15,7 @@ * Jan 07, 2003 Nenad Corbic Initial version. * Oct 25, 2004 Nenad Corbic Support for QuadPort TE1 *****************************************************************************/ - + #if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) # include # include @@ -39,7 +39,11 @@ # include #endif -#include +#if defined(CONFIG_WANPIPE_HWEC) +# include +#endif + +#define INIT_FE_ONLY 0 #undef DEBUG_REG @@ -145,10 +149,6 @@ #undef AFT_API_SUPPORT #endif -#if defined(WANPIPE_64BIT_4G_DMA) -#warning "Wanpipe compiled for 64bit 4G DMA" -#endif - /* Trigger on Number of transactions * 1= 1x8 byte transactions @@ -165,11 +165,10 @@ #define AFT_SS7_CTRL_TYPE_BIT 4 #define AFT_SS7_CTRL_FORCE_BIT 5 -#define AFT_MAX_CHIP_SECURITY_CNT 500 +#define AFT_MAX_CHIP_SECURITY_CNT 100 #define AFT_FE_FIX_FIRM_VER 100 - aft_hw_dev_t aft_hwdev[MAX_AFT_HW_DEV]; enum { @@ -313,7 +312,7 @@ static void port_set_state (sdla_t *card, int); static void disable_comm (sdla_t *card); /* Interrupt handlers */ -static void wp_aft_global_isr (sdla_t* card); +static WAN_IRQ_RETVAL wp_aft_global_isr (sdla_t* card); static void wp_aft_dma_per_port_isr(sdla_t *card); static void wp_aft_tdmv_per_port_isr(sdla_t *card); static void wp_aft_fifo_per_port_isr(sdla_t *card); @@ -359,8 +358,7 @@ static int aft_dma_rx_tdmv(sdla_t *card, private_area_t *chan); #if defined(CONFIG_PRODUCT_WANPIPE_TDM_VOICE) static int aft_voice_span_rx_tx(sdla_t *card, int rotate); #endif - - + static void aft_channel_txdma_ctrl(sdla_t *card, private_area_t *chan, int on); static void aft_channel_rxdma_ctrl(sdla_t *card, private_area_t *chan, int on); static void aft_channel_txintr_ctrl(sdla_t *card, private_area_t *chan, int on); @@ -371,9 +369,21 @@ static int aft_front_end_mismatch_check(sdla_t * card); static int aft_tslot_sync_ctrl(sdla_t *card, private_area_t *chan, int mode); #if defined(__LINUX__) -static void aft_port_task (void * card_ptr); +# if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)) +static void aft_port_task (void * card_ptr); +# else +static void aft_port_task (struct work_struct *work); +# endif #else -static void aft_port_task (void * card_ptr, int arg); +static void aft_port_task (void * card_ptr, int arg); +#endif + +#if defined(__LINUX__) +static void aft_rtp_config(sdla_t *card); +static void aft_rtp_unconfig(sdla_t *card); +#if 0 +static void aft_rtp_tap(sdla_t *card, private_area_t *chan, u8* rx, u8* tx, u32 len); +#endif #endif static int aft_devel_ioctl(sdla_t *card,struct ifreq *ifr); @@ -427,10 +437,14 @@ static void aft_data_mux_get_cfg(sdla_t *card); static int aft_ss7_tx_mangle(sdla_t *card,private_area_t *chan, netskb_t *skb); static int aft_tdmv_init(sdla_t *card, wandev_conf_t *conf); +#if defined(CONFIG_PRODUCT_WANPIPE_TDM_VOICE) static int aft_tdmv_free(sdla_t *card); +#endif static int aft_tdmv_if_init(sdla_t *card, private_area_t *chan, wanif_conf_t *conf); static int aft_tdmv_if_free(sdla_t *card, private_area_t *chan); +static int digital_loop_test(sdla_t* card,wan_udp_pkt_t* wan_udp_pkt); + #if 0 static void wp_tdmv_api_chan_rx_tx(sdla_t *card, private_area_t *chan, @@ -457,7 +471,6 @@ static int aft_write_hdlc_frame(void *chan_ptr, netskb_t *skb); #endif static int aft_tdm_ring_rsync(sdla_t *card); static void aft_critical_shutdown(sdla_t *card); -static int digital_loop_test(sdla_t* card,wan_udp_pkt_t *wan_udp_pkt); /* API VoIP event */ #if defined(AFT_API_SUPPORT) @@ -503,8 +516,9 @@ static unsigned char aft_write_ec (void*, unsigned short, unsigned char); static unsigned char aft_read_ec (void*, unsigned short); static int aft_hwec_config(sdla_t *card, private_area_t *chan, wanif_conf_t *conf, int ctrl); +static int aft_find_master_if_and_dchan(sdla_t *card, int *master_if,u32 active_ch); + - /**SECTION********************************************************* * * Public Functions @@ -578,7 +592,7 @@ int aft_global_hw_device_init(void) aft_hwdev[WANOPT_AFT_ANALOG].aft_write_cpld = aft_analog_write_cpld; aft_hwdev[WANOPT_AFT_ANALOG].aft_fifo_adjust = aft_analog_fifo_adjust; aft_hwdev[WANOPT_AFT_ANALOG].aft_check_ec_security = a200_check_ec_security; - + aft_hwdev[WANOPT_AFT_56K].init = 1; aft_hwdev[WANOPT_AFT_56K].aft_global_chip_config = a104_global_chip_config; aft_hwdev[WANOPT_AFT_56K].aft_global_chip_unconfig = a104_global_chip_unconfig; @@ -587,9 +601,9 @@ int aft_global_hw_device_init(void) aft_hwdev[WANOPT_AFT_56K].aft_chan_config = a104_chan_dev_config; aft_hwdev[WANOPT_AFT_56K].aft_chan_unconfig = a104_chan_dev_unconfig; aft_hwdev[WANOPT_AFT_56K].aft_led_ctrl = a104_led_ctrl; - aft_hwdev[WANOPT_AFT_56K].aft_test_sync = a104_test_sync; + aft_hwdev[WANOPT_AFT_56K].aft_test_sync = a104_test_sync; aft_hwdev[WANOPT_AFT_56K].aft_read_cpld = aft_56k_read_cpld; - aft_hwdev[WANOPT_AFT_56K].aft_write_cpld = aft_56k_write_cpld; + aft_hwdev[WANOPT_AFT_56K].aft_write_cpld = aft_56k_write_cpld; aft_hwdev[WANOPT_AFT_56K].aft_fifo_adjust = a104_fifo_adjust; aft_hwdev[WANOPT_AFT_56K].aft_check_ec_security = a104_check_ec_security; @@ -763,6 +777,7 @@ int wp_aft_te1_init (sdla_t* card, wandev_conf_t* conf) }else{ card->u.aft.num_of_time_slots=NUM_OF_E1_CHANNELS; } + }else{ DEBUG_EVENT("%s: Invalid Front-End media type!!\n", card->devname); @@ -773,7 +788,6 @@ int wp_aft_te1_init (sdla_t* card, wandev_conf_t* conf) } - int wp_aft_56k_init (sdla_t* card, wandev_conf_t* conf) { @@ -828,7 +842,7 @@ int wp_aft_56k_init (sdla_t* card, wandev_conf_t* conf) return -EINVAL; } */ - sdla_56k_iface_init(&card->fe, &card->wandev.fe_iface); + sdla_56k_iface_init(&card->wandev.fe_iface); card->fe.name = card->devname; card->fe.card = card; @@ -877,13 +891,15 @@ static int wan_aft_init (sdla_t *card, wandev_conf_t* conf) memcpy(&card->u.aft.cfg,&conf->u.aft,sizeof(wan_xilinx_conf_t)); memset(card->u.aft.dev_to_ch_map,0,sizeof(card->u.aft.dev_to_ch_map)); - + memcpy(&card->tdmv_conf,&conf->tdmv_conf,sizeof(wan_tdmv_conf_t)); + memcpy(&card->hwec_conf,&conf->hwec_conf,sizeof(wan_hwec_conf_t)); + card->u.aft.cfg.dma_per_ch = MAX_RX_BUF; card->u.aft.tdmv_api_rx = NULL; card->u.aft.tdmv_api_tx = NULL; + card->u.aft.tdmv_dchan=0; wan_skb_queue_init(&card->u.aft.tdmv_api_tx_list); - if (card->wandev.ignore_front_end_status == WANOPT_NO){ DEBUG_EVENT( "%s: Enabling front end link monitor\n", @@ -970,6 +986,9 @@ static int wan_aft_init (sdla_t *card, wandev_conf_t* conf) card->hw_iface.getcfg(card->hw, SDLA_USEDCNT, &used_cnt); wan_clear_bit(CARD_DOWN,&card->wandev.critical); + + __sdla_push_ptr_isr_array(card->hw,card,card->wandev.comm_port); + card->isr = &wp_aft_global_isr; if (used_cnt==1){ @@ -1045,13 +1064,15 @@ static int wan_aft_init (sdla_t *card, wandev_conf_t* conf) wan_clear_bit(AFT_TDM_GLOBAL_ISR,&card->u.aft.chip_cfg_status); wan_clear_bit(AFT_TDM_RING_BUF,&card->u.aft.chip_cfg_status); - + if (card->u.aft.firm_id == AFT_DS_FE_CORE_ID) { if ((card->adptr_type == A108_ADPTR_8TE1 && card->u.aft.firm_ver >= 0x27) || (card->adptr_type == A104_ADPTR_4TE1 && card->u.aft.firm_ver >= 0x26) || (card->adptr_type == A101_ADPTR_2TE1 && + card->u.aft.firm_ver >= 0x26) || + (card->adptr_type == A101_ADPTR_1TE1 && card->u.aft.firm_ver >= 0x26)) { wan_set_bit(AFT_TDM_GLOBAL_ISR,&card->u.aft.chip_cfg_status); wan_set_bit(AFT_TDM_RING_BUF,&card->u.aft.chip_cfg_status); @@ -1075,6 +1096,16 @@ static int wan_aft_init (sdla_t *card, wandev_conf_t* conf) wan_test_bit(AFT_TDM_RING_BUF,&card->u.aft.chip_cfg_status) ? "Enabled" : "Disabled"); + if (card->wandev.ec_dev){ + card->u.aft.tdmv_hw_dtmf = conf->tdmv_conf.hw_dtmf; + }else{ + card->u.aft.tdmv_hw_dtmf = WANOPT_NO; + } + DEBUG_EVENT("%s: Global TDM HW DTMF = %s\n", + card->devname, + (card->u.aft.tdmv_hw_dtmf == WANOPT_YES) ? + "Enabled" : "Disabled"); + err=aft_tdmv_init(card,conf); if (err){ disable_comm(card); @@ -1083,6 +1114,8 @@ static int wan_aft_init (sdla_t *card, wandev_conf_t* conf) card->disable_comm = &disable_comm; + aft_rtp_config(card); + card->wandev.read_ec = aft_read_ec; card->wandev.write_ec = aft_write_ec; @@ -1238,7 +1271,7 @@ aft_tdm_api_init(sdla_t *card, private_area_t *chan, wanif_conf_t *conf) chan->wp_tdm_api_dev.cfg.rx_disable = 0; chan->wp_tdm_api_dev.cfg.tx_disable = 0; - if (IS_TE1_CARD(card)) { + if (IS_TE1_CARD(card)) { if (IS_T1_CARD(card)){ chan->wp_tdm_api_dev.cfg.hw_tdm_coding=WP_MULAW; chan->wp_tdm_api_dev.tdm_chan = chan->first_time_slot+1; @@ -1254,7 +1287,7 @@ aft_tdm_api_init(sdla_t *card, private_area_t *chan, wanif_conf_t *conf) chan->wp_tdm_api_dev.cfg.hw_tdm_coding=WP_ALAW; chan->wp_tdm_api_dev.tdm_chan = chan->first_time_slot+1; } - } + } if (IS_T1_CARD(card) || IS_FXOFXS_CARD(card)){ /* Convert active_ch bit map to user */ @@ -1266,33 +1299,13 @@ aft_tdm_api_init(sdla_t *card, private_area_t *chan, wanif_conf_t *conf) chan->wp_tdm_api_dev.cfg.idle_flag = conf->u.aft.idle_flag; chan->wp_tdm_api_dev.cfg.rbs_tx_bits = conf->u.aft.rbs_cas_idle; - chan->wp_tdm_api_dev.tdm_span = card->u.aft.cfg.tdmv_span_no; + chan->wp_tdm_api_dev.tdm_span = card->tdmv_conf.span_no; err=wanpipe_tdm_api_reg(&chan->wp_tdm_api_dev); if (err){ return err; } -#if 0 - /* This is now done for all Voice interfaces with - HWEC capability */ - if (conf->u.aft.tdmv_hwec && card->wandev.ec_enable){ - int channel=chan->wp_tdm_api_dev.tdm_chan-1; - DEBUG_EVENT("%s: HW echo canceller Enabled on channel %d\n", - chan->if_name, - channel); - err = card->wandev.ec_enable(card, 1, channel); - if (err) { - DEBUG_EVENT("%s: Failed to enable HWEC on channel %d\n", - chan->if_name,channel); - - } - - /* Ignore this error */ - err=0; - } -#endif - wan_set_bit(0,&chan->wp_tdm_api_dev.init); return err; #else @@ -1347,7 +1360,6 @@ static int aft_chan_if_init(sdla_t *card, netdevice_t *dev, private_area_t *chan WAN_IFQ_INIT(&chan->wp_rx_complete_list,0); WAN_IFQ_INIT(&chan->wp_rx_stack_complete_list, 0); - WAN_IFQ_INIT(&chan->wp_rx_zap_complete_list, 0); wan_trace_info_init(&chan->trace_info,MAX_TRACE_QUEUE); @@ -1434,7 +1446,9 @@ static int aft_transp_if_init(sdla_t *card, private_area_t *chan, wanif_conf_t * return -EINVAL; } - if (conf->protocol != WANCONFIG_LIP_ATM && chan->mru%chan->num_of_time_slots){ + if (conf->protocol != WANCONFIG_LIP_ATM && + conf->protocol != WANCONFIG_LIP_KATM && + chan->mru%chan->num_of_time_slots){ DEBUG_EVENT("%s:%s: Error, Transparent MRU must be timeslot aligned!\n", card->devname,chan->if_name); @@ -1466,7 +1480,8 @@ static int aft_transp_if_init(sdla_t *card, private_area_t *chan, wanif_conf_t * } buf = wan_skb_put(chan->tx_idle_skb,chan->dma_mru); - if(conf->protocol != WANCONFIG_LIP_ATM){ + if(conf->protocol != WANCONFIG_LIP_ATM && + conf->protocol != WANCONFIG_LIP_KATM){ memset(buf,chan->idle_flag,chan->dma_mru); }else{ chan->lip_atm = 1; @@ -1491,7 +1506,7 @@ static int aft_transp_if_init(sdla_t *card, private_area_t *chan, wanif_conf_t * } -static int new_if_private (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* conf, int channelized) +static int new_if_private (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* conf, int channelized, int dchan) { sdla_t* card = wandev->private; private_area_t* chan; @@ -1533,23 +1548,20 @@ static int new_if_private (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* memcpy(&chan->cfg,&conf->u.aft,sizeof(chan->cfg)); + chan->true_if_encoding=conf->true_if_encoding; + + aft_chan_if_init(card,dev,chan); + if (card->wandev.config_id == WANCONFIG_AFT_ANALOG) { chan->single_dma_chain = 1; conf->hdlc_streaming=0; } - chan->true_if_encoding=conf->true_if_encoding; - - aft_chan_if_init(card,dev,chan); - - if(IS_56K_CARD(card)){ chan->single_dma_chain = 1; conf->hdlc_streaming=1; } - - if (channelized){ chan->channelized_cfg=1; if (wan_netif_priv(dev)){ @@ -1638,6 +1650,8 @@ static int new_if_private (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* } else if( strcmp(conf->usedby, "TDM_API") == 0) { + DEBUG_EVENT("%s:%s: Error: TDM API mode is not supported!\n", + card->devname,chan->if_name); err=-EINVAL; goto new_if_error; #endif @@ -1679,18 +1693,12 @@ static int new_if_private (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* chan->single_dma_chain=1; chan->max_tx_bufs=MAX_AFT_DMA_CHAINS; - if (card->u.aft.cfg.tdmv_dchan){ + if (dchan >= 0){ # ifdef CONFIG_PRODUCT_WANPIPE_TDM_VOICE_DCHAN - int dchan=card->u.aft.cfg.tdmv_dchan; - if (IS_T1_CARD(card)){ - dchan--; - } - if (wan_test_bit(dchan,&conf->active_ch)){ - chan->common.usedby = TDM_VOICE_DCHAN; - conf->hdlc_streaming=1; - chan->single_dma_chain=0; - chan->mru=chan->mtu=1500; - } + chan->common.usedby = TDM_VOICE_DCHAN; + conf->hdlc_streaming=1; + chan->single_dma_chain=0; + chan->mru=chan->mtu=1500; # else DEBUG_EVENT("%s: Error: TDMV_DCHAN Option not compiled into the driver!\n", card->devname); @@ -1721,19 +1729,12 @@ static int new_if_private (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* chan->single_dma_chain=1; chan->tdmv_zaptel_cfg=0; - if (card->u.aft.cfg.tdmv_dchan){ - - int dchan=card->u.aft.cfg.tdmv_dchan; - if (IS_T1_CARD(card)){ - dchan--; - } - if (wan_test_bit(dchan,&conf->active_ch)){ - chan->common.usedby = TDM_VOICE_DCHAN; - chan->cfg.data_mux=0; - chan->single_dma_chain=0; - conf->hdlc_streaming=1; - chan->mru=chan->mtu=1500; - } + if (dchan >= 0){ + chan->common.usedby = TDM_VOICE_DCHAN; + chan->cfg.data_mux=0; + chan->single_dma_chain=0; + conf->hdlc_streaming=1; + chan->mru=chan->mtu=1500; } @@ -1763,7 +1764,7 @@ static int new_if_private (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* * Interface Operation Setup *==============================================*/ - if (conf->u.aft.tdmv_hwec){ + if (conf->hwec.enable){ card->wandev.ec_enable_map |= conf->active_ch; } @@ -1850,14 +1851,16 @@ static int new_if_private (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* err= -EINVAL; goto new_if_error; } + if (conf->single_tx_buf || ((card->adptr_type == A101_ADPTR_2TE1 || card->adptr_type == A101_ADPTR_1TE1) && - card->u.aft.firm_id == AFT_DS_FE_CORE_ID)){ - chan->single_dma_chain=1; + card->u.aft.firm_id == AFT_DS_FE_CORE_ID)){ + chan->single_dma_chain=1; chan->max_tx_bufs=MAX_AFT_DMA_CHAINS; - dma_per_ch=MAX_AFT_DMA_CHAINS; + dma_per_ch=MAX_AFT_DMA_CHAINS; } + if (!chan->hdlc_eng){ /* If hardware HDLC engine is disabled: * 1. Configure DMA chains for SINGLE DMA @@ -1877,7 +1880,8 @@ static int new_if_private (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* chan->tslot_sync=1; - if(conf->protocol == WANCONFIG_LIP_ATM){ + if(conf->protocol == WANCONFIG_LIP_ATM || + conf->protocol == WANCONFIG_LIP_KATM){ chan->tslot_sync=0; } @@ -1917,17 +1921,17 @@ static int new_if_private (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* *as the dchan. Due to HDLC security issue, the *HDLC channels are mapped on first TWO logic channels */ if (chan->common.usedby == TDM_VOICE_DCHAN){ - card->u.aft.cfg.tdmv_dchan=chan->logic_ch_num+1; + card->u.aft.tdmv_dchan=chan->logic_ch_num+1; } /* Configure the DCHAN on LAST Master interface. * We will use the master interface information, until - * the next interface with the corrent DCHAN info is + * the next interface with the current DCHAN info is * configured. This must be done in order to register * the DCHAN in zaptel. */ if (card->u.aft.tdmv_dchan_cfg_on_master && - card->u.aft.cfg.tdmv_dchan){ - int dchan=card->u.aft.cfg.tdmv_dchan; + card->u.aft.tdmv_dchan){ + int dchan=card->u.aft.tdmv_dchan; if (IS_T1_CARD(card)){ dchan--; } @@ -1935,7 +1939,7 @@ static int new_if_private (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* DEBUG_EVENT("%s: TDMV DCHAN :%d\n", card->devname,dchan); card->u.aft.tdmv_chan_ptr=chan; - card->u.aft.cfg.tdmv_dchan=chan->logic_ch_num+1; + card->u.aft.tdmv_dchan=chan->logic_ch_num+1; } } @@ -1948,18 +1952,19 @@ static int new_if_private (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* err=aft_hwec_config(card,chan,conf,1); if (err){ goto new_if_error; - } + } if (chan->channelized_cfg && !chan->hdlc_eng) { chan->dma_mru = 1024; dma_per_ch = 4; } - DEBUG_EVENT("%s: DMA/Len/Chain :%d/%d/%s\n", + DEBUG_EVENT("%s: DMA/Len/Chain/EC :%d/%d/%s/%s\n", card->devname, dma_per_ch, chan->dma_mru, - chan->single_dma_chain?"Off":"On"); + chan->single_dma_chain?"Off":"On", + card->wandev.ec_enable_map?"On":"Off"); @@ -2081,10 +2086,8 @@ static int new_if (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* conf) { int err=-EINVAL; sdla_t *card=wandev->private; - int dchan_found=0; - WAN_DEBUG_FUNC_START; - wan_netif_set_priv(dev, NULL); + wan_netif_set_priv(dev, NULL); if (IS_E1_CARD(card) && !(WAN_FE_FRAME(&card->fe) == WAN_FR_UNFRAMED)) { conf->active_ch = conf->active_ch << 1; @@ -2093,9 +2096,10 @@ static int new_if (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* conf) conf->active_ch = 1; } -#ifdef CONFIG_PRODUCT_WANPIPE_TDM_VOICE + if (strcmp(conf->usedby, "TDM_VOICE") == 0) { - if (card->u.aft.cfg.tdmv_span_no){ +#ifdef CONFIG_PRODUCT_WANPIPE_TDM_VOICE + if (card->tdmv_conf.span_no){ switch(card->wandev.config_id){ case WANCONFIG_AFT_ANALOG: @@ -2111,15 +2115,22 @@ static int new_if (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* conf) return -EINVAL; } - WAN_TDMV_CALL(create, (card, &card->u.aft.cfg), err); + WAN_TDMV_CALL(create, (card, &card->tdmv_conf), err); if (err){ DEBUG_EVENT("%s: Error: Failed to create tdmv span!\n", card->devname); return err; } } - } +#else + DEBUG_EVENT("\n"); + DEBUG_EVENT("%s: Error: TDM VOICE prot not compiled\n", + card->devname); + DEBUG_EVENT("%s: during installation process!\n", + card->devname); + return -EINVAL; #endif + } err=-EINVAL; @@ -2134,51 +2145,30 @@ static int new_if (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* conf) active_ch=conf->active_ch; } - DEBUG_TEST("%s: TDM VOICE: TESTING FOR DCHAN CHAN in 0x%08X Timeslots=%i CFG DCHAN=%i\n", + err=aft_find_master_if_and_dchan(card,&master_if,active_ch); + if (err < 0) { + return err; + } + + DEBUG_TEST("%s: TDM VOICE: TESTING FOR DCHAN CHAN in 0x%08X Timeslots=%i CFG DCHAN=0x%08X MasterIF=%i\n", card->devname, active_ch, card->u.aft.num_of_time_slots, - card->u.aft.cfg.tdmv_dchan); + card->tdmv_conf.dchan,master_if); - for (i=card->u.aft.num_of_time_slots-1;i>=0;i--){ - if (wan_test_bit(i,&active_ch)){ - - if (card->u.aft.cfg.tdmv_dchan){ - int dchan=card->u.aft.cfg.tdmv_dchan; - if (IS_T1_CARD(card)){ - dchan--; - } - if (dchan == i){ - dchan_found=1; - continue; - } - } - /* Find the TOP timeslot. This timeslot will be - * considered MASTER since it is the last timeslot - * to rx data from the T1 line */ - if (master_if < 0){ - master_if=i; - } - } - } - - if (card->u.aft.cfg.tdmv_dchan && !dchan_found){ - /* We configured for dchan however, this interface - * was not configued with the DCHAN timeslot. - * It IS now possible that another interface has - * this time slot */ - card->u.aft.tdmv_dchan_cfg_on_master=1; - } - - for (i=0;iu.aft.num_of_time_slots;i++){ if (wan_test_bit(i,&active_ch)){ + int dchan=-1; conf->active_ch=0; conf->u.aft.tdmv_master_if=0; wan_set_bit(i,&conf->active_ch); + if (wan_test_bit(i,&card->tdmv_conf.dchan)){ + dchan=i; + } if (i==master_if){ conf->u.aft.tdmv_master_if=1; } - err=new_if_private(wandev,dev,conf,1); + + err=new_if_private(wandev,dev,conf,1,dchan); if (err){ break; } @@ -2192,7 +2182,8 @@ static int new_if (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* conf) #endif }else{ - err=new_if_private(wandev,dev,conf,0); + card->tdmv_conf.dchan=0; + err=new_if_private(wandev,dev,conf,0,-1); } @@ -2229,7 +2220,6 @@ static int new_if (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* conf) } } - WAN_DEBUG_FUNC_END; return err; } @@ -2270,13 +2260,18 @@ static int del_if_private (wan_device_t* wandev, netdevice_t* dev) wan_netif_name(dev)); return 0; } - + aft_hwec_config(card,chan,NULL,0); wan_spin_lock_irq(&card->wandev.lock,&flags); aft_dev_unconfigure(card,chan); wan_spin_unlock_irq(&card->wandev.lock,&flags); + AFT_FUNC_DEBUG(); +#if INIT_FE_ONLY + return 0; +#endif + WAN_TASKLET_KILL(&chan->common.bh_task); if (chan->common.usedby == API){ @@ -2314,13 +2309,13 @@ static int del_if_private (wan_device_t* wandev, netdevice_t* dev) aft_free_tx_descriptors(chan); aft_free_rx_descriptors(chan); - while ((skb=wan_skb_dequeue(&chan->wp_rx_free_list)) != NULL){ + while ((skb=wan_skb_dequeue(&chan->wp_rx_free_list)) != NULL) { #ifdef __LINUX__ - if (skb_shinfo(skb)->frag_list || - skb_shinfo(skb)->nr_frags) { - DEBUG_EVENT("%s: Warning: SKB Corruption ch=%li!\n", - chan->if_name,chan->logic_ch_num); - continue; + if (skb_shinfo(skb)->frag_list || + skb_shinfo(skb)->nr_frags) { + DEBUG_EVENT("%s: Warning: SKB Corruption ch=%li!\n", + chan->if_name,chan->logic_ch_num); + continue; } #endif wan_skb_free(skb); @@ -2334,10 +2329,6 @@ static int del_if_private (wan_device_t* wandev, netdevice_t* dev) wan_skb_free(skb); } - while ((skb=wan_skb_dequeue(&chan->wp_rx_zap_complete_list)) != NULL){ - wan_skb_free(skb); - } - while ((skb=wan_skb_dequeue(&chan->wp_tx_pending_list)) != NULL){ wan_skb_free(skb); } @@ -2429,6 +2420,9 @@ static int del_if (wan_device_t* wandev, netdevice_t* dev) aft_tdm_intr_ctrl(card,0); aft_fifo_intr_ctrl(card, 0); + + /* Disable RTP Tap */ + card->u.aft.rtp_len=0; #if defined(CONFIG_PRODUCT_WANPIPE_TDM_VOICE) if (card->wan_tdmv.sc) { @@ -2610,7 +2604,6 @@ static int if_open (netdevice_t* dev) sdla_t* card = chan->card; - WAN_DEBUG_FUNC_START; #if defined(__LINUX__) /* Only one open per interface is allowed */ @@ -2648,7 +2641,6 @@ static int if_open (netdevice_t* dev) /* Wait for the front end interrupt * before enabling the card */ - WAN_DEBUG_FUNC_END; return 0; } @@ -2716,17 +2708,28 @@ static void disable_comm (sdla_t *card) wan_smp_flag_t flags,flags1; int used_cnt; - /* Unconfiging, only on shutdown */ - wan_smp_flag_t smp_flags,smp_flags1; - card->hw_iface.hw_lock(card->hw,&smp_flags1); - wan_spin_lock_irq(&card->wandev.lock, &smp_flags); - __aft_fe_intr_ctrl(card, 0); - if (card->wandev.fe_iface.unconfig){ - card->wandev.fe_iface.unconfig(&card->fe); - } - __aft_fe_intr_ctrl(card, 1); - wan_spin_unlock_irq(&card->wandev.lock, &smp_flags); - card->hw_iface.hw_unlock(card->hw,&smp_flags1); + AFT_FUNC_DEBUG(); +#if INIT_FE_ONLY + aft_chip_unconfigure(card); +#else + + /* Unconfiging, only on shutdown */ + if (IS_TE1_CARD(card) || IS_56K_CARD(card)) { + wan_smp_flag_t smp_flags,smp_flags1; + if (card->wandev.fe_iface.pre_release){ + card->wandev.fe_iface.pre_release(&card->fe); + } + card->hw_iface.hw_lock(card->hw,&smp_flags1); + wan_spin_lock_irq(&card->wandev.lock, &smp_flags); + __aft_fe_intr_ctrl(card, 0); + if (card->wandev.fe_iface.unconfig){ + card->wandev.fe_iface.unconfig(&card->fe); + } + __aft_fe_intr_ctrl(card, 1); + wan_spin_unlock_irq(&card->wandev.lock, &smp_flags); + card->hw_iface.hw_unlock(card->hw,&smp_flags1); + + } wan_spin_lock_irq(&card->wandev.lock,&flags); @@ -2736,12 +2739,15 @@ static void disable_comm (sdla_t *card) * core reset. Otherwise, we will receive * rx fifo errors on subsequent resetart. */ disable_data_error_intr(card,DEVICE_DOWN); + + aft_rtp_unconfig(card); wan_spin_unlock_irq(&card->wandev.lock,&flags); aft_chip_unconfigure(card); WP_DELAY(10); + card->hw_iface.getcfg(card->hw, SDLA_USEDCNT, &used_cnt); @@ -2754,6 +2760,8 @@ static void disable_comm (sdla_t *card) wan_spin_unlock_irq(&card->wandev.lock,&flags); card->hw_iface.hw_unlock(card->hw,&flags1); + __sdla_pull_ptr_isr_array(card->hw,card,card->wandev.comm_port); + if (used_cnt<=1){ DEBUG_EVENT("%s: Global Chip Shutdown Usage=%d\n", card->devname,used_cnt); @@ -2767,7 +2775,7 @@ static void disable_comm (sdla_t *card) #if defined(WAN_DEBUG_MEM) DEBUG_EVENT("%s: Total Mem %d\n",__FUNCTION__,wan_atomic_read(&wan_debug_mem)); #endif - +#endif return; } @@ -2958,9 +2966,9 @@ static int if_send(netdevice_t *dev, netskb_t *skb, struct sockaddr *dst,struct DEBUG_TEST("%s:%ld Prev: Zaptel HDLC Tt TDMV_DCHAN=%i\n", chan->if_name,chan->logic_ch_num, - card->u.aft.cfg.tdmv_dchan-1); + card->u.aft.tdmv_dchan-1); - if (!card->u.aft.cfg.tdmv_dchan || card->u.aft.cfg.tdmv_dchan>32){ + if (!card->u.aft.tdmv_dchan || card->u.aft.tdmv_dchan>32){ DEBUG_EVENT("%s: DCHAN TX No DCHAN Configured!\n", card->devname); @@ -2971,7 +2979,7 @@ static int if_send(netdevice_t *dev, netskb_t *skb, struct sockaddr *dst,struct goto if_send_exit_crit; } - chan=(private_area_t*)card->u.aft.dev_to_ch_map[card->u.aft.cfg.tdmv_dchan-1]; + chan=(private_area_t*)card->u.aft.dev_to_ch_map[card->u.aft.tdmv_dchan-1]; if (!chan){ DEBUG_EVENT("%s: DCHAN TX No DCHAN Configured by not preset!\n", card->devname); @@ -2988,48 +2996,12 @@ static int if_send(netdevice_t *dev, netskb_t *skb, struct sockaddr *dst,struct goto if_send_exit_crit; } -#if 0 - if (chan->common.usedby == STACK){ - wan_smp_flag_t flags; - netskb_t *new_skb; - - wan_capture_trace_packet(chan->card, &chan->trace_info, - skb,TRC_OUTGOING_FRM); - - new_skb=NULL; -#if 0 - - new_skb=skb_copy(skb,GFP_ATOMIC); - if (new_skb){ - wan_spin_lock_irq(&card->wandev.lock,&flags); - wan_skb_unlink(new_skb); - wan_skb_set_csum(new_skb,1); - wan_skb_queue_tail(&chan->wp_rx_stack_complete_list,new_skb); - wan_spin_unlock_irq(&card->wandev.lock,&flags); - } -#else - wan_spin_lock_irq(&card->wandev.lock,&flags); - wan_skb_unlink(skb); - wan_skb_set_csum(skb,1); - wan_skb_queue_tail(&chan->wp_rx_stack_complete_list,skb); - wan_spin_unlock_irq(&card->wandev.lock,&flags); - - WAN_TASKLET_SCHEDULE((&chan->common.bh_task)); - - DEBUG_TEST("%s: IF_SEND: Passing packet up the STACK!\n", - chan->if_name); - err=0; - goto if_send_exit_crit; -#endif - - } -#endif wan_capture_trace_packet(chan->card, &top_chan->trace_info, skb,TRC_OUTGOING_FRM); DEBUG_TEST("%s:%ld Zaptel HDLC Tt TDMV_DCHAN=%i\n", chan->if_name,chan->logic_ch_num, - card->u.aft.cfg.tdmv_dchan-1); + card->u.aft.tdmv_dchan-1); } /* For TDM_VOICE_API no tx is supported in if_send */ @@ -3064,36 +3036,6 @@ static int if_send(netdevice_t *dev, netskb_t *skb, struct sockaddr *dst,struct } } -#if 0 - /* NC: - * This is support for SS7/ZAPTEL Converter stuff - * as of right now its not being used - * NOTE: This can break HW HDLC DCHAN support on some machines - * because we cannot use csum value in skb buffer. - */ - if (card->u.aft.cfg.tdmv_dchan && - card->u.aft.cfg.tdmv_dchan == (chan->logic_ch_num+1)){ - if (wan_skb_csum(skb)){ - wan_smp_flag_t flags; - - DEBUG_TEST("%s: IF_SEND: Rx ZAPTEL bound packet!\n", - chan->if_name); - - wan_spin_lock_irq(&card->wandev.lock,&flags); - wan_skb_unlink(skb); - wan_skb_set_csum(skb,0); - wan_skb_queue_tail(&chan->wp_rx_zap_complete_list,skb); - wan_spin_unlock_irq(&card->wandev.lock,&flags); - - WAN_TASKLET_SCHEDULE((&chan->common.bh_task)); - err=0; - goto if_send_exit_crit; - } - - - } -#endif - if (!chan->hdlc_eng && chan->tslot_sync){ if (wan_skb_len(skb)%chan->num_of_time_slots){ if (WAN_NET_RATELIMIT()){ @@ -3192,6 +3134,7 @@ static struct net_device_stats* if_stats (netdevice_t* dev) if (card) { #if defined(CONFIG_PRODUCT_WANPIPE_TDM_VOICE) if (card->wan_tdmv.sc && + !card->u.aft.rtp_len && card->wandev.config_id != WANCONFIG_AFT_ANALOG && chan->common.usedby == TDM_VOICE) { chan->if_stats.rx_packets = card->wandev.stats.rx_packets; @@ -3311,16 +3254,17 @@ static int if_do_ioctl(netdevice_t *dev, struct ifreq *ifr, int cmd) case SIOC_AFT_CUSTOMER_ID: if (!ifr){ return -EINVAL; - }else{ + } else { unsigned char cid=0; wan_smp_flag_t smp_flags1; - card->hw_iface.hw_lock(card->hw,&smp_flags1); + card->hw_iface.hw_lock(card->hw,&smp_flags1); wan_spin_lock_irq(&card->wandev.lock, &smp_flags); cid=aft_read_cpld(card,CUSTOMER_CPLD_ID_REG); wan_spin_unlock_irq(&card->wandev.lock, &smp_flags); - card->hw_iface.hw_unlock(card->hw,&smp_flags1); + card->hw_iface.hw_unlock(card->hw,&smp_flags1); return WAN_COPY_TO_USER(ifr->ifr_data,&cid,sizeof(unsigned char)); } + err=0; break; #if defined(__LINUX__) @@ -3965,6 +3909,7 @@ static void aft_rx_post_complete (sdla_t *card, private_area_t *chan, rx_el->dma_addr); #if 0 + /* debugging */ chan->if_stats.rx_errors++; #endif @@ -4013,6 +3958,7 @@ static void aft_rx_post_complete (sdla_t *card, private_area_t *chan, chan->errstats.Rx_pci_errors++; chan->if_stats.rx_errors++; + card->wandev.stats.rx_errors++; goto rx_comp_error; } @@ -4025,6 +3971,7 @@ static void aft_rx_post_complete (sdla_t *card, private_area_t *chan, chan->if_stats.rx_frame_errors++; chan->opstats.Rx_Data_discard_long_count++; chan->errstats.Rx_hdlc_corrupiton++; + card->wandev.stats.rx_errors++; goto rx_comp_error; } @@ -4035,6 +3982,7 @@ static void aft_rx_post_complete (sdla_t *card, private_area_t *chan, chan->if_stats.rx_frame_errors++; chan->opstats.Rx_Data_discard_long_count++; chan->errstats.Rx_hdlc_corrupiton++; + card->wandev.stats.rx_errors++; goto rx_comp_error; } else { /* Check CRC error flag only if this is the end of Frame */ @@ -4045,6 +3993,7 @@ static void aft_rx_post_complete (sdla_t *card, private_area_t *chan, (rx_el->reg&AFT_RXDMA_HI_DMA_LENGTH_MASK)>>2); chan->if_stats.rx_frame_errors++; chan->errstats.Rx_crc_err_count++; + card->wandev.stats.rx_crc_errors++; wan_set_bit(WP_CRC_ERROR_BIT,&rx_el->pkt_error); data_error = 1; } @@ -4056,6 +4005,7 @@ static void aft_rx_post_complete (sdla_t *card, private_area_t *chan, card->devname,chan->if_name,rx_el->reg); chan->if_stats.rx_frame_errors++; chan->errstats.Rx_hdlc_corrupiton++; + card->wandev.stats.rx_frame_errors++; wan_set_bit(WP_ABORT_ERROR_BIT,&rx_el->pkt_error); data_error = 1; } @@ -4077,6 +4027,7 @@ static void aft_rx_post_complete (sdla_t *card, private_area_t *chan, if (len < 3 || len > chan->dma_mru){ chan->if_stats.rx_frame_errors++; chan->errstats.Rx_hdlc_corrupiton++; + card->wandev.stats.rx_frame_errors++; goto rx_comp_error; } }else{ @@ -4087,6 +4038,7 @@ static void aft_rx_post_complete (sdla_t *card, private_area_t *chan, if (len < 1 || len > chan->mru){ chan->if_stats.rx_frame_errors++; + card->wandev.stats.rx_frame_errors++; goto rx_comp_error; } } @@ -4199,7 +4151,7 @@ static int aft_alloc_rx_dma_buff(sdla_t *card, private_area_t *chan, int num, in for (i=0;ichannelized_cfg && !chan->hdlc_eng){ -#if defined(WANPIPE_64BIT_4G_DMA) +#if defined(__LINUX__) && defined(CONFIG_X86_4G) /* On 64bit Systems greater than 4GB we must * allocated our DMA buffers using GFP_DMA * flag */ @@ -4243,8 +4195,9 @@ static void enable_timer (void* card_id) { sdla_t* card = (sdla_t*)card_id; #if !defined(WAN_IS_TASKQ_SCHEDULE) - wan_smp_flag_t smp_flags; - wan_smp_flag_t smp_flags1; + wan_smp_flag_t smp_flags; + wan_smp_flag_t smp_flags1; + int err = 0; #endif if (wan_test_bit(CARD_DOWN,&card->wandev.critical)){ @@ -4253,7 +4206,7 @@ static void enable_timer (void* card_id) return; } - DEBUG_TEST("%s: %s Sdla Polling %p!\n",__FUNCTION__, + DEBUG_56K("%s: %s Sdla Polling %p!\n",__FUNCTION__, card->devname, card->wandev.fe_iface.polling); @@ -4264,7 +4217,7 @@ static void enable_timer (void* card_id) card->hw_iface.hw_lock(card->hw,&smp_flags1); wan_spin_lock_irq(&card->wandev.lock, &smp_flags); if (card->wandev.fe_iface.polling){ - card->wandev.fe_iface.polling(&card->fe); + err = card->wandev.fe_iface.polling(&card->fe); } wan_spin_unlock_irq(&card->wandev.lock, &smp_flags); card->hw_iface.hw_unlock(card->hw,&smp_flags1); @@ -4352,9 +4305,8 @@ static void wp_tdm_bh (void *data, int pending) chan->if_name,tdm_check); } } - wan_set_bit(card->u.aft.cfg.tdmv_span_no,&tdm_check); + wan_set_bit(card->tdmv_conf.span_no,&tdm_check); #endif - WAN_TDMV_CALL(rx_tx_span, (card), err); WAN_TASKLET_END((&chan->common.bh_task)); @@ -4368,7 +4320,7 @@ static void wp_tdm_bh (void *data, int pending) } #if 0 - wan_clear_bit(card->u.aft.cfg.tdmv_span_no,&tdm_check); + wan_clear_bit(card->tdmv_conf.span_no,&tdm_check); #endif tdm_check++; @@ -4404,7 +4356,7 @@ static void wp_bh (void *data, int pending) return; } - if (card->u.aft.cfg.tdmv_dchan){ + if (card->u.aft.tdmv_dchan){ top_chan=wan_netif_priv(chan->common.dev); }else{ top_chan=chan; @@ -4471,14 +4423,13 @@ static void wp_bh (void *data, int pending) if (chan->common.usedby == API){ - if (chan->common.sk == NULL){ - DEBUG_TEST("%s: No sock bound to channel rx dropping!\n", - chan->if_name); - chan->if_stats.rx_dropped++; - wan_skb_free(new_skb); - continue; - } - + if (chan->common.sk == NULL){ + DEBUG_TEST("%s: No sock bound to channel rx dropping!\n", + chan->if_name); + chan->if_stats.rx_dropped++; + wan_skb_free(new_skb); + continue; + } if (chan->hdlc_eng){ if (card->u.aft.cfg.rx_crc_bytes == 3){ @@ -4571,7 +4522,8 @@ static void wp_bh (void *data, int pending) (&card->wan_tdmv,chan->tdmv_chan, wan_skb_data(new_skb),wan_skb_len(new_skb)), err); - DEBUG_RX("%s TDM DCHAN VOICE Rx Pkt Len=%i Chan=%i\n", + + DEBUG_TEST("%s TDM DCHAN VOICE Rx Pkt Len=%i Chan=%i\n", card->devname,wan_skb_len(new_skb), chan->tdmv_chan); #else @@ -4631,21 +4583,6 @@ static void wp_bh (void *data, int pending) } } - while((skb=wan_skb_dequeue(&chan->wp_rx_zap_complete_list)) != NULL){ - int err; - err=0; - len=wan_skb_len(skb); -#if defined(CONFIG_PRODUCT_WANPIPE_TDM_VOICE) && defined(CONFIG_PRODUCT_WANPIPE_TDM_VOICE_DCHAN) - WAN_TDMV_CALL(rx_dchan, - (&card->wan_tdmv,card->u.aft.tdmv_chan, - wan_skb_data(skb),wan_skb_len(skb)), err); - DEBUG_TEST("%s TDM DCHAN VOICE Rx Pkt Len=%i Chan=%i\n", - chan->if_name,wan_skb_len(skb), - chan->tdmv_chan); -# endif - wan_skb_free(skb); - } - while((skb=wan_skb_dequeue(&chan->wp_tx_complete_list)) != NULL){ aft_tx_post_complete (chan->card,chan,skb); wan_skb_free(skb); @@ -4653,11 +4590,6 @@ static void wp_bh (void *data, int pending) WAN_TASKLET_END((&chan->common.bh_task)); - - if (wan_test_bit(CARD_DOWN,&card->wandev.critical)){ - return; - } - #if 1 { @@ -4667,8 +4599,6 @@ static void wp_bh (void *data, int pending) WAN_TASKLET_SCHEDULE((&chan->common.bh_task)); }else if ((len=wan_skb_queue_len(&chan->wp_rx_stack_complete_list))){ WAN_TASKLET_SCHEDULE((&chan->common.bh_task)); - }else if ((len=wan_skb_queue_len(&chan->wp_rx_zap_complete_list))){ - WAN_TASKLET_SCHEDULE((&chan->common.bh_task)); } } @@ -4868,7 +4798,6 @@ static void front_end_interrupt(sdla_t *card, unsigned long reg, int lock) * Determin the interrupt received and handle it. * */ - #if 0 static u32 aft_shared_irq=0; static u32 aft_master_dev=0xF; @@ -4879,20 +4808,22 @@ static int gdma_cnt=0; #define EC_IRQ_TIMEOUT (HZ) -static void wp_aft_global_isr (sdla_t* card) +static WAN_IRQ_RETVAL wp_aft_global_isr (sdla_t* card) { - u32 reg_sec,reg=0; + u32 reg_sec=0,reg=0; u32 a108_reg=0, a56k_reg=0; - u32 fifo_port_intr; - u32 dma_port_intr; - u32 wdt_port_intr; - u32 tdmv_port_intr; + u32 fifo_port_intr=0; + u32 dma_port_intr=0; + u32 wdt_port_intr=0; + u32 tdmv_port_intr=0; u32 fe_intr=0; + + WAN_IRQ_RETVAL_DECL(irq_ret); if (wan_test_bit(CARD_DOWN,&card->wandev.critical)){ DEBUG_TEST("%s: Card down, ignoring interrupt!!!!!!!\n", card->devname); - return; + WAN_IRQ_RETURN(irq_ret); } #ifdef AFT_IRQ_STAT_DEBUG @@ -4920,8 +4851,8 @@ static void wp_aft_global_isr (sdla_t* card) * -- "FiFo/Line Abort Error" interrupt disable * --------------------------------------------------*/ __sdla_bus_read_4(card->hw,AFT_CHIP_CFG_REG, ®); - reg_sec=reg; - + reg_sec=reg; + if (wan_test_bit(AFT_CHIPCFG_FE_INTR_STAT_BIT,®)){ #ifdef AFT_IRQ_STAT_DEBUG @@ -4933,6 +4864,8 @@ static void wp_aft_global_isr (sdla_t* card) DEBUG_TEST("%s: Got Front End Interrupt 0x%08X\n", card->devname,reg); + WAN_IRQ_RETVAL_SET(irq_ret, WAN_IRQ_HANDLED); + #ifdef AFT_IRQ_STAT_DEBUG card->wandev.stats.tx_dropped++; #endif @@ -4948,35 +4881,24 @@ static void wp_aft_global_isr (sdla_t* card) #else front_end_interrupt(card,reg,0); #endif - } + } } } -#if 0 -#warning "EC ISR enabled" /* New Octasic implementarion May 16 2006 */ #if defined(CONFIG_WANPIPE_HWEC) if (card->wandev.ec_dev && SYSTEM_TICKS-card->wandev.ec_intmask > EC_IRQ_TIMEOUT) { card->wandev.ec_intmask=SYSTEM_TICKS; if (!wan_test_bit(AFT_FE_EC_POLL,&card->u.aft.port_task_cmd)){ -#if 1 /* All work is done from ec_poll routine!!! */ wan_set_bit(AFT_FE_EC_POLL,&card->u.aft.port_task_cmd); WAN_TASKQ_SCHEDULE((&card->u.aft.port_task)); -#else -#error "EC ISR Called from IRQ" - if (wanpipe_ec_isr(card->wandev.ec_dev, card)){ - wan_set_bit(AFT_FE_EC_POLL,&card->u.aft.port_task_cmd); - WAN_TASKQ_SCHEDULE((&card->u.aft.port_task)); - } -#endif } } -#endif #endif - if (card->u.aft.firm_id == AFT_DS_FE_CORE_ID/*card->adptr_type == A108_ADPTR_8TE18*/) { + if (card->u.aft.firm_id == AFT_DS_FE_CORE_ID) { __sdla_bus_read_4(card->hw,AFT_CHIP_STAT_REG, &a108_reg); fifo_port_intr = aft_chipcfg_a108_get_fifo_intr_stats(a108_reg); @@ -4984,14 +4906,11 @@ static void wp_aft_global_isr (sdla_t* card) wdt_port_intr = aft_chipcfg_a108_get_wdt_intr_stats(a108_reg); tdmv_port_intr = aft_chipcfg_a108_get_tdmv_intr_stats(a108_reg); - }else if(IS_56K_CARD(card)){ - __sdla_bus_read_4(card->hw,AFT_CHIP_STAT_REG, &a56k_reg); + __sdla_bus_read_4(card->hw,AFT_CHIP_STAT_REG, &a56k_reg); fifo_port_intr = wan_test_bit(AFT_CHIPCFG_A56K_FIFO_INTR_BIT,&a56k_reg); dma_port_intr = wan_test_bit(AFT_CHIPCFG_A56K_DMA_INTR_BIT,&a56k_reg); wdt_port_intr = wan_test_bit(AFT_CHIPCFG_A56K_WDT_INTR_BIT,&a56k_reg); - - }else{ fifo_port_intr = aft_chipcfg_get_hdlc_intr_stats(reg); dma_port_intr = aft_chipcfg_get_dma_intr_stats(reg); @@ -5003,18 +4922,32 @@ static void wp_aft_global_isr (sdla_t* card) } } - + if (tdmv_port_intr || + dma_port_intr || + fifo_port_intr || + dma_port_intr || + wdt_port_intr) { + /* Pass Through */ + } else { + /* No more interrupts for us */ + goto aft_global_isr_exit; + } + if (wan_test_bit(AFT_LCFG_FIFO_INTR_BIT,&card->u.aft.lcfg_reg) && wan_test_bit(card->wandev.comm_port,&fifo_port_intr)){ #ifdef AFT_IRQ_STAT_DEBUG card->wandev.stats.multicast++; #endif wp_aft_fifo_per_port_isr(card); + WAN_IRQ_RETVAL_SET(irq_ret, WAN_IRQ_HANDLED); } #if 1 if (wan_test_bit(AFT_LCFG_DMA_INTR_BIT,&card->u.aft.lcfg_reg) && wan_test_bit(card->wandev.comm_port,&dma_port_intr)){ + + WAN_IRQ_RETVAL_SET(irq_ret, WAN_IRQ_HANDLED); + wp_aft_dma_per_port_isr(card); /* Only enable fifo interrupts after a first @@ -5044,6 +4977,11 @@ static void wp_aft_global_isr (sdla_t* card) int ring_buf_enabled=wan_test_bit(AFT_CHIPCFG_A108_A104_TDM_DMA_RINGBUF_BIT,®); sdla_t *tmp_card; int ring_rsync=0; + void **card_list; + int i; + + + WAN_IRQ_RETVAL_SET(irq_ret, WAN_IRQ_HANDLED); #ifdef AFT_IRQ_STAT_DEBUG card->wandev.stats.rx_crc_errors++; @@ -5066,9 +5004,11 @@ static void wp_aft_global_isr (sdla_t* card) } } - for(tmp_card=card_list;tmp_card;tmp_card=tmp_card->list){ - if (tmp_card->wandev.state == WAN_CONNECTED && - card->hw_iface.hw_same(card->hw,tmp_card->hw) && + card_list=__sdla_get_ptr_isr_array(card->hw); + for (i=0;i<8;i++){ + tmp_card=(sdla_t*)card_list[i]; + if (tmp_card && + tmp_card->wandev.state == WAN_CONNECTED && wan_test_bit(AFT_LCFG_TDMV_INTR_BIT,&tmp_card->u.aft.lcfg_reg)) { #ifdef AFT_IRQ_STAT_DEBUG tmp_card->wandev.stats.rx_crc_errors++; @@ -5091,7 +5031,8 @@ static void wp_aft_global_isr (sdla_t* card) } #if defined(CONFIG_PRODUCT_WANPIPE_TDM_VOICE) - if (tmp_card->wan_tdmv.sc){ + if (tmp_card->wan_tdmv.sc && + !tmp_card->u.aft.rtp_len) { aft_voice_span_rx_tx(tmp_card, ring_buf_enabled); }else @@ -5118,11 +5059,15 @@ static void wp_aft_global_isr (sdla_t* card) if (wan_test_bit(AFT_LCFG_TDMV_INTR_BIT,&card->u.aft.lcfg_reg) && wan_test_bit(card->wandev.comm_port,&tdmv_port_intr)){ + + WAN_IRQ_RETVAL_SET(irq_ret, WAN_IRQ_HANDLED); + #ifdef AFT_IRQ_STAT_DEBUG card->wandev.stats.rx_crc_errors++; #endif #if defined(CONFIG_PRODUCT_WANPIPE_TDM_VOICE) if (card->wan_tdmv.sc && + !card->u.aft.rtp_len && card->wandev.config_id != WANCONFIG_AFT_ANALOG) { u32 dmareg; aft_voice_span_rx_tx(card, 0); @@ -5141,6 +5086,7 @@ static void wp_aft_global_isr (sdla_t* card) } if (wan_test_bit(card->wandev.comm_port,&wdt_port_intr)){ + WAN_IRQ_RETVAL_SET(irq_ret, WAN_IRQ_HANDLED); wp_aft_wdt_per_port_isr(card,1); card->u.aft.wdt_tx_cnt=SYSTEM_TICKS; #ifdef AFT_IRQ_STAT_DEBUG @@ -5165,8 +5111,10 @@ static void wp_aft_global_isr (sdla_t* card) #if AFT_SECURITY_CHECK - reg=reg_sec; + + reg=reg_sec; if (wan_test_bit(AFT_CHIPCFG_SECURITY_STAT_BIT,®)){ + WAN_IRQ_RETVAL_SET(irq_ret, WAN_IRQ_HANDLED); if (++card->u.aft.chip_security_cnt > AFT_MAX_CHIP_SECURITY_CNT){ DEBUG_EVENT("%s: Critical: AFT Chip Security Compromised: Disabling Driver!(%08X)\n", card->devname, reg); @@ -5177,8 +5125,9 @@ static void wp_aft_global_isr (sdla_t* card) } } else if (aft_hwdev[card->wandev.card_type].aft_check_ec_security(card)){ + WAN_IRQ_RETVAL_SET(irq_ret, WAN_IRQ_HANDLED); - if (++card->u.aft.chip_security_cnt > AFT_MAX_CHIP_SECURITY_CNT){ + if (++card->u.aft.chip_security_cnt > AFT_MAX_CHIP_SECURITY_CNT){ DEBUG_EVENT("%s: Critical: Echo Canceller Chip Security Compromised: Disabling Driver!\n", card->devname); DEBUG_EVENT("%s: Please call Sangoma Tech Support (www.sangoma.com)!\n", @@ -5187,15 +5136,14 @@ static void wp_aft_global_isr (sdla_t* card) card->u.aft.chip_security_cnt=0; aft_critical_shutdown(card); } + + } else if (card->u.aft.firm_id == AFT_DS_FE_CORE_ID && + card->wandev.state == WAN_CONNECTED && + SYSTEM_TICKS-card->u.aft.sec_chk_cnt > HZ) { - } else if (card->u.aft.firm_id == AFT_DS_FE_CORE_ID && - card->wandev.state == WAN_CONNECTED && - SYSTEM_TICKS-card->u.aft.sec_chk_cnt > HZ) { - - u32 lcfg_reg; - - card->u.aft.sec_chk_cnt=SYSTEM_TICKS; + u32 lcfg_reg; + card->u.aft.sec_chk_cnt=SYSTEM_TICKS; __sdla_bus_read_4(card->hw,AFT_PORT_REG(card,AFT_LINE_CFG_REG), &lcfg_reg); card->u.aft.lcfg_reg=lcfg_reg; if (wan_test_bit(AFT_LCFG_TX_FE_SYNC_STAT_BIT,&lcfg_reg) || @@ -5203,7 +5151,7 @@ static void wp_aft_global_isr (sdla_t* card) if (++card->u.aft.chip_security_cnt > AFT_MAX_CHIP_SECURITY_CNT){ DEBUG_EVENT("%s: Critical: A108 Lost Sync with Front End: Disabling Driver (0x%08X : A108S=0x%08X)!\n", card->devname, - reg,a108_reg); + lcfg_reg,a108_reg); DEBUG_EVENT("%s: Please call Sangoma Tech Support (www.sangoma.com)!\n", card->devname); @@ -5219,9 +5167,10 @@ static void wp_aft_global_isr (sdla_t* card) DEBUG_TEST("---- ISR end.-------------------\n"); +aft_global_isr_exit: + wan_clear_bit(0,&card->in_isr); - return; - + WAN_IRQ_RETURN(irq_ret); } static void wp_aft_dma_per_port_isr(sdla_t *card) @@ -5240,22 +5189,30 @@ static void wp_aft_dma_per_port_isr(sdla_t *card) int num_of_logic_ch; num_of_logic_ch=card->u.aft.num_of_time_slots; - + + /* Zaptel optimization. Dont waist time looking at + channels, when we know that only a single DCHAN + will use this code */ +#if defined(CONFIG_PRODUCT_WANPIPE_TDM_VOICE) + if (card->wan_tdmv.sc) { + __sdla_bus_read_4(card->hw,AFT_PORT_REG(card,AFT_RX_DMA_INTR_PENDING_REG),&dma_rx_reg); + __sdla_bus_read_4(card->hw,AFT_PORT_REG(card,AFT_TX_DMA_INTR_PENDING_REG),&dma_tx_reg); + if (card->u.aft.tdmv_dchan) { + chan=(private_area_t*)card->u.aft.dev_to_ch_map[card->u.aft.tdmv_dchan-1]; + if (chan && wan_test_bit(0,&chan->up)) { + aft_dma_rx_complete(card,chan,0); + aft_dma_tx_complete(card,chan,0,0); + } + } + goto isr_skb_rx; + } +#endif /* Receive DMA Engine */ __sdla_bus_read_4(card->hw,AFT_PORT_REG(card,AFT_RX_DMA_INTR_PENDING_REG),&dma_rx_reg); dma_rx_reg&=card->u.aft.active_ch_map; -#if 0 - DEBUG_EVENT("%s: DMA_RX_INTR_REG(0x%X) = 0x%08X, ChMap=0x%lX NumofCh=%d\n", - card->devname, - AFT_PORT_REG(card,AFT_RX_DMA_INTR_PENDING_REG), - dma_rx_reg, - card->u.aft.active_ch_map, - num_of_logic_ch); -#endif - if (dma_rx_reg == 0){ goto isr_skb_rx; } @@ -5263,6 +5220,7 @@ static void wp_aft_dma_per_port_isr(sdla_t *card) dma_rx_reg &= card->u.aft.logic_ch_map; dma_rx_reg &= ~(card->u.aft.tdm_logic_ch_map); + for (i=0; iu.aft.logic_ch_map; dma_tx_reg &= ~(card->u.aft.tdm_logic_ch_map); + for (i=0; iwandev.state == WAN_CONNECTED){ - if (chan->single_dma_chain && !chan->hdlc_eng){ + if (chan->single_dma_chain){ wdt_disable=1; continue; } @@ -5453,7 +5412,23 @@ static void wp_aft_wdt_per_port_isr(sdla_t *card, int wdt_intr) * keep calling TDMV zaptel in order to * provide timing */ if (wdt_intr && chan->cfg.tdmv_master_if){ - int err; + int i, err; + void **card_list=__sdla_get_ptr_isr_array(card->hw); + sdla_t *tmp_card; + for (i=0;i<8;i++) { + tmp_card=card_list[i]; + if (!tmp_card) { + continue; + } + if (tmp_card != card) { + /* Only run timing from a first + configured single card */ + DEBUG_TEST("%s: Disabling zaptel timing ! \n",card->devname); + return; + } else { + break; + } + } #if 0 ++chan->if_stats.tx_dropped; #endif @@ -5568,7 +5543,7 @@ static int process_udp_mgmt_pkt(sdla_t* card, netdevice_t* dev, wan_udp_pkt->wan_udp_return_code = digital_loop_test(card,wan_udp_pkt); break; - + case READ_OPERATIONAL_STATS: wan_udp_pkt->wan_udp_return_code = 0; memcpy(wan_udp_pkt->wan_udp_data,&chan->opstats,sizeof(aft_op_stats_t)); @@ -5949,7 +5924,7 @@ static void handle_front_end_state(void *card_id) #endif /* WAN_TASKQ_SCHEDULE((&card->u.aft.port_task)); */ - if (card->u.aft.cfg.tdmv_span_no && + if (card->tdmv_conf.span_no && !wan_test_bit(0,&card->u.aft.tdmv_master_if_up)){ DEBUG_EVENT("%s: Skipping AFT Communication wait for MasterIF\n", card->devname); @@ -6338,7 +6313,7 @@ static void enable_data_error_intr(sdla_t *card) aft_list_dma_chain_regs(card); #endif - if (card->u.aft.cfg.tdmv_span_no && + if (card->tdmv_conf.span_no && !wan_test_bit(0,&card->u.aft.tdmv_master_if_up)){ DEBUG_EVENT("%s: Critical error: Enable Card while Master If Not up!\n", card->devname); @@ -6371,7 +6346,7 @@ static void enable_data_error_intr(sdla_t *card) } - if (card->u.aft.cfg.tdmv_span_no){ + if (card->tdmv_conf.span_no){ card->hw_iface.bus_read_4(card->hw, AFT_PORT_REG(card,AFT_LINE_CFG_REG), ®); wan_set_bit(AFT_LCFG_TDMV_INTR_BIT,®); @@ -6557,7 +6532,7 @@ static void enable_data_error_intr(sdla_t *card) wan_set_bit(AFT_LCFG_DMA_INTR_BIT,®); wan_clear_bit(AFT_LCFG_FIFO_INTR_BIT,®); - if (card->u.aft.cfg.tdmv_span_no){ + if (card->tdmv_conf.span_no){ wan_set_bit(AFT_LCFG_TDMV_INTR_BIT,®); } card->hw_iface.bus_write_4(card->hw, @@ -6571,7 +6546,7 @@ static void enable_data_error_intr(sdla_t *card) card->devname); /* Enable Channelized Driver if configured */ - if (card->u.aft.cfg.tdmv_span_no) { + if (card->tdmv_conf.span_no) { card->hw_iface.bus_read_4(card->hw, AFT_PORT_REG(card,AFT_RX_FIFO_INTR_PENDING_REG), @@ -6678,7 +6653,7 @@ static void disable_data_error_intr(sdla_t *card, unsigned char event) if (event==DEVICE_DOWN){ wan_set_bit(CARD_DOWN,&card->wandev.critical); }else{ - if (card->u.aft.cfg.tdmv_span_no){ + if (card->tdmv_conf.span_no){ DEBUG_EVENT("%s: Starting TDMV 1ms Timer\n", card->devname); #ifdef AFT_WDT_ENABLE @@ -6710,8 +6685,8 @@ static int update_comms_stats(sdla_t* card) card->wandev.fe_iface.read_alarm(&card->fe, 0); } /* TE1 Update T1/E1 perfomance counters */ -#if 1 -// #warning "PMON DISABLED DUE TO ERROR" +#if 0 +#warning "PMON DISABLED DUE TO ERROR" #else if (card->wandev.fe_iface.read_pmon) { wan_smp_flag_t flags; @@ -6804,11 +6779,11 @@ static int set_chan_state(sdla_t* card, netdevice_t* dev, int state) private_area_t *chan = wan_netif_priv(dev); private_area_t *ch_ptr; - if (!chan) { - if (WAN_NET_RATELIMIT()){ - DEBUG_EVENT("%s: %s INFO: no chan ptr!\n", - card->devname,__FUNCTION__); - } + if (!chan){ + if (WAN_NET_RATELIMIT()){ + DEBUG_EVENT("%s: %s:%d No chan ptr!\n", + card->devname,__FUNCTION__,__LINE__); + } return -EINVAL; } @@ -7313,7 +7288,7 @@ static int aft_dma_chain_tx(aft_dma_chain_t *dma_chain,private_area_t *chan, int dma_descr=(chan->logic_ch_num<<4) + (dma_ch_indx*AFT_DMA_INDEX_OFFSET) + AFT_PORT_REG(card,AFT_TX_DMA_HI_DESCR_BASE_REG); - DEBUG_TEST("%s:%d: chan logic ch=%d chain=%ld dma_descr=0x%x set!\n", + DEBUG_DMA("%s:%d: chan logic ch=%ld chain=%d dma_descr=0x%x set!\n", __FUNCTION__,__LINE__,chan->logic_ch_num,dma_ch_indx,dma_descr); card->hw_iface.bus_read_4(card->hw,dma_descr,®); @@ -7321,11 +7296,10 @@ static int aft_dma_chain_tx(aft_dma_chain_t *dma_chain,private_area_t *chan, int if (wan_test_bit(AFT_TXDMA_HI_GO_BIT,®)){ DEBUG_EVENT("%s: Error: TxDMA GO Ready bit set on dma (chain=0x%X) Desc=0x%X Tx 0x%X\n", card->devname,dma_descr,dma_ch_indx,reg); - - /* Nothing we can do here, reset the dma descr - and keep going */ - card->hw_iface.bus_write_4(card->hw,dma_descr,0); - card->hw_iface.bus_read_4(card->hw,dma_descr,®); + /* Nothing we can do here, just reset + descriptor and keep going */ + card->hw_iface.bus_write_4(card->hw,dma_descr,0); + card->hw_iface.bus_read_4(card->hw,dma_descr,®); } dma_descr=(chan->logic_ch_num<<4) + (dma_ch_indx*AFT_DMA_INDEX_OFFSET) + @@ -7366,8 +7340,8 @@ static int aft_dma_chain_tx(aft_dma_chain_t *dma_chain,private_area_t *chan, int len_align=1; } - DEBUG_TEST("%s: TXDMA_LO=0x%X PhyAddr=0x%X DmaDescr=0x%X Len=%i\n", - __FUNCTION__,reg,dma_chain->dma_addr,dma_descr,len); + DEBUG_DMA("%s: TXDMA_LO=0x%X PhyAddr=0x%X DmaDescr=0x%X Len=%i\n", + __FUNCTION__,reg,(int)dma_chain->dma_addr,dma_descr,len); card->hw_iface.bus_write_4(card->hw,dma_descr,reg); @@ -7430,7 +7404,7 @@ static int aft_dma_chain_tx(aft_dma_chain_t *dma_chain,private_area_t *chan, int wan_set_bit(AFT_TXDMA_HI_DMA_CMD_BIT,®); } - DEBUG_TEST("%s: TXDMA_HI=0x%X DmaDescr=0x%X Len=%d Intr=%d\n", + DEBUG_DMA("%s: TXDMA_HI=0x%X DmaDescr=0x%X Len=%d Intr=%d\n", __FUNCTION__,reg,dma_descr,len,intr); card->hw_iface.bus_write_4(card->hw,dma_descr,reg); @@ -7480,8 +7454,7 @@ static void aft_tx_dma_chain_init(private_area_t *chan, aft_dma_chain_t *dma_cha dma_chain->dma_addr=0; dma_chain->dma_len=0; - dma_chain->dma_map_len=0; - dma_chain->dma_offset=0; + dma_chain->dma_map_len=dma_chain->dma_len; wan_clear_bit(0,&dma_chain->init); } @@ -7504,7 +7477,6 @@ static void aft_rx_dma_chain_init(private_area_t *chan, aft_dma_chain_t *dma_cha dma_chain->dma_addr=0; dma_chain->dma_len=0; dma_chain->dma_map_len=0; - dma_chain->dma_offset=0; wan_clear_bit(0,&dma_chain->init); } @@ -7570,8 +7542,7 @@ static int aft_dma_voice_tx(sdla_t *card, private_area_t *chan) dma_chain->dma_offset = AFT_TDMV_BUF_MASK - (dma_chain->dma_addr & AFT_TDMV_BUF_MASK) + 1; - dma_chain->dma_virt = wan_skb_data(dma_chain->skb) + - dma_chain->dma_offset; + dma_chain->dma_virt = wan_skb_data(dma_chain->skb) + dma_chain->dma_offset; dma_chain->dma_addr += dma_chain->dma_offset; } else { @@ -7579,8 +7550,8 @@ static int aft_dma_voice_tx(sdla_t *card, private_area_t *chan) dma_chain->dma_virt = wan_skb_data(dma_chain->skb); } - dma_chain->dma_len = chan->mtu*2; - dma_chain->dma_map_len = chan->dma_mru; + dma_chain->dma_len = wan_skb_len(dma_chain->skb); + dma_chain->dma_map_len=chan->dma_mru; } @@ -7721,7 +7692,8 @@ static int aft_dma_tx (sdla_t *card,private_area_t *chan) PCI_DMA_TODEVICE); dma_chain->dma_len = wan_skb_len(dma_chain->skb); - dma_chain->dma_map_len = dma_chain->dma_len; + dma_chain->dma_map_len=dma_chain->dma_len; + dma_chain->dma_offset=0; DEBUG_TEST("%s: DMA Chain %d: Cur=%d Pend=%d\n", @@ -7812,7 +7784,7 @@ static int aft_dma_chain_rx(aft_dma_chain_t *dma_chain, private_area_t *chan, in dma_descr=(chan->logic_ch_num<<4) + (dma_ch_indx*AFT_DMA_INDEX_OFFSET) + AFT_PORT_REG(card,AFT_RX_DMA_LO_DESCR_BASE_REG); - DEBUG_TEST("%s: RxDMA_LO(%d) = 0x%X, DmaDescr=0x%X\n", + DEBUG_DMA("%s: RxDMA_LO(%ld) = 0x%X, DmaDescr=0x%X\n", __FUNCTION__,chan->logic_ch_num,reg,dma_descr); card->hw_iface.bus_write_4(card->hw,dma_descr,reg); @@ -7859,8 +7831,7 @@ static int aft_dma_chain_rx(aft_dma_chain_t *dma_chain, private_area_t *chan, in wan_set_bit(AFT_RXDMA_HI_DMA_CMD_BIT,®); } - - DEBUG_TEST("%s: RXDMA_HI(%d) = 0x%X, DmaDescr=0x%X\n", + DEBUG_DMA("%s: RXDMA_HI(%ld) = 0x%X, DmaDescr=0x%X\n", __FUNCTION__,chan->logic_ch_num,reg,dma_descr); card->hw_iface.bus_write_4(card->hw,dma_descr,reg); @@ -7889,8 +7860,6 @@ static int aft_dma_voice_rx(sdla_t *card, private_area_t *chan) dma_chain = &chan->rx_dma_chain_table[0]; - DEBUG_TEST("%s: DMA RX: Chain %i Used %i\n", - chan->if_name,dma_chain->index,dma_chain->init); /* If the current DMA chain is in use,then * all chains are busy */ @@ -7927,20 +7896,18 @@ static int aft_dma_voice_rx(sdla_t *card, private_area_t *chan) if (dma_chain->dma_addr & AFT_TDMV_BUF_MASK) { dma_chain->dma_offset = AFT_TDMV_BUF_MASK - (dma_chain->dma_addr & AFT_TDMV_BUF_MASK) + 1; - dma_chain->dma_virt = wan_skb_tail(dma_chain->skb) + - dma_chain->dma_offset; + dma_chain->dma_virt = wan_skb_tail(dma_chain->skb) + dma_chain->dma_offset; dma_chain->dma_addr += dma_chain->dma_offset; - + } else { - dma_chain->dma_offset=0; - dma_chain->dma_virt = wan_skb_tail(dma_chain->skb); + dma_chain->dma_offset=0; + dma_chain->dma_virt = wan_skb_tail(dma_chain->skb); } - - - dma_chain->dma_len = chan->dma_mru; - dma_chain->dma_map_len = dma_chain->dma_len; + dma_chain->dma_len = chan->dma_mru-dma_chain->dma_offset; + dma_chain->dma_map_len=dma_chain->dma_len; + DEBUG_TEST("%s: RXDMA PHY = 0x%08X VIRT = %p \n", chan->if_name, dma_chain->dma_addr,wan_skb_tail(dma_chain->skb)+dma_chain->dma_offset); @@ -7958,8 +7925,10 @@ static int aft_dma_voice_rx(sdla_t *card, private_area_t *chan) dma_chain->dma_offset=0; dma_chain->dma_virt = wan_skb_tail(dma_chain->skb); } + dma_chain->dma_len = chan->dma_mru; - dma_chain->dma_map_len = dma_chain->dma_len; + dma_chain->dma_map_len=dma_chain->dma_len; + #endif }else{ wan_skb_init(dma_chain->skb,16); @@ -8080,7 +8049,8 @@ static int aft_dma_rx(sdla_t *card, private_area_t *chan) PCI_DMA_FROMDEVICE); dma_chain->dma_len = chan->dma_mru; - dma_chain->dma_map_len = dma_chain->dma_len; + dma_chain->dma_map_len=dma_chain->dma_len; + dma_chain->dma_offset=0; intr=0; if (!wan_test_bit(RX_INTR_PENDING,&chan->dma_chain_status)){ @@ -8294,9 +8264,8 @@ rx_hndlr_skip_rx: dma_chain->skb=NULL; dma_chain->dma_addr=0; dma_chain->dma_len=0; - dma_chain->dma_map_len=0; + dma_chain->dma_map_len=dma_chain->dma_len; dma_chain->pkt_error=0; - dma_chain->dma_offset=0; wan_clear_bit(0,&dma_chain->init); if (chan->single_dma_chain){ @@ -8625,9 +8594,8 @@ static void aft_free_rx_descriptors(private_area_t *chan) dma_chain->skb=NULL; dma_chain->dma_addr=0; dma_chain->dma_len=0; - dma_chain->dma_map_len=0; + dma_chain->dma_map_len=dma_chain->dma_len; dma_chain->pkt_error=0; - dma_chain->dma_offset=0; wan_clear_bit(0,&dma_chain->init); } @@ -8916,19 +8884,27 @@ void aft_wdt_reset(sdla_t *card) } #if defined(__LINUX__) -static void aft_port_task (void * card_ptr) +# if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)) +static void aft_port_task (void * card_ptr) +# else +static void aft_port_task (struct work_struct *work) +# endif #else -static void aft_port_task (void * card_ptr, int arg) +static void aft_port_task (void * card_ptr, int arg) #endif { - sdla_t *card = (sdla_t *)card_ptr; +#if defined(__LINUX__) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)) + sdla_t *card = (sdla_t *)container_of(work, sdla_t, u.aft.port_task); +#else + sdla_t *card = (sdla_t *)card_ptr; +#endif wan_smp_flag_t smp_flags; if (wan_test_bit(CARD_DOWN,&card->wandev.critical)){ return; } - DEBUG_TEST("%s: PORT TASK: 0x%X\n", card->devname,card->u.aft.port_task_cmd); + DEBUG_56K("%s: PORT TASK: 0x%X\n", card->devname,card->u.aft.port_task_cmd); #ifdef AFT_IRQ_STAT_DEBUG card->wandev.stats.rx_missed_errors++; @@ -8953,10 +8929,11 @@ static void aft_port_task (void * card_ptr, int arg) card->hw_iface.hw_lock(card->hw,&smp_flags); aft_fe_intr_ctrl(card, 0); if (card->wandev.fe_iface.polling){ - wan_smp_flag_t smp_irq_flags; - card->wandev.fe_iface.polling(&card->fe); - + wan_smp_flag_t smp_irq_flags; + int err = 0; wan_spin_lock_irq(&card->wandev.lock,&smp_irq_flags); + err = card->wandev.fe_iface.polling(&card->fe); + handle_front_end_state(card); wan_spin_unlock_irq(&card->wandev.lock,&smp_irq_flags); } @@ -9238,10 +9215,10 @@ static int aft_tdmv_init(sdla_t *card, wandev_conf_t *conf) err=0; DEBUG_EVENT("%s: TDMV Span = %d : %s\n", card->devname, - card->u.aft.cfg.tdmv_span_no, - card->u.aft.cfg.tdmv_span_no?"Enabled":"Disabled"); + card->tdmv_conf.span_no, + card->tdmv_conf.span_no?"Enabled":"Disabled"); - if (card->u.aft.cfg.tdmv_span_no) { + if (card->tdmv_conf.span_no) { if (card->wandev.config_id == WANCONFIG_AFT_ANALOG) { valid_firmware_ver=AFT_MIN_ANALOG_FRMW_VER; } @@ -9265,17 +9242,16 @@ static int aft_tdmv_init(sdla_t *card, wandev_conf_t *conf) /************************************************************** * TDMV VOICE Functions **************************************************************/ - +#if defined(CONFIG_PRODUCT_WANPIPE_TDM_VOICE) static int aft_tdmv_free(sdla_t *card) { -#if defined(CONFIG_PRODUCT_WANPIPE_TDM_VOICE) - if (card->u.aft.cfg.tdmv_span_no){ + if (card->tdmv_conf.span_no && card->wan_tdmv.sc){ int err; WAN_TDMV_CALL(remove, (card), err); } -#endif return 0; } +#endif static int aft_tdmv_if_init(sdla_t *card, private_area_t *chan, wanif_conf_t *conf) @@ -9285,7 +9261,7 @@ static int aft_tdmv_if_init(sdla_t *card, private_area_t *chan, wanif_conf_t *co return 0; } - if (!card->u.aft.cfg.tdmv_span_no){ + if (!card->tdmv_conf.span_no){ DEBUG_EVENT("%s: Error: TDMV Span No is not set!\n", card->devname); return -EINVAL; @@ -9357,6 +9333,7 @@ static int aft_tdmv_if_init(sdla_t *card, private_area_t *chan, wanif_conf_t *co #ifdef CONFIG_PRODUCT_WANPIPE_TDM_VOICE if (chan->tdmv_zaptel_cfg){ + int channel; /* The TDMV drivers always starts from number * ZERO. Wanpipe driver doesn't allow timeslot @@ -9366,34 +9343,40 @@ static int aft_tdmv_if_init(sdla_t *card, private_area_t *chan, wanif_conf_t *co conf->active_ch=conf->active_ch>>1; } - WAN_TDMV_CALL(reg, (card, conf, chan->common.dev), chan->tdmv_chan); - if (chan->tdmv_chan < 0){ + WAN_TDMV_CALL(reg, + (card, + &conf->tdmv, + conf->active_ch, + conf->hwec.enable, + chan->common.dev), channel); + if (channel < 0){ DEBUG_EVENT("%s: Error: Failed to register TDMV channel!\n", chan->if_name); return -EINVAL; } + chan->tdmv_chan=channel; if (card->u.aft.tdmv_dchan_cfg_on_master && chan->cfg.tdmv_master_if){ - int dchan=card->u.aft.cfg.tdmv_dchan; u32 orig_ch=conf->active_ch; - if (IS_T1_CARD(card)){ - dchan--; - } + conf->active_ch=card->u.aft.tdmv_dchan_cfg_on_master; - conf->active_ch=0; - wan_set_bit(dchan,&conf->active_ch); - - WAN_TDMV_CALL(reg, (card, conf, chan->common.dev), card->u.aft.tdmv_chan); - if (card->u.aft.tdmv_chan < 0){ + WAN_TDMV_CALL(reg, + (card, + &conf->tdmv, + conf->active_ch, + conf->hwec.enable, + chan->common.dev), channel); + if (channel < 0){ DEBUG_EVENT("%s: Error: Failed to register TDMV channel!\n", chan->if_name); return -EINVAL; } + card->u.aft.tdmv_chan=channel; card->u.aft.tdmv_dchan_active_ch=conf->active_ch; conf->active_ch=orig_ch; } @@ -9461,18 +9444,19 @@ static int aft_voice_span_rx_tx(sdla_t *card, int rotate) { int err; err=0; + if (card->wan_tdmv.sc){ if (rotate) { WAN_TDMV_CALL(buf_rotate, (card,AFT_TDMV_CIRC_BUF,AFT_TDMV_BUF_MASK), err); } - if (!card->wandev.ec_enable){ + if (!card->wandev.ec_enable || card->wandev.ec_enable_map == 0){ WAN_TDMV_CALL(ec_span, (card), err); } - - WAN_TDMV_CALL(rx_tx_span, (card), err); + WAN_TDMV_CALL(rx_tx_span, (card), err); + WAN_TDMV_CALL(is_rbsbits, (&card->wan_tdmv), err); if (err == 1){ wan_set_bit(AFT_FE_TDM_RBS,&card->u.aft.port_task_cmd); @@ -9506,7 +9490,7 @@ static int aft_dma_rx_tdmv(sdla_t *card, private_area_t *chan) rx_offset= AFT_TDMV_CIRC_BUF * card->u.aft.tdm_rx_dma_toggle; tx_offset= AFT_TDMV_CIRC_BUF * card->u.aft.tdm_tx_dma_toggle; } - + err=0; if (!tx_dma_chain || !rx_dma_chain){ @@ -9593,6 +9577,15 @@ aft_tdm_bh_skip: chan->tdmv_chan); #if 1 +#if 0 +#warning "RTP TAP ENABLED Not Finished" + if (card->u.aft.rtp_len) { + aft_rtp_tap(card,chan, + rx_dma_chain->dma_virt+rx_offset, + tx_dma_chain->dma_virt+tx_offset, + chan->mtu); + } +#endif WAN_TDMV_CALL(rx_chan, (&card->wan_tdmv,chan->tdmv_chan, rx_dma_chain->dma_virt+rx_offset, @@ -9658,7 +9651,7 @@ defined(AFT_TDMV_BH_ENABLE) } WAN_WP_TASKLET_SCHEDULE_PER_CPU((&chan->common.bh_task), - card->u.aft.cfg.tdmv_span_no); + card->tdmv_conf.span_no); card->hw_iface.bus_read_4(card->hw,AFT_PORT_REG(card,AFT_DMA_CTRL_REG),®); wan_set_bit(AFT_DMACTRL_TDMV_RX_TOGGLE,®); @@ -9781,7 +9774,7 @@ static int aft_tdm_intr_ctrl(sdla_t *card, int ctrl) static int wan_aft_api_ioctl(sdla_t *card, private_area_t *chan, char *user_data) { api_tx_hdr_t tx_hdr; - wan_event_ctrl_t *event_ctrl; + wan_event_ctrl_t event_ctrl; int err = -EINVAL; if (WAN_COPY_FROM_USER(&tx_hdr, user_data, sizeof(api_tx_hdr_t))){ @@ -9789,22 +9782,21 @@ static int wan_aft_api_ioctl(sdla_t *card, private_area_t *chan, char *user_data card->devname); return -EFAULT; } - event_ctrl = wan_malloc(sizeof(wan_event_ctrl_t)); - memset(event_ctrl, 0, sizeof(wan_event_ctrl_t)); + memset(&event_ctrl, 0, sizeof(wan_event_ctrl_t)); switch(tx_hdr.wp_api_tx_hdr_event_type){ case WP_API_EVENT_DTMF: DEBUG_TEST("%s: %s HW DTMF events!\n", card->devname, (tx_hdr.wp_api_tx_hdr_event_mode==WP_API_EVENT_ENABLE)? "Enable": "Disable"); - event_ctrl->type = WAN_EVENT_EC_DTMF; - event_ctrl->ts_map = tx_hdr.wp_api_tx_hdr_event_channel; + event_ctrl.type = WAN_EVENT_EC_DTMF; + event_ctrl.ts_map = tx_hdr.wp_api_tx_hdr_event_channel; if (tx_hdr.wp_api_tx_hdr_event_mode == WP_API_EVENT_ENABLE){ - event_ctrl->mode = WAN_EVENT_ENABLE; + event_ctrl.mode = WAN_EVENT_ENABLE; }else{ - event_ctrl->mode = WAN_EVENT_DISABLE; + event_ctrl.mode = WAN_EVENT_DISABLE; } - err = aft_event_ctrl(chan, event_ctrl); + err = aft_event_ctrl(chan, &event_ctrl); break; case WP_API_EVENT_RM_DTMF: @@ -9812,14 +9804,14 @@ static int wan_aft_api_ioctl(sdla_t *card, private_area_t *chan, char *user_data card->devname, (tx_hdr.wp_api_tx_hdr_event_mode==WP_API_EVENT_ENABLE)? "Enable": "Disable"); - event_ctrl->type = WAN_EVENT_RM_DTMF; - event_ctrl->mod_no = tx_hdr.wp_api_tx_hdr_event_channel; + event_ctrl.type = WAN_EVENT_RM_DTMF; + event_ctrl.mod_no = tx_hdr.wp_api_tx_hdr_event_channel; if (tx_hdr.wp_api_tx_hdr_event_mode == WP_API_EVENT_ENABLE){ - event_ctrl->mode = WAN_EVENT_ENABLE; + event_ctrl.mode = WAN_EVENT_ENABLE; }else{ - event_ctrl->mode = WAN_EVENT_DISABLE; + event_ctrl.mode = WAN_EVENT_DISABLE; } - err = aft_event_ctrl(chan, event_ctrl); + err = aft_event_ctrl(chan, &event_ctrl); break; case WP_API_EVENT_RXHOOK: @@ -9827,130 +9819,129 @@ static int wan_aft_api_ioctl(sdla_t *card, private_area_t *chan, char *user_data card->devname, (tx_hdr.wp_api_tx_hdr_event_mode==WP_API_EVENT_ENABLE)? "Enable": "Disable"); - event_ctrl->type = WAN_EVENT_RM_LC; - event_ctrl->mod_no = tx_hdr.wp_api_tx_hdr_event_channel; + event_ctrl.type = WAN_EVENT_RM_LC; + event_ctrl.mod_no = tx_hdr.wp_api_tx_hdr_event_channel; if (tx_hdr.wp_api_tx_hdr_event_mode == WP_API_EVENT_ENABLE){ - event_ctrl->mode = WAN_EVENT_ENABLE; + event_ctrl.mode = WAN_EVENT_ENABLE; }else{ - event_ctrl->mode = WAN_EVENT_DISABLE; + event_ctrl.mode = WAN_EVENT_DISABLE; } - err = aft_event_ctrl(chan, event_ctrl); + err = aft_event_ctrl(chan, &event_ctrl); break; case WP_API_EVENT_RING: DEBUG_TEST("%s: %s RING events!\n", card->devname, (tx_hdr.wp_api_tx_hdr_event_mode==WP_API_EVENT_ENABLE)? "Enable": "Disable"); - event_ctrl->type = WAN_EVENT_RM_RING; - event_ctrl->mod_no = tx_hdr.wp_api_tx_hdr_event_channel; + event_ctrl.type = WAN_EVENT_RM_RING; + event_ctrl.mod_no = tx_hdr.wp_api_tx_hdr_event_channel; if (tx_hdr.wp_api_tx_hdr_event_mode == WP_API_EVENT_ENABLE){ - event_ctrl->mode = WAN_EVENT_ENABLE; + event_ctrl.mode = WAN_EVENT_ENABLE; }else{ - event_ctrl->mode = WAN_EVENT_DISABLE; + event_ctrl.mode = WAN_EVENT_DISABLE; } - err = aft_event_ctrl(chan, event_ctrl); + err = aft_event_ctrl(chan, &event_ctrl); break; case WP_API_EVENT_TONE: DEBUG_TEST("%s: %s TONE events!\n", card->devname, (tx_hdr.wp_api_tx_hdr_event_mode==WP_API_EVENT_ENABLE)? "Enable": "Disable"); - event_ctrl->type = WAN_EVENT_RM_TONE; - event_ctrl->mod_no = tx_hdr.wp_api_tx_hdr_event_channel; + event_ctrl.type = WAN_EVENT_RM_TONE; + event_ctrl.mod_no = tx_hdr.wp_api_tx_hdr_event_channel; switch(tx_hdr.wp_api_tx_hdr_event_tone){ case WP_API_EVENT_TONE_DIAL: - event_ctrl->tone = WAN_EVENT_TONE_DIAL; + event_ctrl.tone = WAN_EVENT_TONE_DIAL; break; case WP_API_EVENT_TONE_BUSY: - event_ctrl->tone = WAN_EVENT_TONE_BUSY; + event_ctrl.tone = WAN_EVENT_TONE_BUSY; break; case WP_API_EVENT_TONE_RING: - event_ctrl->tone = WAN_EVENT_TONE_RING; + event_ctrl.tone = WAN_EVENT_TONE_RING; break; case WP_API_EVENT_TONE_CONGESTION: - event_ctrl->tone = WAN_EVENT_TONE_CONGESTION; + event_ctrl.tone = WAN_EVENT_TONE_CONGESTION; break; default: if (tx_hdr.wp_api_tx_hdr_event_mode == WP_API_EVENT_ENABLE){ DEBUG_EVENT("%s: Unsupported tone type %d!\n", card->devname, tx_hdr.wp_api_tx_hdr_event_tone); - wan_free(event_ctrl); return -EINVAL; } break; } if (tx_hdr.wp_api_tx_hdr_event_mode == WP_API_EVENT_ENABLE){ - event_ctrl->mode = WAN_EVENT_ENABLE; + event_ctrl.mode = WAN_EVENT_ENABLE; }else{ - event_ctrl->mode = WAN_EVENT_DISABLE; + event_ctrl.mode = WAN_EVENT_DISABLE; } - err = aft_event_ctrl(chan, event_ctrl); + err = aft_event_ctrl(chan, &event_ctrl); break; case WP_API_EVENT_TXSIG_KEWL: DEBUG_EVENT("%s: TXSIG KEWL for module %d!\n", card->devname, tx_hdr.wp_api_tx_hdr_event_channel); - event_ctrl->type = WAN_EVENT_RM_TXSIG_KEWL; - event_ctrl->mod_no = tx_hdr.wp_api_tx_hdr_event_channel; - err = aft_event_ctrl(chan, event_ctrl); + event_ctrl.type = WAN_EVENT_RM_TXSIG_KEWL; + event_ctrl.mod_no = tx_hdr.wp_api_tx_hdr_event_channel; + err = aft_event_ctrl(chan, &event_ctrl); break; case WP_API_EVENT_TXSIG_START: DEBUG_EVENT("%s: TXSIG START for module %d!\n", card->devname, tx_hdr.wp_api_tx_hdr_event_channel); - event_ctrl->type = WAN_EVENT_RM_TXSIG_START; - event_ctrl->mod_no = tx_hdr.wp_api_tx_hdr_event_channel; - err = aft_event_ctrl(chan, event_ctrl); + event_ctrl.type = WAN_EVENT_RM_TXSIG_START; + event_ctrl.mod_no = tx_hdr.wp_api_tx_hdr_event_channel; + err = aft_event_ctrl(chan, &event_ctrl); break; case WP_API_EVENT_TXSIG_OFFHOOK: DEBUG_EVENT("%s: RM TXSIG OFFHOOK for module %d!\n", card->devname, tx_hdr.wp_api_tx_hdr_event_channel); - event_ctrl->type = WAN_EVENT_RM_TXSIG_OFFHOOK; - event_ctrl->mod_no = tx_hdr.wp_api_tx_hdr_event_channel; - err = aft_event_ctrl(chan, event_ctrl); + event_ctrl.type = WAN_EVENT_RM_TXSIG_OFFHOOK; + event_ctrl.mod_no = tx_hdr.wp_api_tx_hdr_event_channel; + err = aft_event_ctrl(chan, &event_ctrl); break; case WP_API_EVENT_TXSIG_ONHOOK: DEBUG_EVENT("%s: RM TXSIG ONHOOK for module %d!\n", card->devname, tx_hdr.wp_api_tx_hdr_event_channel); - event_ctrl->type = WAN_EVENT_RM_TXSIG_ONHOOK; - event_ctrl->mod_no = tx_hdr.wp_api_tx_hdr_event_channel; - err = aft_event_ctrl(chan, event_ctrl); + event_ctrl.type = WAN_EVENT_RM_TXSIG_ONHOOK; + event_ctrl.mod_no = tx_hdr.wp_api_tx_hdr_event_channel; + err = aft_event_ctrl(chan, &event_ctrl); break; case WP_API_EVENT_ONHOOKTRANSFER: DEBUG_EVENT("%s: RM ONHOOKTRANSFER for module %d!\n", card->devname, tx_hdr.wp_api_tx_hdr_event_channel); - event_ctrl->type = WAN_EVENT_RM_ONHOOKTRANSFER; - event_ctrl->mod_no = tx_hdr.wp_api_tx_hdr_event_channel; - event_ctrl->ohttimer = tx_hdr.wp_api_tx_hdr_event_ohttimer; - err = aft_event_ctrl(chan, event_ctrl); + event_ctrl.type = WAN_EVENT_RM_ONHOOKTRANSFER; + event_ctrl.mod_no = tx_hdr.wp_api_tx_hdr_event_channel; + event_ctrl.ohttimer = tx_hdr.wp_api_tx_hdr_event_ohttimer; + err = aft_event_ctrl(chan, &event_ctrl); break; case WP_API_EVENT_SETPOLARITY: DEBUG_EVENT("%s: RM SETPOLARITY for module %d!\n", card->devname, tx_hdr.wp_api_tx_hdr_event_channel); - event_ctrl->type = WAN_EVENT_RM_SETPOLARITY; - event_ctrl->mod_no = tx_hdr.wp_api_tx_hdr_event_channel; - event_ctrl->polarity = tx_hdr.wp_api_tx_hdr_event_polarity; - err = aft_event_ctrl(chan, event_ctrl); + event_ctrl.type = WAN_EVENT_RM_SETPOLARITY; + event_ctrl.mod_no = tx_hdr.wp_api_tx_hdr_event_channel; + event_ctrl.polarity = tx_hdr.wp_api_tx_hdr_event_polarity; + err = aft_event_ctrl(chan, &event_ctrl); break; case WP_API_EVENT_RING_DETECT: DEBUG_EVENT("%s: %s: RM RING DETECT events for module %d!\n", card->devname, WP_API_EVENT_MODE_DECODE(tx_hdr.wp_api_tx_hdr_event_mode), tx_hdr.wp_api_tx_hdr_event_channel); - event_ctrl->type = WAN_EVENT_RM_RING_DETECT; - event_ctrl->mod_no = tx_hdr.wp_api_tx_hdr_event_channel; + event_ctrl.type = WAN_EVENT_RM_RING_DETECT; + event_ctrl.mod_no = tx_hdr.wp_api_tx_hdr_event_channel; if (tx_hdr.wp_api_tx_hdr_event_mode == WP_API_EVENT_ENABLE){ - event_ctrl->mode = WAN_EVENT_ENABLE; + event_ctrl.mode = WAN_EVENT_ENABLE; }else{ - event_ctrl->mode = WAN_EVENT_DISABLE; + event_ctrl.mode = WAN_EVENT_DISABLE; } - err = aft_event_ctrl(chan, event_ctrl); + err = aft_event_ctrl(chan, &event_ctrl); break; default: @@ -9958,10 +9949,8 @@ static int wan_aft_api_ioctl(sdla_t *card, private_area_t *chan, char *user_data card->devname, tx_hdr.wp_api_tx_hdr_event_type); err = -EINVAL; - wan_free(event_ctrl); break; } - return err; } #endif @@ -10380,15 +10369,24 @@ static void aft_clear_ss7_force_rx(sdla_t *card, private_area_t *chan) #if defined(AFT_API_SUPPORT) || defined(AFT_TDM_API_SUPPORT) -static int aft_event_ctrl(void *chan_ptr, wan_event_ctrl_t *event_ctrl) +static int aft_event_ctrl(void *chan_ptr, wan_event_ctrl_t *p_event) { sdla_t *card = NULL; private_area_t *chan = (private_area_t *)chan_ptr; + wan_event_ctrl_t *event_ctrl; int err = -EINVAL; card = chan->card; - if (event_ctrl->type == WAN_EVENT_EC_DTMF){ + event_ctrl = wan_malloc(sizeof(wan_event_ctrl_t)); + if (event_ctrl == NULL){ + DEBUG_EVENT("%s: Failed to allocate event control!\n", + card->devname); + return -EFAULT; + } + memset(event_ctrl, 0, sizeof(wan_event_ctrl_t)); + memcpy(event_ctrl, p_event, sizeof(wan_event_ctrl_t)); + if (event_ctrl->type == WAN_EVENT_EC_DTMF && card->wandev.ec_dev){ #if defined(CONFIG_WANPIPE_HWEC) DEBUG_TEST("%s: Event control request EC_DTMF...\n", chan->if_name); @@ -10403,9 +10401,10 @@ static int aft_event_ctrl(void *chan_ptr, wan_event_ctrl_t *event_ctrl) }else{ DEBUG_TEST("%s: Unsupported event control request (%lX)\n", chan->if_name, event_ctrl->type); - wan_free(event_ctrl); + } + if (err){ + if (event_ctrl) wan_free(event_ctrl); } - return err; } #endif @@ -10554,6 +10553,9 @@ static void aft_critical_shutdown (sdla_t *card) DEBUG_EVENT("%s: Error: Card Critically Shutdown!\n", card->devname); + if (card->wandev.fe_iface.pre_release){ + card->wandev.fe_iface.pre_release(&card->fe); + } if (card->wandev.fe_iface.unconfig){ card->wandev.fe_iface.unconfig(&card->fe); } @@ -10565,6 +10567,11 @@ static void aft_critical_shutdown (sdla_t *card) aft_hwdev[card->wandev.card_type].aft_led_ctrl(card, WAN_AFT_GREEN, 0, WAN_AFT_OFF); } +enum { + WAN_TDM_RTP_NO_CHANGE, + WAN_TDM_RTP_CALL_START, + WAN_TDM_RTP_CALL_STOP +}; static int aft_hwec_config (sdla_t *card, private_area_t *chan, wanif_conf_t *conf, int ctrl) @@ -10574,7 +10581,7 @@ static int aft_hwec_config (sdla_t *card, private_area_t *chan, wanif_conf_t *co unsigned int tdmv_hwec_option=0; if (conf) { - tdmv_hwec_option=conf->u.aft.tdmv_hwec; + tdmv_hwec_option=conf->hwec.enable; } if (chan->common.usedby == TDM_VOICE_API || @@ -10609,6 +10616,233 @@ static int aft_hwec_config (sdla_t *card, private_area_t *chan, wanif_conf_t *co } return err; +} + + +#if defined(__LINUX__) + +static void aft_rtp_unconfig(sdla_t *card) +{ + netskb_t *skb; + + card->u.aft.cfg.rtp_ip=0; + card->u.aft.cfg.rtp_sample=0; + card->u.aft.rtp_len=0; + if (card->u.aft.rtp_dev) { + dev_put(card->u.aft.rtp_dev); + card->u.aft.rtp_dev=NULL; + } + + if ((skb=card->u.aft.rx_rtp_skb)) { + card->u.aft.rx_rtp_skb=NULL; + wan_skb_free(skb); + } + +} + +static void aft_rtp_config(sdla_t *card) +{ + +/* RTP TAP Not finished yet */ + return; + + +#if 0 + if (!card->u.aft.cfg.rtp_ip || !card->u.aft.cfg.rtp_sample) { + goto aft_rtp_init_exit; + } + + switch (card->u.aft.cfg.rtp_sample) { + case 10: + case 20: + case 30: + case 40: + /* Supported Sample Sizes */ + break; + default: + goto aft_rtp_init_exit; + } +#endif + + card->u.aft.cfg.rtp_port=9000; + card->u.aft.cfg.rtp_ip=0x0100007F; + card->u.aft.cfg.rtp_sample=100; + card->u.aft.rtp_len = (card->u.aft.cfg.rtp_sample * 8) + sizeof(wan_rtp_pkt_t); + sprintf(card->u.aft.cfg.rtp_devname,"lo"); + + if ((card->u.aft.rtp_dev=dev_get_by_name(card->u.aft.cfg.rtp_devname)) == NULL){ + DEBUG_EVENT("%s: Failed to open rtp tx device %s\n", + card->devname, + card->u.aft.cfg.rtp_devname); + goto aft_rtp_init_exit; + } + + DEBUG_EVENT("%s: Configured rtp tap!\n",card->devname); + return; + +aft_rtp_init_exit: + + aft_rtp_unconfig(card); + + DEBUG_EVENT("%s: Failed to configure rtp tap!\n",card->devname); + return; + +} + + +#if 0 +static void aft_rtp_tap(sdla_t *card, private_area_t *chan, u8* rx, u8* tx, u32 len) +{ + wan_rtp_pkt_t *pkt; + u8 *buf; + netskb_t *skb; + u32 ecmap, call_status=WAN_TDM_RTP_NO_CHANGE; + + if (!card->u.aft.cfg.rtp_ip || + !card->u.aft.cfg.rtp_sample || + !card->u.aft.rtp_len || + !card->u.aft.rtp_dev) { + return; + } + + if (IS_T1_CARD(card)) { + ecmap=card->wandev.ec_map; + } else { + ecmap=card->wandev.ec_map << 1; + } + + if (1) { //wan_test_bit(chan->first_time_slot,&ecmap)) { + if (!wan_test_and_set_bit(0,&chan->tdm_call_status)) { + /* Start of the call */ + call_status=WAN_TDM_RTP_CALL_START; + DEBUG_TEST("%s: CALL Start on ch %i\n", + chan->if_name,chan->first_time_slot); + } + } else { + if (!wan_test_bit(0,&chan->tdm_call_status)) { + /* Call not up */ + return; + } + call_status=WAN_TDM_RTP_CALL_STOP; + DEBUG_TEST("%s: CALL Stop on ch %i\n", + chan->if_name,chan->first_time_slot); + } + + + if (!(skb=chan->rx_rtp_skb)) { + card->u.aft.rtp_len = (card->u.aft.cfg.rtp_sample * 8) + sizeof(wan_rtp_pkt_t); + chan->rx_rtp_skb=wan_skb_alloc(card->u.aft.rtp_len+128); + if (!chan->rx_rtp_skb) { + return; + } + skb=chan->rx_rtp_skb; + pkt = (wan_rtp_pkt_t*)wan_skb_put(skb,sizeof(wan_rtp_pkt_t)); + memset(pkt,0,sizeof(wan_rtp_pkt_t)); + pkt->rtp_hdr.version=2; + if (IS_T1_CARD(card)) { + pkt->rtp_hdr.pt=0; + } else { + pkt->rtp_hdr.pt=1; + } + } + + pkt = (wan_rtp_pkt_t*)wan_skb_data(skb); + + if (call_status == WAN_TDM_RTP_CALL_START) { + pkt->rtp_hdr.seq=0; + pkt->rtp_hdr.ts=0; + } + + buf=wan_skb_put(skb,len); + memcpy(buf,rx,len); + pkt->rtp_hdr.ts++; + + if (wan_skb_len(skb) >= card->u.aft.rtp_len || + call_status==WAN_TDM_RTP_CALL_STOP) { + netskb_t *nskb; + wan_ip_udp_setup(card, + card->u.aft.cfg.rtp_ip, + card->u.aft.cfg.rtp_port+chan->first_time_slot, + wan_skb_data(skb), + wan_skb_len(skb)-sizeof(wan_rtp_pkt_t)); + nskb=wan_skb_clone(skb); + if (nskb) { + nskb->next = nskb->prev = NULL; + nskb->dev = card->u.aft.rtp_dev; + nskb->protocol = htons(ETH_P_802_2); + nskb->mac.raw = wan_skb_data(nskb); + //nskb->nh.raw = wan_skb_data(nskb); + dev_queue_xmit(nskb); + } + wan_skb_trim(skb,sizeof(wan_rtp_pkt_t)); + pkt->rtp_hdr.seq++; + + #if 0 + /* Disable rtp (debugging) */ + card->u.aft.rtp_len=0; + #endif + + } +} +#endif +#endif + + +static int aft_find_master_if_and_dchan(sdla_t *card, int *master_if, u32 active_ch) +{ + int dchan_found=0; + int i; + + if (card->tdmv_conf.dchan) { + if (IS_E1_CARD(card) && !(WAN_FE_FRAME(&card->fe) == WAN_FR_UNFRAMED)) { + card->tdmv_conf.dchan = card->tdmv_conf.dchan << 1; + wan_clear_bit(0,&card->tdmv_conf.dchan); + } + } + + for (i=card->u.aft.num_of_time_slots-1;i>=0;i--){ + if (wan_test_bit(i,&active_ch)){ + + if (wan_test_bit(i,&card->tdmv_conf.dchan)){ + dchan_found=1; + card->u.aft.tdmv_dchan=i; + continue; + } + + /* Find the TOP timeslot. This timeslot will be + * considered MASTER since it is the last timeslot + * to rx data from the T1 line */ + if (*master_if < 0){ + *master_if=i; + } + } + } + + if (card->tdmv_conf.dchan && !dchan_found){ + /* We configured for dchan however, this interface + * was not configued with the DCHAN timeslot. + * It IS now possible that another interface has + * this time slot */ + for (i=card->u.aft.num_of_time_slots-1;i>=0;i--){ + if (wan_test_bit(i,&card->tdmv_conf.dchan)){ + dchan_found=1; + card->u.aft.tdmv_dchan=i; + wan_set_bit(i,&card->u.aft.tdmv_dchan_cfg_on_master); + continue; + } + } + + if (!dchan_found) { + DEBUG_EVENT("%s: Error: TDM DCHAN is out of range 0x%08X\n", + card->devname,card->tdmv_conf.dchan); + return -EINVAL; + } + + /* We have found a DCHAN outside the + Voice active channels */ + } + + return 0; } @@ -10652,7 +10886,7 @@ static int digital_loop_test(sdla_t* card,wan_udp_pkt_t* wan_udp_pkt) case TDM_VOICE: case TDM_VOICE_API: case TDM_VOICE_DCHAN: - if (card->u.aft.cfg.tdmv_dchan) { + if (card->u.aft.tdmv_dchan) { break; } else { DEBUG_EVENT("%s: Loop test failed: no dchan in TDMV mode!\n", diff --git a/patches/kdrivers/src/net/sdla_aft_te3.c b/patches/kdrivers/src/net/sdla_aft_te3.c index b229bf7..79c015c 100644 --- a/patches/kdrivers/src/net/sdla_aft_te3.c +++ b/patches/kdrivers/src/net/sdla_aft_te3.c @@ -301,7 +301,7 @@ static void port_set_state (sdla_t *card, int); static void disable_comm (sdla_t *card); /* Interrupt handlers */ -static void wp_aft_te3_isr (sdla_t* card); +static WAN_IRQ_RETVAL wp_aft_te3_isr (sdla_t* card); /* Bottom half handlers */ #if defined(__LINUX__) @@ -398,26 +398,24 @@ static void aft_list_tx_descriptors(private_area_t *chan); static void aft_free_tx_descriptors(private_area_t *chan); #if defined(__LINUX__) -static void aft_port_task (void * card_ptr); +# if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)) +static void aft_port_task (void * card_ptr); +# else +static void aft_port_task (struct work_struct *work); +# endif #else -static void aft_port_task (void * card_ptr, int arg); +static void aft_port_task (void * card_ptr, int arg); #endif #if 0 static void aft_fe_intr_ctrl(sdla_t *card, int status); #endif - static void __aft_fe_intr_ctrl(sdla_t *card, int status); static void aft_reset_rx_chain_cnt(private_area_t *chan); static void aft_reset_tx_chain_cnt(private_area_t *chan); static void aft_critical_shutdown (sdla_t *card); - -/* TE1 Control registers */ -//static WRITE_FRONT_END_REG_T write_front_end_reg; -//static READ_FRONT_END_REG_T read_front_end_reg; - /* Procfs functions */ static int wan_aft3_get_info(void* pcard, struct seq_file* m, int* stop_cnt); @@ -505,6 +503,10 @@ int wp_aft_te3_init (sdla_t* card, wandev_conf_t* conf) DEBUG_EVENT("%s: Total Mem %d\n",__FUNCTION__,wan_atomic_read(&wan_debug_mem)); #endif + if (card->adptr_subtype == AFT_SUBTYPE_SHARK) { + DEBUG_EVENT("%s: Starting SHARK T3/E3 Adapter!\n", + card->devname); + } /* Obtain hardware configuration parameters */ card->wandev.clocking = conf->clocking; @@ -529,8 +531,8 @@ int wp_aft_te3_init (sdla_t* card, wandev_conf_t* conf) card->fe.name = card->devname; card->fe.card = card; card->fe.write_cpld = write_cpld; - card->fe.write_fe_cpld = write_fe_cpld; - + card->fe.write_fe_cpld = write_fe_cpld; + // card->fe.read_cpld = read_cpld; card->fe.write_framer = write_framer; card->fe.read_framer = read_framer; @@ -1116,10 +1118,6 @@ static int del_if (wan_device_t* wandev, netdevice_t* dev) while ((skb=wan_skb_dequeue(&chan->wp_tx_free_list)) != NULL){ wan_skb_free(skb); } - while ((skb=wan_skb_dequeue(&chan->wp_tx_pending_list)) != NULL){ - wan_skb_free(skb); - } - if (chan->tx_realign_buf){ wan_free(chan->tx_realign_buf); @@ -1287,8 +1285,7 @@ static int if_open (netdevice_t* dev) * how long has the interface been up */ wan_getcurrenttime(&chan->router_start_time, NULL); - WAN_NETIF_STOP_QUEUE(dev); - WAN_NETIF_CARRIER_OFF(dev); + WAN_NETIF_START_QUEUE(dev); /* If FRONT End is down, it means that the DMA * is disabled. In this case don't try to @@ -1320,16 +1317,9 @@ static int if_open (netdevice_t* dev) } xilinx_dev_enable(card,chan); - wan_set_bit(0,&chan->up); - wan_spin_unlock_irq(&card->wandev.lock,&flags); - chan->ignore_modem=0x0F; - - /* Increment the module usage count */ - wanpipe_open(card); - - if (card->wandev.state == WAN_CONNECTED){ + if (card->wandev.state == WAN_CONNECTED){ /* If Front End is connected already set interface * state to Connected too */ set_chan_state(card, dev, WAN_CONNECTED); @@ -1339,8 +1329,15 @@ static int if_open (netdevice_t* dev) wan_wakeup_api(chan); }else if (chan->common.usedby == STACK){ wanpipe_lip_kick(chan,0); - } - } + } + } + + wan_spin_unlock_irq(&card->wandev.lock,&flags); + + chan->ignore_modem=0x0F; + + /* Increment the module usage count */ + wanpipe_open(card); protocol_start(card,dev); @@ -1441,10 +1438,9 @@ static void disable_comm (sdla_t *card) wan_spin_unlock_irq(&card->wandev.lock,&flags); WP_DELAY(10); + aft_te3_led_ctrl(card, WAN_AFT_RED, 0,WAN_AFT_ON); + aft_te3_led_ctrl(card, WAN_AFT_GREEN, 0, WAN_AFT_ON); - aft_te3_led_ctrl(card, WAN_AFT_RED, 1, WAN_AFT_ON); - aft_te3_led_ctrl(card, WAN_AFT_GREEN, 1,WAN_AFT_ON); - xilinx_t3_exar_chip_unconfigure(card); return; @@ -1608,8 +1604,7 @@ static int if_send(netdevice_t *dev, netskb_t *skb, struct sockaddr *dst,struct WAN_NETIF_START_QUEUE(dev); wan_skb_free(skb); wan_netif_set_ticks(dev, SYSTEM_TICKS); - return 0; - + return 0; }else { int err=0; @@ -1897,10 +1892,10 @@ static int xilinx_init_rx_dev_fifo(sdla_t *card, private_area_t *chan, unsigned /* Clean RX DMA fifo */ aft_reset_rx_chain_cnt(chan); - + card->hw_iface.bus_read_4(card->hw,AFT_TE3_CRNT_DMA_DESC_ADDR_REG,®); - cur_dma_ptr=get_current_rx_dma_ptr(reg); - + cur_dma_ptr=get_current_rx_dma_ptr(reg); + dma_descr=(unsigned long)(cur_dma_ptr<<4) + XILINX_RxDMA_DESCRIPTOR_HI; reg=0; wan_set_bit(INIT_DMA_FIFO_CMD_BIT,®); @@ -1946,8 +1941,8 @@ static int xilinx_init_tx_dev_fifo(sdla_t *card, private_area_t *chan, unsigned aft_reset_tx_chain_cnt(chan); - card->hw_iface.bus_read_4(card->hw,AFT_TE3_CRNT_DMA_DESC_ADDR_REG,®); - cur_dma_ptr=get_current_tx_dma_ptr(reg); + card->hw_iface.bus_read_4(card->hw,AFT_TE3_CRNT_DMA_DESC_ADDR_REG,®); + cur_dma_ptr=get_current_tx_dma_ptr(reg); /* Clean TX DMA fifo */ dma_descr=(unsigned long)(cur_dma_ptr<<4) + XILINX_TxDMA_DESCRIPTOR_HI; @@ -2338,7 +2333,7 @@ static void xilinx_rx_post_complete (sdla_t *card, private_area_t *chan, wan_skb_pull(skb, sizeof(wp_rx_element_t)); - if (len > aft_rx_copyback) { + if (len > aft_rx_copyback){ /* The rx size is big enough, thus * send this buffer up the stack * and allocate another one */ @@ -2346,7 +2341,7 @@ static void xilinx_rx_post_complete (sdla_t *card, private_area_t *chan, *new_skb=skb; aft_alloc_rx_dma_buff(card,chan,1); - } else { + }else{ /* The rx packet is very * small thus, allocate a new @@ -2524,10 +2519,12 @@ static void wp_bh (void* data, int dummy) memset(rx_hdr,0,sizeof(api_rx_hdr_t)); rx_hdr->error_flag=pkt_error; }else{ + int hroom=wan_skb_headroom(new_skb); + int rx_sz=sizeof(api_rx_hdr_t); DEBUG_EVENT("%s: Error Rx pkt headroom %i < %i\n", chan->if_name, - wan_skb_headroom(new_skb), - sizeof(api_rx_hdr_t)); + hroom, + rx_sz); ++chan->if_stats.rx_dropped; wan_skb_free(new_skb); continue; @@ -2754,16 +2751,17 @@ static void front_end_interrupt(sdla_t *card, unsigned long reg) * Determin the interrupt received and handle it. * */ -static void wp_aft_te3_isr (sdla_t* card) +static WAN_IRQ_RETVAL wp_aft_te3_isr (sdla_t* card) { int i; u32 reg; u32 dma_tx_reg,dma_rx_reg,rx_fifo_status=0,tx_fifo_status=0; private_area_t *chan; int skip_rx_wtd=0; + WAN_IRQ_RETVAL_DECL(irq_ret); if (wan_test_bit(CARD_DOWN,&card->wandev.critical)){ - return; + WAN_IRQ_RETURN(irq_ret); } wan_set_bit(0,&card->in_isr); @@ -2794,6 +2792,7 @@ static void wp_aft_te3_isr (sdla_t* card) } if (wan_test_bit(SECURITY_STATUS_FLAG,®)){ + WAN_IRQ_RETVAL_SET(irq_ret, WAN_IRQ_HANDLED); if (++card->u.aft.chip_security_cnt > AFT_MAX_CHIP_SECURITY_CNT){ @@ -2804,7 +2803,7 @@ static void wp_aft_te3_isr (sdla_t* card) } card->u.aft.chip_security_cnt=0; aft_critical_shutdown(card); - goto isr_end; + goto isr_end; #else DEBUG_EVENT("%s: Critical: Chip Security Compromised: Disabling Driver (%i)!\n", @@ -2812,6 +2811,7 @@ static void wp_aft_te3_isr (sdla_t* card) DEBUG_EVENT("%s: Please call Sangoma Tech Support (www.sangoma.com)!\n", card->devname); + aft_critical_shutdown(card); goto isr_end; #endif @@ -2827,6 +2827,7 @@ static void wp_aft_te3_isr (sdla_t* card) if (wan_test_bit(FRONT_END_INTR_ENABLE_BIT,®)){ if (wan_test_bit(FRONT_END_INTR_FLAG,®)){ + WAN_IRQ_RETVAL_SET(irq_ret, WAN_IRQ_HANDLED); #if defined(__LINUX__) wan_set_bit(AFT_FE_INTR,&card->u.aft.port_task_cmd); WAN_TASKQ_SCHEDULE((&card->u.aft.port_task)); @@ -2843,6 +2844,7 @@ static void wp_aft_te3_isr (sdla_t* card) * reconfigure */ if (wan_test_bit(ERROR_INTR_ENABLE_BIT,®)){ if (wan_test_bit(ERROR_INTR_FLAG,®)){ + WAN_IRQ_RETVAL_SET(irq_ret, WAN_IRQ_HANDLED); card->hw_iface.bus_read_4(card->hw,XILINX_HDLC_TX_INTR_PENDING_REG,&tx_fifo_status); card->hw_iface.bus_read_4(card->hw,XILINX_HDLC_RX_INTR_PENDING_REG,&rx_fifo_status); @@ -2864,6 +2866,8 @@ static void wp_aft_te3_isr (sdla_t* card) (wan_test_bit(DMA_INTR_FLAG,®) || rx_fifo_status)){ int num_of_logic_ch; + + WAN_IRQ_RETVAL_SET(irq_ret, WAN_IRQ_HANDLED); if (IS_TE3(&card->fe.fe_cfg)){ num_of_logic_ch=1; @@ -2967,6 +2971,7 @@ isr_skb_tx: DEBUG_ISR("---- ISR SKB TX end.-------------------\n"); if (wan_test_bit(AFT_TE3_TX_WDT_INTR_PND,®)){ + WAN_IRQ_RETVAL_SET(irq_ret, WAN_IRQ_HANDLED); aft_reset_tx_watchdog(card); chan=(private_area_t*)card->u.xilinx.dev_to_ch_map[0]; if (chan && wan_test_bit(0,&chan->up)){ @@ -2980,6 +2985,7 @@ isr_skb_tx: } if (wan_test_bit(AFT_TE3_RX_WDT_INTR_PND,®)){ + WAN_IRQ_RETVAL_SET(irq_ret, WAN_IRQ_HANDLED); aft_reset_rx_watchdog(card); chan=(private_area_t*)card->u.xilinx.dev_to_ch_map[0]; if (!skip_rx_wtd && chan && wan_test_bit(0,&chan->up)){ @@ -3007,7 +3013,7 @@ isr_skb_tx: isr_end: DEBUG_ISR("---- ISR end.-------------------\n"); wan_clear_bit(0,&card->in_isr); - return; + WAN_IRQ_RETURN(irq_ret); } @@ -3381,9 +3387,8 @@ static void handle_front_end_state(void *card_id) port_set_state(card,WAN_CONNECTED); card->u.xilinx.state_change_exit_isr=1; wan_set_bit(AFT_FE_LED,&card->u.aft.port_task_cmd); - }else{ } - }else{ + } else { if (card->wandev.state != WAN_DISCONNECTED){ port_set_state(card,WAN_DISCONNECTED); disable_data_error_intr(card,LINK_DOWN); @@ -3458,6 +3463,7 @@ static int write_cpld(void *pcard, unsigned short off,unsigned char data) return 0; } + static int write_fe_cpld(void *pcard, unsigned short off,unsigned char data) { sdla_t *card = (sdla_t*)pcard; @@ -4184,7 +4190,6 @@ static int xilinx_t3_exar_chip_configure(sdla_t *card) u32 reg,tmp; volatile unsigned char cnt=0; int err=0; - int i; DEBUG_CFG("T3 Exar Chip Configuration. -- \n"); @@ -4214,7 +4219,7 @@ static int xilinx_t3_exar_chip_configure(sdla_t *card) /* Disable the chip/hdlc reset condition */ wan_clear_bit(CHIP_RESET_BIT,®); wan_clear_bit(FRONT_END_RESET_BIT,®); - + /* Disable ALL chip interrupts */ wan_clear_bit(GLOBAL_INTR_ENABLE_BIT,®); wan_clear_bit(ERROR_INTR_ENABLE_BIT,®); @@ -4298,11 +4303,12 @@ static int xilinx_t3_exar_chip_configure(sdla_t *card) #else //FIXME: Alex to put in Exar T3/E3 Configuration - DEBUG_EVENT("%s: Config %s Front End: Clock=%s\n", + DEBUG_EVENT("%s: Config %s Front End: Clock=%s Type=0x%X\n", card->devname, FE_MEDIA_DECODE(&card->fe), (card->fe.fe_cfg.cfg.te3_cfg.clock == WAN_MASTER_CLK)? - "Master":"Normal"); + "Master":"Normal", + card->adptr_subtype); if (card->wandev.fe_iface.config){ err = card->wandev.fe_iface.config(&card->fe); @@ -4319,14 +4325,20 @@ static int xilinx_t3_exar_chip_configure(sdla_t *card) return -EINVAL; } #endif - for (i=0;i<10;i++){ + for (;;){ card->hw_iface.bus_read_4(card->hw,XILINX_CHIP_CFG_REG, ®); if (!wan_test_bit(HDLC_CORE_READY_FLAG_BIT,®)){ /* The HDLC Core is not ready! we have * an error. */ - err = -EINVAL; - WP_DELAY(500); + if (++cnt > 5){ + err = -EINVAL; + break; + }else{ + WP_DELAY(500); + /* FIXME: we cannot do this while in + * critical area */ + } }else{ err=0; break; @@ -4566,18 +4578,17 @@ static int write_framer(void *pcard, unsigned short framer_off,unsigned short fr framer_off &= ~BIT_DEV_ADDR_CLEAR; + DEBUG_TEST("WRITE FRAMER OFFSET=0x%02X DATA=0x%02X\n", + framer_off,framer_data); + card->hw_iface.bus_write_2(card->hw, 0x46, framer_off); - WP_DELAY(5); card->hw_iface.bus_write_2(card->hw, 0x44, framer_data); - - WP_DELAY(5); - - return 0; + return 0; } static unsigned int read_framer(void *pcard,unsigned short framer_off) @@ -4586,19 +4597,20 @@ static unsigned int read_framer(void *pcard,unsigned short framer_off) unsigned int framer_data; framer_off &= ~BIT_DEV_ADDR_CLEAR; + card->hw_iface.bus_write_2(card->hw, 0x46, framer_off); - WP_DELAY(5); card->hw_iface.bus_read_4(card->hw, 0x44, &framer_data); - WP_DELAY(5); - - return framer_data; + DEBUG_TEST("READ FRAMER OFFSET=0x%02X DATA=0x%02X\n", + framer_off,framer_data); + + return framer_data; } #if 0 @@ -4724,7 +4736,7 @@ static int aft_dma_chain_tx(aft_dma_chain_t *dma_chain,private_area_t *chan, int if (wan_test_bit(TxDMA_HI_DMA_GO_READY_BIT,®)){ DEBUG_EVENT("%s: Error: TxDMA GO Ready bit set on dma (chain=%i) Tx 0x%X\n", card->devname,dma_ch_indx,reg); - card->hw_iface.bus_write_4(card->hw,dma_descr,0); + card->hw_iface.bus_write_4(card->hw,dma_descr,0); return -EBUSY; } @@ -5136,15 +5148,15 @@ static int xilinx_dma_rx(sdla_t *card, private_area_t *chan, int gcur_ptr) } } - card->hw_iface.bus_read_4(card->hw,AFT_TE3_CRNT_DMA_DESC_ADDR_REG,®); - cur_dma_ptr=get_current_rx_dma_ptr(reg); - + card->hw_iface.bus_read_4(card->hw,AFT_TE3_CRNT_DMA_DESC_ADDR_REG,®); + cur_dma_ptr=get_current_rx_dma_ptr(reg); + if (chan->rx_chain_indx >= cur_dma_ptr){ max_dma_cnt = MAX_AFT_DMA_CHAINS - (chan->rx_chain_indx-cur_dma_ptr); }else{ max_dma_cnt = cur_dma_ptr - chan->rx_chain_indx; - } - + } + if (free_queue_len < max_dma_cnt){ #if 0 if (WAN_NET_RATELIMIT()){ @@ -5641,7 +5653,7 @@ static void aft_free_rx_descriptors(private_area_t *chan) reg=0; card->hw_iface.bus_write_4(card->hw,dma_descr,reg); - aft_rx_dma_chain_init(chan,&chan->rx_dma_chain_table[i]); + aft_rx_dma_chain_init(chan,&chan->rx_dma_chain_table[i]); dma_chain->skb=NULL; dma_chain->dma_addr=0; @@ -5657,24 +5669,7 @@ static void aft_free_rx_descriptors(private_area_t *chan) wan_skb_queue_len(&chan->wp_rx_complete_list), wan_skb_queue_len(&chan->wp_rx_free_list)); - aft_reset_rx_chain_cnt(chan); - -} - - -static void aft_reset_tx_chain_cnt(private_area_t *chan) -{ - u32 reg,cur_dma_ptr; - sdla_t *card=chan->card; - card->hw_iface.bus_read_4(card->hw,AFT_TE3_CRNT_DMA_DESC_ADDR_REG,®); - - if (chan->single_dma_chain){ - set_current_tx_dma_ptr(®,0); - } - - cur_dma_ptr=get_current_tx_dma_ptr(reg); - chan->tx_pending_chain_indx = chan->tx_chain_indx = cur_dma_ptr; - return; + aft_reset_rx_chain_cnt(chan); } static void aft_reset_rx_chain_cnt(private_area_t *chan) @@ -5690,8 +5685,24 @@ static void aft_reset_rx_chain_cnt(private_area_t *chan) cur_dma_ptr=get_current_rx_dma_ptr(reg); chan->rx_pending_chain_indx = chan->rx_chain_indx = cur_dma_ptr; return; -} - +} + +static void aft_reset_tx_chain_cnt(private_area_t *chan) +{ + u32 reg,cur_dma_ptr; + sdla_t *card=chan->card; + card->hw_iface.bus_read_4(card->hw,AFT_TE3_CRNT_DMA_DESC_ADDR_REG,®); + + if (chan->single_dma_chain){ + set_current_tx_dma_ptr(®,0); + cur_dma_ptr=0; + } + + cur_dma_ptr=get_current_tx_dma_ptr(reg); + + chan->tx_pending_chain_indx = chan->tx_chain_indx = cur_dma_ptr; + return; +} static void aft_free_tx_descriptors(private_area_t *chan) { @@ -5767,7 +5778,7 @@ static void aft_te3_led_ctrl(sdla_t *card, int color, int led_pos, int on) aft_te3_set_led(color, led_pos, on, ®); card->hw_iface.bus_write_4(card->hw,TE3_LOCAL_CONTROL_STATUS_REG,reg); } -} +} static void __aft_fe_intr_ctrl(sdla_t *card, int status) @@ -5796,12 +5807,20 @@ static void aft_fe_intr_ctrl(sdla_t *card, int status) #if defined(__LINUX__) +# if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)) static void aft_port_task (void * card_ptr) +# else +static void aft_port_task (struct work_struct *work) +# endif #else static void aft_port_task (void * card_ptr, int arg) #endif { +#if defined(__LINUX__) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)) + sdla_t *card = (sdla_t *)container_of(work, sdla_t, u.aft.port_task); +#else sdla_t *card = (sdla_t *)card_ptr; +#endif wan_smp_flag_t smp_flags,isr_flags; if (wan_test_bit(CARD_DOWN,&card->wandev.critical)){ @@ -5852,7 +5871,9 @@ static void aft_port_task (void * card_ptr, int arg) __aft_fe_intr_ctrl(card, 1); wan_spin_unlock_irq(&card->wandev.lock,&isr_flags); card->hw_iface.hw_unlock(card->hw,&smp_flags); - } + } + + } static void aft_critical_shutdown (sdla_t *card) @@ -5880,6 +5901,7 @@ static void aft_critical_shutdown (sdla_t *card) aft_te3_led_ctrl(card, WAN_AFT_RED, 1, WAN_AFT_ON); aft_te3_led_ctrl(card, WAN_AFT_GREEN, 1,WAN_AFT_OFF); + } #if 0 diff --git a/patches/kdrivers/src/net/sdla_atm.c b/patches/kdrivers/src/net/sdla_atm.c index b90b666..b0a2cc2 100644 --- a/patches/kdrivers/src/net/sdla_atm.c +++ b/patches/kdrivers/src/net/sdla_atm.c @@ -172,10 +172,14 @@ static int config_frmw (sdla_t *card); static void disable_comm (sdla_t *card); static void trigger_poll (struct net_device *); -static void frmw_poll (void *); +# if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)) +static void frmw_poll (void *arg); +# else +static void frmw_poll (struct work_struct *work); +# endif /* Interrupt handlers */ -static void wpatm_isr (sdla_t* card); +static WAN_IRQ_RETVAL wpatm_isr (sdla_t* card); static void rx_intr (sdla_t* card); static void tx_intr (sdla_t* card); static void timer_intr(sdla_t *); @@ -351,7 +355,7 @@ int wp_atm_init (sdla_t* card, wandev_conf_t* conf) }else if (IS_56K_MEDIA(&conf->fe_cfg)){ memcpy(&card->fe.fe_cfg, &conf->fe_cfg, sizeof(sdla_fe_cfg_t)); - sdla_56k_iface_init(&card->fe, &card->wandev.fe_iface); + sdla_56k_iface_init(&card->wandev.fe_iface); card->fe.name = card->devname; card->fe.card = card; card->fe.write_fe_reg = write_front_end_reg; @@ -895,7 +899,7 @@ static int new_if (wan_device_t* wandev, struct net_device* dev, wanif_conf_t* c * up and down. */ - WAN_TASKQ_INIT((&priv_area->poll_task),0,frmw_poll,dev); + WAN_TASKQ_INIT((&priv_area->poll_task),0,frmw_poll,priv_area); #if 0 /* Create interface file in proc fs. @@ -2421,13 +2425,13 @@ static void wp_handle_rx_packets(netskb_t *skb) * Determin the interrupt received and handle it. * */ -static void wpatm_isr (sdla_t* card) +static WAN_IRQ_RETVAL wpatm_isr (sdla_t* card) { SHARED_MEMORY_INFO_STRUCT flags; int i; if (!card->hw){ - return; + WAN_IRQ_RETURN(WAN_IRQ_HANDLED); } wan_set_bit(0,&card->in_isr); @@ -2497,7 +2501,7 @@ isr_done: wan_clear_bit(0,&card->in_isr); card->hw_iface.poke_byte(card->hw, card->intr_type_off, 0x00); - return; + WAN_IRQ_RETURN(WAN_IRQ_HANDLED); } @@ -3690,14 +3694,24 @@ static int config_frmw (sdla_t *card) * this task. */ -static void frmw_poll (void *dev_ptr) + +# if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)) +static void frmw_poll (void *arg) +# else +static void frmw_poll (struct work_struct *work) +# endif { - netdevice_t *dev=dev_ptr; - private_area_t *priv_area; + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)) + private_area_t* priv_area = (private_area_t*)container_of(work, private_area_t, poll_task); +#else + private_area_t* priv_area = (private_area_t*)arg; +#endif + netdevice_t *dev; sdla_t *card; u8 check_gateway=0; - if (!dev || (priv_area=dev->priv) == NULL){ + if (!priv_area || (dev=priv_area->dev) == NULL){ return; } @@ -3777,6 +3791,7 @@ static void frmw_poll (void *dev_ptr) * To execute tasks out of interrupt context. * */ + static void trigger_poll (struct net_device *dev) { private_area_t *priv_area; diff --git a/patches/kdrivers/src/net/sdla_bitstrm.c b/patches/kdrivers/src/net/sdla_bitstrm.c index eff1897..57ae9bd 100644 --- a/patches/kdrivers/src/net/sdla_bitstrm.c +++ b/patches/kdrivers/src/net/sdla_bitstrm.c @@ -285,7 +285,7 @@ static int bstrm_set_FE_config (sdla_t *card); /* Interrupt handlers */ -static void wpbit_isr (sdla_t* card); +static WAN_IRQ_RETVAL wpbit_isr (sdla_t* card); static void rx_intr (sdla_t* card); static void timer_intr(sdla_t *); @@ -501,7 +501,7 @@ int wpbit_init (sdla_t* card, wandev_conf_t* conf) }else if (IS_56K_MEDIA(&conf->fe_cfg)){ memcpy(&card->fe.fe_cfg, &conf->fe_cfg, sizeof(sdla_fe_cfg_t)); - sdla_56k_iface_init(&card->fe, &card->wandev.fe_iface); + sdla_56k_iface_init(&card->wandev.fe_iface); card->fe.name = card->devname; card->fe.card = card; card->fe.write_fe_reg = write_front_end_reg; @@ -3955,14 +3955,14 @@ static void encode_byte (bitstrm_private_area_t *chan, unsigned char *byte_ptr, /*============================================================================ * Cisco HDLC interrupt service routine. */ -static void wpbit_isr (sdla_t* card) +static WAN_IRQ_RETVAL wpbit_isr (sdla_t* card) { unsigned char intr_type = 0x00; GLOBAL_INFORMATION_STRUCT global_info; int i; if (!card->hw){ - return; + WAN_IRQ_RETURN(WAN_IRQ_HANDLED); } card->statistics.isr_entry++; @@ -4051,7 +4051,7 @@ isr_done: clear_bit(0,&card->in_isr); card->hw_iface.poke_byte(card->hw, card->intr_type_off, 0x00); - return; + WAN_IRQ_RETURN(WAN_IRQ_HANDLED); } /*============================================================================ diff --git a/patches/kdrivers/src/net/sdla_bscstrm.c b/patches/kdrivers/src/net/sdla_bscstrm.c index 4b4a607..a42acc2 100644 --- a/patches/kdrivers/src/net/sdla_bscstrm.c +++ b/patches/kdrivers/src/net/sdla_bscstrm.c @@ -128,7 +128,7 @@ static int bscstrm_configure (sdla_t* card, CONFIGURATION_STRUCT *cfg); static int bscstrm_read_config (sdla_t* card); static int bscstrm_enable_rx_isr (sdla_t* card); -static void wp_bscstrm_isr (sdla_t *card); +static WAN_IRQ_RETVAL wp_bscstrm_isr (sdla_t *card); static void port_set_state (sdla_t *card, int state); /****** Public Functions ****************************************************/ @@ -785,7 +785,7 @@ static int if_ioctl (netdevice_t *dev, struct ifreq *ifr, int cmd) -static void wp_bscstrm_isr (sdla_t *card) +static WAN_IRQ_RETVAL wp_bscstrm_isr (sdla_t *card) { netdevice_t *dev; bscstrm_private_area_t *bscstrm_priv_area; @@ -797,11 +797,11 @@ static void wp_bscstrm_isr (sdla_t *card) dev = WAN_DEVLE2DEV(WAN_LIST_FIRST(&card->wandev.dev_head)); if (!dev){ - return; + WAN_IRQ_RETURN(WAN_IRQ_HANDLED); } if ((bscstrm_priv_area = dev->priv) == NULL){ - return; + WAN_IRQ_RETURN(WAN_IRQ_HANDLED); } card->hw_iface.peek(card->hw, card->rxmb_off, mbox, sizeof(wan_cmd_t)); @@ -876,7 +876,7 @@ event_exit: } clear_bit(0,&card->wandev.critical); - return; + WAN_IRQ_RETURN(WAN_IRQ_HANDLED); } diff --git a/patches/kdrivers/src/net/sdla_chdlc.c b/patches/kdrivers/src/net/sdla_chdlc.c index e3f4de6..dac487f 100644 --- a/patches/kdrivers/src/net/sdla_chdlc.c +++ b/patches/kdrivers/src/net/sdla_chdlc.c @@ -149,7 +149,7 @@ typedef struct chdlc_private_area /* Polling task queue. Each interface * has its own task queue, which is used * to defer events from the interrupt */ - struct tq_struct poll_task; + wan_taskq_t poll_task; struct timer_list poll_delay_timer; u8 gateway; @@ -236,12 +236,16 @@ static int config_chdlc (sdla_t *card, netdevice_t *dev); static void disable_comm (sdla_t *card); static void trigger_chdlc_poll (netdevice_t *); -static void chdlc_poll (void *); static void chdlc_poll_delay (unsigned long dev_ptr); static int chdlc_calibrate_baud (sdla_t *card); static int chdlc_read_baud_calibration (sdla_t *card); +# if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)) +static void chdlc_poll (void *); +#else +static void chdlc_poll (struct work_struct *work); +#endif /* Miscellaneous asynchronous interface Functions */ @@ -249,7 +253,7 @@ static int set_asy_config (sdla_t* card); static int asy_comm_enable (sdla_t* card); /* Interrupt handlers */ -static void wpc_isr (sdla_t* card); +static WAN_IRQ_RETVAL wpc_isr (sdla_t* card); static void rx_intr (sdla_t* card); static void timer_intr(sdla_t *); @@ -466,7 +470,7 @@ int wpc_init (sdla_t* card, wandev_conf_t* conf) }else if (IS_56K_MEDIA(&conf->fe_cfg)){ memcpy(&card->fe.fe_cfg, &conf->fe_cfg, sizeof(sdla_fe_cfg_t)); - sdla_56k_iface_init(&card->fe, &card->wandev.fe_iface); + sdla_56k_iface_init(&card->wandev.fe_iface); card->fe.name = card->devname; card->fe.card = card; card->fe.write_fe_reg = write_front_end_reg; @@ -669,8 +673,16 @@ int wpc_init (sdla_t* card, wandev_conf_t* conf) } if ((card->tty_opt=conf->tty) == WANOPT_YES){ + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15) + printk (KERN_INFO "%s: Driver doesnt support tty for 2.6.15 kernels and above !\n", + card->devname); + return -EINVAL; +#endif + #if 1 //defined(LINUX_2_4) || defined(LINUX_2_1) + { int err; card->tty_minor = conf->tty_minor; @@ -683,6 +695,7 @@ int wpc_init (sdla_t* card, wandev_conf_t* conf) if (err){ return err; } + } #else printk (KERN_INFO "%s: Driver doesn support tty for 2.6.X kernel!\n", card->devname); @@ -1068,7 +1081,7 @@ static int new_if (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* conf) /* prepare network device data space for registration */ /* Initialize the polling task routine */ - INIT_WORK((&chdlc_priv_area->poll_task),chdlc_poll,dev); + WAN_TASKQ_INIT((&chdlc_priv_area->poll_task),0,chdlc_poll,dev); /* Initialize the polling delay timer */ init_timer(&chdlc_priv_area->poll_delay_timer); @@ -1906,9 +1919,6 @@ static int chdlc_comm_enable (sdla_t* card) int err; wan_mbox_t* mb = &card->wan_mbox; - DEBUG_EVENT("%s: Enabling comm!\n",card->devname); - - mb->wan_data_len = 0; mb->wan_command = ENABLE_CHDLC_COMMUNICATIONS; err = card->hw_iface.cmd(card->hw, card->mbox_off, mb); @@ -2227,7 +2237,7 @@ static void chdlc_bh (unsigned long data) /*============================================================================ * Cisco HDLC interrupt service routine. */ -static void wpc_isr (sdla_t* card) +static WAN_IRQ_RETVAL wpc_isr (sdla_t* card) { netdevice_t* dev; SHARED_MEMORY_INFO_STRUCT flags; @@ -2239,7 +2249,7 @@ static void wpc_isr (sdla_t* card) */ if (!card->hw){ - return; + WAN_IRQ_RETURN(WAN_IRQ_HANDLED); } card->hw_iface.peek(card->hw, card->flags_off, @@ -2276,7 +2286,7 @@ static void wpc_isr (sdla_t* card) card->devname); card->in_isr = 0; card->hw_iface.poke_byte(card->hw, card->intr_type_off, 0x00); - return; + WAN_IRQ_RETURN(WAN_IRQ_HANDLED); } } @@ -2375,7 +2385,7 @@ isr_done: card->in_isr = 0; card->hw_iface.poke_byte(card->hw, card->intr_type_off, 0x00); - return; + WAN_IRQ_RETURN(WAN_IRQ_HANDLED); } /*============================================================================ @@ -2752,21 +2762,6 @@ static int chdlc_calibrate_baud (sdla_t *card) { wan_mbox_t* mb = &card->wan_mbox; int err; - int enable_again=0; - sdla_t *tmp_card=NULL; - - if (card->wandev.connection == WANOPT_SWITCHED && - card->wandev.clocking == WANOPT_EXTERNAL && - card->next) { - tmp_card=card->next; - if (tmp_card->wandev.connection == WANOPT_SWITCHED && - tmp_card->wandev.clocking == WANOPT_EXTERNAL && - tmp_card->u.c.comm_enabled ) { - DEBUG_EVENT("%s: Next comm enabled -> disabling!\n",tmp_card->devname); - chdlc_comm_disable (tmp_card); - enable_again=1; - } - } mb->wan_data_len = 0; mb->wan_command = START_BAUD_CALIBRATION; @@ -2775,12 +2770,6 @@ static int chdlc_calibrate_baud (sdla_t *card) if (err != COMMAND_OK) chdlc_error (card, err, mb); - - if (enable_again && tmp_card) { - DEBUG_EVENT("%s: Next comm enabled -> re-enabling!\n",tmp_card->devname); - chdlc_comm_enable (tmp_card); - } - return err; } @@ -4355,17 +4344,32 @@ static int config_chdlc (sdla_t *card, netdevice_t *dev) * the chldc_poll routine. */ +# if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)) static void chdlc_poll (void *dev_ptr) +#else +static void chdlc_poll (struct work_struct *work) +#endif { - netdevice_t *dev=dev_ptr; - chdlc_private_area_t *chdlc_priv_area; sdla_t *card; u8 check_gateway=0; - SHARED_MEMORY_INFO_STRUCT flags; + SHARED_MEMORY_INFO_STRUCT flags; + +# if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)) + netdevice_t *dev; + chdlc_private_area_t *chdlc_priv_area = container_of(work, chdlc_private_area_t, poll_task); + dev = chdlc_priv_area->common.dev; + + if (!dev) { + return; + } +#else + netdevice_t *dev=dev_ptr; + chdlc_private_area_t *chdlc_priv_area; if (!dev || (chdlc_priv_area = wan_netif_priv(dev)) == NULL){ return; } +#endif card = chdlc_priv_area->card; card->hw_iface.peek(card->hw, card->flags_off, &flags, sizeof(flags)); @@ -4528,7 +4532,7 @@ static void trigger_chdlc_poll (netdevice_t *dev) if (test_bit(PERI_CRIT,&card->wandev.critical)){ return; } - wan_schedule_task(&chdlc_priv_area->poll_task); + WAN_TASKQ_SCHEDULE((&chdlc_priv_area->poll_task)); return; } @@ -4604,9 +4608,19 @@ static int wanpipe_tty_trigger_poll(sdla_t *card) return 0; } + + +# if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)) static void tty_poll_task (void* data) +#else +static void tty_poll_task (struct work_struct *work) +#endif { - sdla_t *card = (sdla_t*)data; +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)) + sdla_t *card = (sdla_t *)container_of(work, sdla_t, tty_task_queue); +#else + sdla_t *card = (sdla_t *)data; +#endif struct tty_struct *tty; struct sk_buff *skb; char fp=0; @@ -4909,8 +4923,10 @@ static void wanpipe_tty_receive(sdla_t *card, unsigned addr, unsigned int len) if (card->u.c.async_mode){ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15) +#if 0 unsigned char *buf; - struct sk_buff *skb; + struct sk_buff *skb; +#endif #if 1 # warning "FIXME: Compilation error on 2.6.15 kernel" @@ -5701,7 +5717,7 @@ int wanpipe_tty_init(sdla_t *card) state->icount.overrun = state->icount.brk = 0; state->irq = card->wandev.irq; - INIT_WORK(&card->tty_task_queue,tty_poll_task,card); + WAN_TASKQ_INIT((&card->tty_task_queue),0,tty_poll_task,card); return 0; } diff --git a/patches/kdrivers/src/net/sdla_fr.c b/patches/kdrivers/src/net/sdla_fr.c index 69b85aa..4cee216 100644 --- a/patches/kdrivers/src/net/sdla_fr.c +++ b/patches/kdrivers/src/net/sdla_fr.c @@ -253,7 +253,7 @@ typedef struct fr_channel /* Polling task queue. Each interface * has its own task queue, which is used * to defer events from the interrupt */ - struct tq_struct fr_poll_task; + wan_taskq_t fr_poll_task; struct timer_list fr_arp_timer; u32 ip_local; @@ -319,17 +319,17 @@ typedef struct fr_channel #define TMR_INT_ENABLED_UPDATE_DLCI 0x40 #define TMR_INT_ENABLED_TE 0x80 -#pragma pack(1) + typedef struct dlci_status { - unsigned short dlci ; - unsigned char state ; + unsigned short dlci PACKED; + unsigned char state PACKED; } dlci_status_t; typedef struct dlci_IB_mapping { - unsigned short dlci ; - unsigned long addr_value ; + unsigned short dlci PACKED; + unsigned long addr_value PACKED; } dlci_IB_mapping_t; /* This structure is used for DLCI list Tx interrupt mode. It is used to @@ -337,11 +337,10 @@ typedef struct dlci_IB_mapping */ typedef struct fr_dlci_interface { - unsigned char gen_interrupt ; - unsigned short packet_length ; - unsigned char reserved ; + unsigned char gen_interrupt PACKED; + unsigned short packet_length PACKED; + unsigned char reserved PACKED; } fr_dlci_interface_t; -#pragma pack() extern void disable_irq(unsigned int); extern void enable_irq(unsigned int); @@ -369,7 +368,7 @@ static struct net_device_stats *if_stats(netdevice_t *dev); /* Interrupt handlers */ -static void fr_isr(sdla_t *card); +static WAN_IRQ_RETVAL fr_isr(sdla_t *card); static void rx_intr(sdla_t *card); static void tx_intr(sdla_t *card); static void timer_intr(sdla_t *card); @@ -425,7 +424,12 @@ static int check_tx_status(sdla_t *, netdevice_t *); static void fr_bh (unsigned long data); static void trigger_fr_poll (netdevice_t *); -static void fr_poll (void *); + +# if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)) +static void fr_poll (void *card_ptr); +#else +static void fr_poll (struct work_struct *work); +#endif static void unconfig_fr_dev (sdla_t *card, netdevice_t *dev); @@ -578,7 +582,7 @@ int wpf_init(sdla_t *card, wandev_conf_t *conf) }else if (IS_56K_MEDIA(&conf->fe_cfg)) { memcpy(&card->fe.fe_cfg, &conf->fe_cfg, sizeof(sdla_fe_cfg_t)); - sdla_56k_iface_init(&card->fe, &card->wandev.fe_iface); + sdla_56k_iface_init(&card->wandev.fe_iface); card->fe.name = card->devname; card->fe.card = card; card->fe.write_fe_reg = write_front_end_reg; @@ -1249,7 +1253,7 @@ static int new_if (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* conf) } if (conf->network_number && chan->enable_IPX == WANOPT_YES){ - printk(KERN_INFO "%s:%s: IPX Network Address 0x%lX!\n", + printk(KERN_INFO "%s:%s: IPX Network Address 0x%X!\n", card->devname,chan->name,conf->network_number); chan->network_number = conf->network_number; }else{ @@ -1267,7 +1271,7 @@ static int new_if (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* conf) * interface. */ - INIT_WORK((&chan->fr_poll_task),fr_poll,dev); + WAN_TASKQ_INIT((&chan->fr_poll_task),0,fr_poll,dev); init_timer(&chan->fr_arp_timer); chan->fr_arp_timer.data=(unsigned long)dev; @@ -2395,7 +2399,7 @@ static struct net_device_stats *if_stats(netdevice_t *dev) * function check the interrupt type and takes * the appropriate action. */ -static void fr_isr (sdla_t* card) +static WAN_IRQ_RETVAL fr_isr (sdla_t* card) { int i,err; u8 intr_type; @@ -2403,7 +2407,7 @@ static void fr_isr (sdla_t* card) wan_mbox_t* mb = &card->wan_mbox; if (!card->hw){ - return; + WAN_IRQ_RETURN(WAN_IRQ_HANDLED); } card->hw_iface.peek(card->hw, card->flags_off, &flags, sizeof(flags)); @@ -2491,7 +2495,8 @@ fr_isr_exit: clear_bit(0,&card->in_isr); card->hw_iface.poke_byte(card->hw, card->intr_type_off, 0x00); - return; + + WAN_IRQ_RETURN(WAN_IRQ_HANDLED); } @@ -5695,7 +5700,8 @@ static void trigger_fr_poll (netdevice_t *dev) { fr_channel_t* chan = dev->priv; - wan_schedule_task(&chan->fr_poll_task); + + WAN_TASKQ_SCHEDULE((&chan->fr_poll_task)); return; } @@ -5722,15 +5728,30 @@ static void trigger_fr_poll (netdevice_t *dev) * the fr_poll routine. */ -static void fr_poll (void *dev_ptr) -{ - netdevice_t *dev=dev_ptr; - fr_channel_t* chan; - sdla_t *card; - u8 check_gateway=0; - if (!dev || (chan = dev->priv) == NULL) +# if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)) +static void fr_poll (void *dev_ptr) +#else +static void fr_poll (struct work_struct *work) +#endif +{ + sdla_t *card; + u8 check_gateway=0; + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)) + netdevice_t *dev; + fr_channel_t *chan = container_of(work, fr_channel_t, fr_poll_task); + dev=chan->common.dev; + if (!dev) { + return; + } +#else + fr_channel_t* chan; + netdevice_t *dev=(netdevice_t*)dev_ptr; + if (!dev || (chan = dev->priv) == NULL) { return; + } +#endif card = chan->card; diff --git a/patches/kdrivers/src/net/sdla_mp_fr.c b/patches/kdrivers/src/net/sdla_mp_fr.c index 8b8e63f..bf134b9 100644 --- a/patches/kdrivers/src/net/sdla_mp_fr.c +++ b/patches/kdrivers/src/net/sdla_mp_fr.c @@ -262,7 +262,7 @@ static int update_comms_stats(sdla_t* card); static void chan_set_state (netdevice_t *dev, int); /* Interrupt handlers */ -static void wp_hdlc_fr_isr (sdla_t* card); +static WAN_IRQ_RETVAL wp_hdlc_fr_isr (sdla_t* card); static void rx_intr (sdla_t* card); static void tx_intr (sdla_t *card); static void timer_intr(sdla_t *); @@ -456,7 +456,7 @@ int wp_hdlc_fr_init (sdla_t* card, wandev_conf_t* conf) #ifdef TE1_56_CARD_SUPPORT memcpy(&card->fe.fe_cfg, &conf->fe_cfg, sizeof(sdla_fe_cfg_t)); - sdla_56k_iface_init(&card->fe, &card->wandev.fe_iface); + sdla_56k_iface_init(&card->wandev.fe_iface); card->fe.name = card->devname; card->fe.card = card; card->fe.write_fe_reg = write_front_end_reg; @@ -1979,7 +1979,7 @@ static int hdlc_error (sdla_t *card, int err, wan_mbox_t *mb) /*============================================================================ * Cisco HDLC interrupt service routine. */ -STATIC void wp_hdlc_fr_isr (sdla_t* card) +STATIC WAN_IRQ_RETVAL wp_hdlc_fr_isr (sdla_t* card) { SHARED_MEMORY_INFO_STRUCT flags; int i; @@ -2080,6 +2080,7 @@ STATIC void wp_hdlc_fr_isr (sdla_t* card) isr_done: card->in_isr = 0; card->hw_iface.poke_byte(card->hw, card->intr_type_off, 0x00); + WAN_IRQ_RETURN(WAN_IRQ_HANDLED); } /*============================================================================ diff --git a/patches/kdrivers/src/net/sdla_ppp.c b/patches/kdrivers/src/net/sdla_ppp.c index 653f27f..dea4612 100644 --- a/patches/kdrivers/src/net/sdla_ppp.c +++ b/patches/kdrivers/src/net/sdla_ppp.c @@ -241,7 +241,7 @@ typedef struct ppp_private_area /* Polling task queue. Each interface * has its own task queue, which is used * to defer events from the interrupt */ - struct tq_struct poll_task; + wan_taskq_t poll_task; struct timer_list poll_delay_timer; u8 gateway; @@ -300,7 +300,7 @@ static int ppp_error(sdla_t *card, int err, wan_mbox_t *mb); static int set_adapter_config (sdla_t* card); -static void wpp_isr(sdla_t *card); +static WAN_IRQ_RETVAL wpp_isr(sdla_t *card); static void rx_intr(sdla_t *card); static void event_intr(sdla_t *card); static void timer_intr(sdla_t *card); @@ -329,10 +329,14 @@ static int chk_bcast_mcast_addr(sdla_t* card, netdevice_t* dev, struct sk_buff *skb); static int config_ppp (sdla_t *); -static void ppp_poll(void *); static void trigger_ppp_poll(netdevice_t *); static void ppp_poll_delay (unsigned long dev_ptr); +# if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)) +static void ppp_poll (void *card_ptr); +#else +static void ppp_poll (struct work_struct *work); +#endif static unsigned long Read_connection_info; static unsigned short available_buffer_space; @@ -450,7 +454,7 @@ int wpp_init(sdla_t *card, wandev_conf_t *conf) }else if (IS_56K_MEDIA(&conf->fe_cfg)){ memcpy(&card->fe.fe_cfg, &conf->fe_cfg, sizeof(sdla_fe_cfg_t)); - sdla_56k_iface_init(&card->fe, &card->wandev.fe_iface); + sdla_56k_iface_init(&card->wandev.fe_iface); card->fe.name = card->devname; card->fe.card = card; card->fe.write_fe_reg = write_front_end_reg; @@ -766,7 +770,7 @@ static int new_if(wan_device_t *wandev, netdevice_t *dev, wanif_conf_t *conf) } /* Initialize the polling task routine */ - INIT_WORK((&ppp_priv_area->poll_task),ppp_poll,dev); + WAN_TASKQ_INIT((&ppp_priv_area->poll_task),0,ppp_poll,dev); /* Initialize the polling delay timer */ init_timer(&ppp_priv_area->poll_delay_timer); @@ -1988,14 +1992,14 @@ static int ppp_error(sdla_t *card, int err, wan_mbox_t *mb) /*============================================================================ * PPP interrupt service routine. */ -static void wpp_isr (sdla_t *card) +static WAN_IRQ_RETVAL wpp_isr (sdla_t *card) { ppp_flags_t flags; netdevice_t *dev; int i; if (!card->hw){ - return; + WAN_IRQ_RETURN(WAN_IRQ_HANDLED); } set_bit(0,&card->in_isr); @@ -2069,7 +2073,7 @@ static void wpp_isr (sdla_t *card) wpp_isr_done: clear_bit(0,&card->in_isr); card->hw_iface.poke_byte(card->hw, card->intr_type_off, 0x00); - return; + WAN_IRQ_RETURN(WAN_IRQ_HANDLED); } /*============================================================================ @@ -3932,15 +3936,28 @@ static int config_ppp (sdla_t *card) * trigger_ppp_poll() function is used to kick * the ppp_poll routine. */ + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)) static void ppp_poll (void *dev_ptr) +#else +static void ppp_poll (struct work_struct *work) +#endif { - netdevice_t *dev=dev_ptr; - ppp_private_area_t *ppp_priv_area; sdla_t *card; u8 check_gateway=0; - +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)) + netdevice_t *dev; + ppp_private_area_t *ppp_priv_area = container_of(work, ppp_private_area_t, poll_task); + dev=ppp_priv_area->common.dev; + if (!dev) { + return; + } +#else + netdevice_t *dev=dev_ptr; + ppp_private_area_t *ppp_priv_area; if (!dev || (ppp_priv_area = dev->priv) == NULL) return; +#endif card = ppp_priv_area->card; @@ -4091,7 +4108,7 @@ static void trigger_ppp_poll (netdevice_t *dev) return; } - wan_schedule_task(&ppp_priv_area->poll_task); + WAN_TASKQ_SCHEDULE((&ppp_priv_area->poll_task)); } return; } diff --git a/patches/kdrivers/src/net/sdla_remora.c b/patches/kdrivers/src/net/sdla_remora.c index 557bcb9..3bac049 100644 --- a/patches/kdrivers/src/net/sdla_remora.c +++ b/patches/kdrivers/src/net/sdla_remora.c @@ -49,14 +49,14 @@ /******************************************************************************* ** DEFINES AND MACROS *******************************************************************************/ -//#if defined(__WINDOWS__) + #if 1 # define AFT_TDM_API_SUPPORT #else # undef AFT_TDM_API_SUPPORT #endif -#if 1 +#if 0 # define AFT_RM_INTR_SUPPORT #else # undef AFT_RM_INTR_SUPPORT @@ -74,9 +74,10 @@ #undef SPI2STEP /* TE1 critical flag */ -#define WP_RM_TIMER_RUNNING 0x01 -#define WP_RM_TIMER_KILL 0x02 -#define WP_RM_CONFIGURED 0x03 +#define WP_RM_TIMER_RUNNING 0x01 +#define WP_RM_TIMER_KILL 0x02 +#define WP_RM_CONFIGURED 0x03 +#define WP_RM_TIMER_EVENT_PENDING 0x04 #define WP_RM_POLL_TIMER 1000 #define WP_RM_POLL_EVENT_TIMER 10 @@ -88,11 +89,24 @@ enum { WP_RM_POLL_TONE_RING, WP_RM_POLL_TONE_CONGESTION, WP_RM_POLL_TONE_DONE, - WP_RM_POLL_RING, - WP_RM_POLL_RING_STOP, + //WP_RM_POLL_RING, + //WP_RM_POLL_RING_STOP, WP_RM_POLL_TDMV, WP_RM_POLL_EVENT, - WP_RM_POLL_INIT + WP_RM_POLL_INIT, + WP_RM_POLL_POWER, + WP_RM_POLL_LC, + WP_RM_POLL_RING_TRIP, + WP_RM_POLL_DTMF, + WP_RM_POLL_RING, + WP_RM_POLL_TONE, + WP_RM_POLL_TXSIG_KEWL, + WP_RM_POLL_TXSIG_START, + WP_RM_POLL_TXSIG_OFFHOOK, + WP_RM_POLL_TXSIG_ONHOOK, + WP_RM_POLL_ONHOOKTRANSFER, + WP_RM_POLL_SETPOLARITY, + WP_RM_POLL_RING_DETECT }; /* tone_struct DialTone @@ -340,12 +354,12 @@ int wp_init_voicedaa(sdla_fe_t *fe, int mod_no, int fast, int sane); static int wp_remora_config(void *pfe); static int wp_remora_unconfig(void *pfe); +static int wp_remora_post_init(void *pfe); static int wp_remora_if_config(void *pfe, u32 mod_map, u8); static int wp_remora_if_unconfig(void *pfe, u32 mod_map, u8); static int wp_remora_disable_irq(void *pfe); static int wp_remora_intr(sdla_fe_t *); static int wp_remora_check_intr(sdla_fe_t *); -static void wp_remora_enable_timer(sdla_fe_t*, int, unsigned char, unsigned int); static int wp_remora_polling(sdla_fe_t*); static int wp_remora_udp(sdla_fe_t*, void*, unsigned char*); static unsigned int wp_remora_active_map(sdla_fe_t* fe); @@ -354,6 +368,9 @@ static int wp_remora_set_dtmf(sdla_fe_t*, int, unsigned char); static int wp_remora_intr_ctrl(sdla_fe_t*, int, int, int, unsigned int); static int wp_remora_event_ctrl(sdla_fe_t*, wan_event_ctrl_t*); +static int sdla_rm_add_timer(sdla_fe_t*, unsigned long); +static int sdla_rm_add_event(sdla_fe_t*, sdla_fe_timer_event_t*); + #if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) static void wp_remora_timer(void*); #elif defined(__WINDOWS__) @@ -373,6 +390,7 @@ static int wp_remora_watchdog(sdla_fe_t *fe); static void wp_remora_voicedaa_check_hook(sdla_fe_t *fe, int mod_no); #endif + /******************************************************************************* ** FUNCTION DEFINITIONS *******************************************************************************/ @@ -806,7 +824,7 @@ int wp_init_proslic(sdla_fe_t *fe, int mod_no, int fast, int sane) /* Step 12 */ if (wp_powerup_proslic(fe, mod_no, fast)) { DEBUG_EVENT( - "%s: Module %d: Unable to do INITIAL ProSLIC powerup!\n", + "%s: Module %d: Unable to do FINAL ProSLIC powerup!\n", fe->name, mod_no); return -1; @@ -1010,9 +1028,10 @@ int wp_init_proslic(sdla_fe_t *fe, int mod_no, int fast, int sane) READ_RM_REG(mod_no, 83)*375/1000, __LINE__); -#if 0 +#if 0 /* verify TIP/RING voltage */ if (!fast){ + WRITE_RM_REG(mod_no, 8, 0x2); wait_just_a_bit(HZ, fast); start_ticks = SYSTEM_TICKS; while(READ_RM_REG(mod_no, 81) < 0x75){ @@ -1030,10 +1049,13 @@ int wp_init_proslic(sdla_fe_t *fe, int mod_no, int fast, int sane) mod_no, READ_RM_REG(mod_no, 81) * 375 / 1000); } + WRITE_RM_REG(mod_no, 8, 0x0); return -1; } + WRITE_RM_REG(mod_no, 8, 0x0); } #endif + DEBUG_RM("%s: Module %d: Current Battery1 %dV, Battery2 %dV (%d)\n", fe->name, mod_no, READ_RM_REG(mod_no, 82)*375/1000, @@ -1121,32 +1143,32 @@ int wp_init_voicedaa(sdla_fe_t *fe, int mod_no, int fast, int sane) /* Enable ISO-Cap */ WRITE_RM_REG(mod_no, 6, 0x00); -if (!fast) { - /* Wait 1000ms for ISO-cap to come up */ - start_ticks = SYSTEM_TICKS + 2*HZ; - while(!(READ_RM_REG(mod_no, 11) & 0xf0)){ - if (SYSTEM_TICKS > start_ticks){ - break; + if (!fast) { + /* Wait 1000ms for ISO-cap to come up */ + start_ticks = SYSTEM_TICKS + 2*HZ; + while(!(READ_RM_REG(mod_no, 11) & 0xf0)){ + if (SYSTEM_TICKS > start_ticks){ + break; + } + wait_just_a_bit(HZ/10, fast); } - wait_just_a_bit(HZ/10, fast); + + if (!(READ_RM_REG(mod_no, 11) & 0xf0)) { + DEBUG_EVENT( + "%s: Module %d: VoiceDAA did not bring up ISO link properly!\n", + fe->name, + mod_no); + return -1; + } + DEBUG_TEST("%s: Module %d: ISO-Cap is now up, line side: %02x rev %02x\n", + fe->name, + mod_no, + READ_RM_REG(mod_no, 11) >> 4, + (READ_RM_REG(mod_no, 13) >> 2) & 0xf); + } else { + WP_DELAY(10000); } - if (!(READ_RM_REG(mod_no, 11) & 0xf0)) { - DEBUG_EVENT( - "%s: Module %d: VoiceDAA did not bring up ISO link properly!\n", - fe->name, - mod_no); - return -1; - } - DEBUG_TEST("%s: Module %d: ISO-Cap is now up, line side: %02x rev %02x\n", - fe->name, - mod_no, - READ_RM_REG(mod_no, 11) >> 4, - (READ_RM_REG(mod_no, 13) >> 2) & 0xf); -} else { - WP_DELAY(10000); -} - /* Enable on-hook line monitor */ WRITE_RM_REG(mod_no, 5, 0x08); WRITE_RM_REG(mod_no, 3, 0x00); @@ -1180,6 +1202,7 @@ int wp_remora_iface_init(void *pfe_iface) fe_iface->config = &wp_remora_config; fe_iface->unconfig = &wp_remora_unconfig; + fe_iface->post_init = &wp_remora_post_init; fe_iface->if_config = &wp_remora_if_config; fe_iface->if_unconfig = &wp_remora_if_unconfig; fe_iface->active_map = &wp_remora_active_map; @@ -1254,6 +1277,9 @@ static int wp_remora_config(void *pfe) fe->rm_param.module_map = 0; fe->rm_param.intcount = 0; fe->rm_param.last_watchdog = SYSTEM_TICKS; + /*Event lock */ + WAN_LIST_INIT(&fe->event); + wan_spin_lock_init(&fe->lock); if (wp_remora_opermode(fe)){ return -EINVAL; @@ -1346,9 +1372,6 @@ retry_cfg: err_cnt = 0; #endif } -#if !defined(__WINDOWS__) - WAN_LIST_INIT(&fe->rm_param.mod[mod_no].event_head); -#endif } if (err_cnt){ @@ -1370,19 +1393,32 @@ retry_cfg: wan_set_bit(WP_RM_TIMER_KILL,(void*)&fe->rm_param.critical); wan_init_timer( - &fe->rm_param.timer, + &fe->timer, wp_remora_timer, (wan_timer_arg_t)fe); wan_clear_bit(WP_RM_TIMER_KILL,(void*)&fe->rm_param.critical); wan_clear_bit(WP_RM_TIMER_RUNNING,(void*)&fe->rm_param.critical); wan_set_bit(WP_RM_CONFIGURED,(void*)&fe->rm_param.critical); - + #if 0 - wp_remora_event_ctrl( - fe, 0, - WAN_RM_EVENT_DTMF|WAN_RM_EVENT_LC|WAN_RM_EVENT_RT, - WAN_RM_EVENT_ENABLE, 0x00); + { + sdla_fe_timer_event_t event; + event.type = WAN_EVENT_RM_DTMF; + event.mode = WAN_RM_EVENT_ENABLE; + event.rm_event.mod_no = 0; + sdla_rm_add_event(fe, &event); + + event.type = WAN_EVENT_RM_LC; + event.mode = WAN_RM_EVENT_ENABLE; + event.rm_event.mod_no = 0; + sdla_rm_add_event(fe, &event); + + event.type = WAN_EVENT_RM_DTMF; + event.mode = WAN_RM_EVENT_ENABLE; + event.rm_event.mod_no = 0; + sdla_rm_add_event(fe, &event); + } #endif return 0; @@ -1395,8 +1431,10 @@ retry_cfg: */ static int wp_remora_unconfig(void *pfe) { - sdla_fe_t *fe = (sdla_fe_t*)pfe; - int mod_no; + sdla_fe_t *fe = (sdla_fe_t*)pfe; + sdla_fe_timer_event_t *fe_event; + wan_smp_flag_t smp_flags; + int mod_no; DEBUG_EVENT("%s: Unconfiguring FXS/FXO Front End...\n", fe->name); @@ -1409,12 +1447,18 @@ static int wp_remora_unconfig(void *pfe) wan_set_bit(WP_RM_TIMER_KILL,(void*)&fe->rm_param.critical); if (wan_test_bit(WP_RM_TIMER_RUNNING,(void*)&fe->rm_param.critical)){ - wan_del_timer(&fe->rm_param.timer); + wan_del_timer(&fe->timer); } wan_clear_bit(WP_RM_TIMER_RUNNING,(void*)&fe->rm_param.critical); - fe->rm_param.timer_cmd = 0x00; - + wan_spin_lock_irq(&fe->lock,&smp_flags); + while(!WAN_LIST_EMPTY(&fe->event)){ + fe_event = WAN_LIST_FIRST(&fe->event); + WAN_LIST_REMOVE(fe_event, next); + if (fe_event) wan_free(fe_event); + } + wan_spin_unlock_irq(&fe->lock,&smp_flags); + for(mod_no = 0; mod_no < MAX_REMORA_MODULES; mod_no++){ if (wan_test_bit(mod_no, &fe->rm_param.module_map)) { wan_clear_bit(mod_no, &fe->rm_param.module_map); @@ -1423,6 +1467,19 @@ static int wp_remora_unconfig(void *pfe) return 0; } +/****************************************************************************** +** wp_remora_post_init() - +** +** OK +*/ +static int wp_remora_post_init(void *pfe) +{ + sdla_fe_t *fe = (sdla_fe_t*)pfe; + + DEBUG_EVENT("%s: Running post initialization...\n", fe->name); + return sdla_rm_add_timer(fe, HZ); +} + /****************************************************************************** ** wp_remora_if_config() - ** @@ -1431,15 +1488,18 @@ static int wp_remora_unconfig(void *pfe) static int wp_remora_if_config(void *pfe, u32 mod_map, u8 usedby) { sdla_fe_t *fe = (sdla_fe_t*)pfe; + +#if defined(AFT_RM_INTR_SUPPORT) int mod_no; +#endif if (!wan_test_bit(WP_RM_CONFIGURED,(void*)&fe->rm_param.critical)){ return -EINVAL; } -#if defined(AFT_RM_INTR_SUPPORT) - /* Enable remora interrupts (only for TDM_API) */ if (usedby == TDM_VOICE_API){ +#if defined(AFT_RM_INTR_SUPPORT) + /* Enable remora interrupts (only for TDM_API) */ for(mod_no = 0; mod_no < MAX_REMORA_MODULES; mod_no++){ if (!wan_test_bit(mod_no, &fe->rm_param.module_map) || !wan_test_bit(mod_no, &mod_map)){ @@ -1451,8 +1511,8 @@ static int wp_remora_if_config(void *pfe, u32 mod_map, u8 usedby) WAN_FE_INTR_ENABLE, 0x00); } +#endif } -#endif return 0; } @@ -1464,27 +1524,30 @@ static int wp_remora_if_config(void *pfe, u32 mod_map, u8 usedby) static int wp_remora_if_unconfig(void *pfe, u32 mod_map, u8 usedby) { sdla_fe_t *fe = (sdla_fe_t*)pfe; +#if defined(AFT_RM_INTR_SUPPORT) int mod_no; +#endif if (!wan_test_bit(WP_RM_CONFIGURED,(void*)&fe->rm_param.critical)){ return -EINVAL; } + if (usedby == TDM_VOICE_API){ #if defined(AFT_RM_INTR_SUPPORT) - for(mod_no = 0; mod_no < MAX_REMORA_MODULES; mod_no++){ - if (!wan_test_bit(mod_no, &fe->rm_param.module_map) || - !wan_test_bit(mod_no, &mod_map)){ - continue; + for(mod_no = 0; mod_no < MAX_REMORA_MODULES; mod_no++){ + if (!wan_test_bit(mod_no, &fe->rm_param.module_map) || + !wan_test_bit(mod_no, &mod_map)){ + continue; + } + wp_remora_intr_ctrl( fe, + mod_no, + WAN_RM_INTR_GLOBAL, + WAN_FE_INTR_MASK, + 0x00); } - wp_remora_intr_ctrl( fe, - mod_no, - WAN_RM_INTR_GLOBAL, - WAN_FE_INTR_MASK, - 0x00); - } #endif - return 0; - + } + return 0; } /****************************************************************************** @@ -1576,202 +1639,223 @@ static void wp_remora_timer(unsigned long pfe) sdla_fe_t *fe = (sdla_fe_t*)pfe; sdla_t *card = (sdla_t*)fe->card; wan_device_t *wandev = &card->wandev; + wan_smp_flag_t smp_flags; + int empty = 1; + DEBUG_RM("%s: RM timer!\n", fe->name); + if (wan_test_bit(WP_RM_TIMER_KILL,(void*)&fe->rm_param.critical)){ wan_clear_bit(WP_RM_TIMER_RUNNING,(void*)&fe->rm_param.critical); return; } - /*WAN_ASSERT1(wandev->fe_enable_timer == NULL); */ - DEBUG_TIMER("%s: RM timer!\n", fe->name); - /* Enable hardware interrupt for Analog */ - - if (wandev->fe_enable_timer){ - wandev->fe_enable_timer(fe->card); - }else{ - wp_remora_polling(fe); + if (!wan_test_bit(WP_RM_TIMER_RUNNING,(void*)&fe->rm_param.critical)){ + /* Somebody clear this bit */ + DEBUG_EVENT("WARNING: %s: Timer bit is cleared (should never happened)!\n", + fe->name); + return; } + wan_clear_bit(WP_RM_TIMER_RUNNING,(void*)&fe->rm_param.critical); + /* Enable hardware interrupt for TE1 */ + wan_spin_lock_irq(&fe->lock,&smp_flags); + empty = WAN_LIST_EMPTY(&fe->event); + wan_spin_unlock_irq(&fe->lock,&smp_flags); + + if (!empty){ + if (wan_test_and_set_bit(WP_RM_TIMER_EVENT_PENDING,(void*)&fe->rm_param.critical)){ + DEBUG_EVENT("%s: RM timer event is pending!\n", fe->name); + return; + } + if (wandev->fe_enable_timer){ + wandev->fe_enable_timer(fe->card); + }else{ + wp_remora_polling(fe); + } + }else{ + sdla_rm_add_timer(fe, 1000); + } return; } - /* ****************************************************************************** - * wp_remora_enable_timer() + * sdla_rm_add_timer() * * Description: Enable software timer interrupt in delay ms. * Arguments: * Returns: ****************************************************************************** */ -static void -wp_remora_enable_timer(sdla_fe_t* fe, int mod_no, unsigned char cmd, unsigned int delay) +static int sdla_rm_add_timer(sdla_fe_t* fe, unsigned long delay) { - sdla_t *card = (sdla_t*)fe->card; - - WAN_ASSERT1(card == NULL); - - DEBUG_TEST("%s: %s:%d Cmd=0x%X\n", - fe->name,__FUNCTION__,__LINE__,cmd); - -#if defined (__WINDOWS__) - { - int rc=SILENT; - /* make sure not called from ISR */ - VERIFY_DISPATCH_IRQL(rc); - if(rc){ - DEBUG_EVENT("%s(): Error: invalid IRQL! current irql: %d\n", - __FUNCTION__, KeGetCurrentIrql()); - return; - } - } -#endif - if (wan_test_bit(WP_RM_TIMER_KILL,(void*)&fe->rm_param.critical)){ - wan_clear_bit( - WP_RM_TIMER_RUNNING, - (void*)&fe->rm_param.critical); - return; - } + int err; - if (wan_test_bit(WP_RM_TIMER_RUNNING,(void*)&fe->rm_param.critical)){ - if (fe->rm_param.timer_cmd == cmd){ - /* Just ignore current request */ - return; - } - DEBUG_TEST("%s: WP_RM_TIMER_RUNNING: new_cmd=%X curr_cmd=%X\n", - fe->name, - cmd, - fe->rm_param.timer_cmd); - return; + DEBUG_RM("%s: Add new RM timer!\n", fe->name); + err = wan_add_timer(&fe->timer, delay * HZ / 1000); + if (err){ + /* Failed to add timer */ + return -EINVAL; } - wan_set_bit(WP_RM_TIMER_RUNNING,(void*)&fe->rm_param.critical); - - fe->rm_param.timer_cmd = cmd; - fe->rm_param.timer_mod_no = mod_no; - wan_add_timer(&fe->rm_param.timer, delay * HZ / 1000); - return; + return 0; } -static int wp_remora_polling_event(sdla_fe_t* fe, int mod_no) + +static int wp_remora_polling(sdla_fe_t* fe) { - wan_event_ctrl_t *ectrl; - -#if defined(__WINDOWS__) - ectrl = fe->rm_param.mod[mod_no].current_control_event_ptr; - if(ectrl == NULL){ - TDM_FUNC_DBG - return 0; - } -#else - if (WAN_LIST_EMPTY(&fe->rm_param.mod[mod_no].event_head)){ - return 0; - } - ectrl = WAN_LIST_FIRST(&fe->rm_param.mod[mod_no].event_head); - WAN_LIST_REMOVE(ectrl, next); +#if defined(CONFIG_PRODUCT_WANPIPE_TDM_VOICE) + sdla_t *card = (sdla_t*)fe->card; + int err = 0; #endif + sdla_fe_timer_event_t *fe_event; + wan_smp_flag_t smp_flags; + int pending = 0, mod_no = 0; + u8 imask; - DEBUG_EVENT("%s: Module %d: %s %s events!\n", + WAN_ASSERT(fe->write_fe_reg == NULL); + WAN_ASSERT(fe->read_fe_reg == NULL); + +#if 0 + DEBUG_EVENT("%s: %s:%d: ---------------START ----------------------\n", + fe->name, __FUNCTION__,__LINE__); + WARN_ON(1); + DEBUG_EVENT("%s: %s:%d: ---------------STOP ----------------------\n", + fe->name, __FUNCTION__,__LINE__); +#endif + wan_spin_lock_irq(&fe->lock,&smp_flags); + if (WAN_LIST_EMPTY(&fe->event)){ + wan_clear_bit(WP_RM_TIMER_EVENT_PENDING,(void*)&fe->rm_param.critical); + wan_spin_unlock_irq(&fe->lock,&smp_flags); + DEBUG_EVENT("%s: WARNING: No FE events in a queue!\n", + fe->name); + sdla_rm_add_timer(fe, HZ); + return 0; + } + fe_event = WAN_LIST_FIRST(&fe->event); + WAN_LIST_REMOVE(fe_event, next); + wan_spin_unlock_irq(&fe->lock,&smp_flags); + + mod_no = fe_event->rm_event.mod_no; + DEBUG_RM("%s: Module %d: RM Polling State=%s Cmd=0x%X!\n", fe->name, mod_no, - WAN_EVENT_MODE_DECODE(ectrl->mode), - WAN_EVENT_TYPE_DECODE(ectrl->type)); - if (fe->rm_param.mod[mod_no].type == MOD_TYPE_FXS){ - unsigned char imask; - - switch(ectrl->type){ - case WAN_EVENT_RM_POWER: - imask = READ_RM_REG(mod_no, 22); - if (ectrl->mode == WAN_EVENT_ENABLE){ - imask |= 0xFC; - wan_set_bit(WAN_RM_EVENT_POWER,&fe->rm_param.mod[mod_no].events); - }else{ - imask &= ~0xFC; - wan_clear_bit(WAN_RM_EVENT_POWER,&fe->rm_param.mod[mod_no].events); + fe->fe_status==FE_CONNECTED?"Con":"Disconn", + fe_event->type); + + switch(fe_event->type){ + case WP_RM_POLL_POWER: + imask = READ_RM_REG(mod_no, 22); + if (fe_event->mode == WAN_EVENT_ENABLE){ + imask |= 0xFC; + wan_set_bit(WAN_RM_EVENT_POWER, + &fe->rm_param.mod[mod_no].events); + }else{ + imask &= ~0xFC; + wan_clear_bit(WAN_RM_EVENT_POWER, + &fe->rm_param.mod[mod_no].events); + } + WRITE_RM_REG(mod_no, 22, imask); + break; + case WP_RM_POLL_LC: + imask = READ_RM_REG(mod_no, 22); + if (fe_event->mode == WAN_EVENT_ENABLE){ + imask |= 0x02; + wan_set_bit(WAN_RM_EVENT_LC, + &fe->rm_param.mod[mod_no].events); + }else{ + imask &= ~0x02; + wan_clear_bit(WAN_RM_EVENT_LC, + &fe->rm_param.mod[mod_no].events); + } + WRITE_RM_REG(mod_no, 22, imask); + break; + case WP_RM_POLL_RING_TRIP: + imask = READ_RM_REG(mod_no, 22); + if (fe_event->mode == WAN_EVENT_ENABLE){ + imask |= 0x01; + wan_set_bit(WAN_RM_EVENT_RING_TRIP, + &fe->rm_param.mod[mod_no].events); + }else{ + imask &= ~0x01; + wan_clear_bit(WAN_RM_EVENT_RING_TRIP, + &fe->rm_param.mod[mod_no].events); + } + WRITE_RM_REG(mod_no, 22, imask); + break; + case WP_RM_POLL_DTMF: + imask = READ_RM_REG(mod_no, 23); + if (fe_event->mode == WAN_EVENT_ENABLE){ + imask |= 0x01; + wan_set_bit(WAN_RM_EVENT_DTMF, + &fe->rm_param.mod[mod_no].events); + }else{ + imask &= ~0x01; + wan_clear_bit(WAN_RM_EVENT_DTMF, + &fe->rm_param.mod[mod_no].events); + } + WRITE_RM_REG(mod_no, 23, imask); + break; + case WP_RM_POLL_RING: + if (fe_event->mode == WAN_EVENT_ENABLE){ + WRITE_RM_REG(mod_no, 64, 0x04); + wan_set_bit(WAN_RM_EVENT_RING, + &fe->rm_param.mod[mod_no].events); + }else{ + WRITE_RM_REG(mod_no, 64, 0x01); + wan_clear_bit(WAN_RM_EVENT_RING, + &fe->rm_param.mod[mod_no].events); + } + break; + case WP_RM_POLL_TONE: + if (fe_event->mode == WAN_EVENT_ENABLE){ + DEBUG_EVENT("%s: Module %d: %s %s events (%d)!\n", + fe->name, mod_no, + WAN_EVENT_MODE_DECODE(fe_event->mode), + WAN_EVENT_TYPE_DECODE(fe_event->type), + fe_event->rm_event.tone); + switch(fe_event->rm_event.tone){ + case WAN_EVENT_TONE_DIAL: + wp_remora_dialtone(fe, mod_no); + break; + case WAN_EVENT_TONE_BUSY: + wp_remora_busytone(fe, mod_no); + break; + case WAN_EVENT_TONE_RING: + wp_remora_ringtone(fe, mod_no); + break; + case WAN_EVENT_TONE_CONGESTION: + wp_remora_congestiontone(fe, mod_no); + break; } - WRITE_RM_REG(mod_no, 22, imask); - break; - case WAN_EVENT_RM_LC: - imask = READ_RM_REG(mod_no, 22); - if (ectrl->mode == WAN_EVENT_ENABLE){ - imask |= 0x02; - wan_set_bit(WAN_RM_EVENT_LC, &fe->rm_param.mod[mod_no].events); - }else{ - imask &= ~0x02; - wan_clear_bit(WAN_RM_EVENT_LC, &fe->rm_param.mod[mod_no].events); - } - WRITE_RM_REG(mod_no, 22, imask); - break; - case WAN_EVENT_RM_RING_TRIP: - imask = READ_RM_REG(mod_no, 22); - if (ectrl->mode == WAN_EVENT_ENABLE){ - imask |= 0x01; - wan_set_bit(WAN_RM_EVENT_RING_TRIP, &fe->rm_param.mod[mod_no].events); - }else{ - imask &= ~0x01; - wan_clear_bit(WAN_RM_EVENT_RING_TRIP, &fe->rm_param.mod[mod_no].events); - } - WRITE_RM_REG(mod_no, 22, imask); - break; - case WAN_EVENT_RM_DTMF: - imask = READ_RM_REG(mod_no, 23); - if (ectrl->mode == WAN_EVENT_ENABLE){ - imask |= 0x01; - wan_set_bit(WAN_RM_EVENT_DTMF, &fe->rm_param.mod[mod_no].events); - }else{ - imask &= ~0x01; - wan_clear_bit(WAN_RM_EVENT_DTMF, &fe->rm_param.mod[mod_no].events); - } - WRITE_RM_REG(mod_no, 23, imask); - break; - case WAN_EVENT_RM_RING: - if (ectrl->mode == WAN_EVENT_ENABLE){ - WRITE_RM_REG(fe->rm_param.timer_mod_no, 64, 0x04); - wan_set_bit(WAN_RM_EVENT_RING, &fe->rm_param.mod[mod_no].events); - }else{ - WRITE_RM_REG(fe->rm_param.timer_mod_no, 64, 0x01); - wan_clear_bit(WAN_RM_EVENT_RING, &fe->rm_param.mod[mod_no].events); - } - break; - case WAN_EVENT_RM_TONE: - if (ectrl->mode == WAN_EVENT_ENABLE){ - DEBUG_EVENT("%s: Module %d: %s %s events (%d)!\n", - fe->name, mod_no, - WAN_EVENT_MODE_DECODE(ectrl->mode), - WAN_EVENT_TYPE_DECODE(ectrl->type), - ectrl->tone); - switch(ectrl->tone){ - case WAN_EVENT_TONE_DIAL: - wp_remora_dialtone(fe, mod_no); - break; - case WAN_EVENT_TONE_BUSY: - wp_remora_busytone(fe, mod_no); - break; - case WAN_EVENT_TONE_RING: - wp_remora_ringtone(fe, mod_no); - break; - case WAN_EVENT_TONE_CONGESTION: - wp_remora_congestiontone(fe, mod_no); - break; - } - wan_set_bit(WAN_RM_EVENT_TONE, &fe->rm_param.mod[mod_no].events); - }else{ - wp_remora_disabletone(fe, mod_no); - wan_clear_bit(WAN_RM_EVENT_TONE, &fe->rm_param.mod[mod_no].events); - } - break; - case WAN_EVENT_RM_TXSIG_KEWL: - fe->rm_param.mod[mod_no].u.fxs.lasttxhook = 0; - WRITE_RM_REG(mod_no, 64, fe->rm_param.mod[mod_no].u.fxs.lasttxhook); - break; - case WAN_EVENT_RM_TXSIG_START: + wan_set_bit(WAN_RM_EVENT_TONE, + &fe->rm_param.mod[mod_no].events); + }else{ + wp_remora_disabletone(fe, mod_no); + wan_clear_bit(WAN_RM_EVENT_TONE, + &fe->rm_param.mod[mod_no].events); + } + break; + case WP_RM_POLL_TXSIG_KEWL: + fe->rm_param.mod[mod_no].u.fxs.lasttxhook = 0; + WRITE_RM_REG(mod_no, 64, fe->rm_param.mod[mod_no].u.fxs.lasttxhook); + break; + case WP_RM_POLL_TXSIG_START: + if (fe->rm_param.mod[mod_no].type == MOD_TYPE_FXS){ DEBUG_RM("%s: Module %d: txsig START.\n", fe->name, mod_no); fe->rm_param.mod[mod_no].u.fxs.lasttxhook = 4; - WRITE_RM_REG(mod_no, 64, fe->rm_param.mod[mod_no].u.fxs.lasttxhook); - break; - case WAN_EVENT_RM_TXSIG_OFFHOOK: - DEBUG_RM("%s: Module %d: goes off-hook.\n", + WRITE_RM_REG(mod_no, 64, + fe->rm_param.mod[mod_no].u.fxs.lasttxhook); + }else if (fe->rm_param.mod[mod_no].type == MOD_TYPE_FXO){ + DEBUG_RM("%s: Module %d: goes off-hook.\n", fe->name, mod_no+1); + fe->rm_param.mod[mod_no].u.fxo.offhook = 1; + WRITE_RM_REG(mod_no, 5, 0x9); + } + break; + case WP_RM_POLL_TXSIG_OFFHOOK: + if (fe->rm_param.mod[mod_no].type == MOD_TYPE_FXS){ + DEBUG_RM("%s: Module %d: goes off-hook.\n", + fe->name, mod_no+1); switch(fe->rm_param.mod[mod_no].sig) { case WAN_RM_SIG_EM: fe->rm_param.mod[mod_no].u.fxs.lasttxhook = 5; @@ -1781,11 +1865,19 @@ static int wp_remora_polling_event(sdla_fe_t* fe, int mod_no) fe->rm_param.mod[mod_no].u.fxs.idletxhookstate; break; } - WRITE_RM_REG(mod_no, 64, fe->rm_param.mod[mod_no].u.fxs.lasttxhook); - break; - case WAN_EVENT_RM_TXSIG_ONHOOK: - DEBUG_RM("%s: Module %d: goes on-hook.\n", + WRITE_RM_REG(mod_no, 64, + fe->rm_param.mod[mod_no].u.fxs.lasttxhook); + }else if (fe->rm_param.mod[mod_no].type == MOD_TYPE_FXO){ + DEBUG_TDMV("%s: Module %d: goes off-hook.\n", fe->name, mod_no+1); + fe->rm_param.mod[mod_no].u.fxo.offhook = 1; + WRITE_RM_REG(mod_no, 5, 0x9); + } + break; + case WP_RM_POLL_TXSIG_ONHOOK: + if (fe->rm_param.mod[mod_no].type == MOD_TYPE_FXS){ + DEBUG_RM("%s: Module %d: goes on-hook.\n", + fe->name, mod_no+1); switch(fe->rm_param.mod[mod_no].sig) { case WAN_RM_SIG_EM: case WAN_RM_SIG_FXOKS: @@ -1797,121 +1889,73 @@ static int wp_remora_polling_event(sdla_fe_t* fe, int mod_no) fe->rm_param.mod[mod_no].u.fxs.lasttxhook = 3; break; } - WRITE_RM_REG(mod_no, 64, fe->rm_param.mod[mod_no].u.fxs.lasttxhook); - break; - case WAN_EVENT_RM_ONHOOKTRANSFER: - fe->rm_param.mod[mod_no].u.fxs.ohttimer = ectrl->ohttimer << 3; - if (fe->fe_cfg.cfg.remora.reversepolarity){ - /* OHT mode when idle */ - fe->rm_param.mod[mod_no].u.fxs.idletxhookstate = 0x6; - }else{ - fe->rm_param.mod[mod_no].u.fxs.idletxhookstate = 0x2; - } - if (fe->rm_param.mod[mod_no].u.fxs.lasttxhook == 0x1) { - /* Apply the change if appropriate */ - if (fe->fe_cfg.cfg.remora.reversepolarity){ - fe->rm_param.mod[mod_no].u.fxs.lasttxhook = 0x6; - }else{ - fe->rm_param.mod[mod_no].u.fxs.lasttxhook = 0x2; - } - WRITE_RM_REG(mod_no, 64, fe->rm_param.mod[mod_no].u.fxs.lasttxhook); - } - break; - case WAN_EVENT_RM_SETPOLARITY: - /* Can't change polarity while ringing or when open */ - if ((fe->rm_param.mod[mod_no].u.fxs.lasttxhook == 0x04) || - (fe->rm_param.mod[mod_no].u.fxs.lasttxhook == 0x00)){ - return -EINVAL; - } - - if ((ectrl->mode && !fe->fe_cfg.cfg.remora.reversepolarity) || - (!ectrl->mode && fe->fe_cfg.cfg.remora.reversepolarity)){ - fe->rm_param.mod[mod_no].u.fxs.lasttxhook |= 0x04; - }else{ - fe->rm_param.mod[mod_no].u.fxs.lasttxhook &= ~0x04; - } - WRITE_RM_REG(mod_no, 64, fe->rm_param.mod[mod_no].u.fxs.lasttxhook); - break; - - default: - DEBUG_RM("%s: Module %d: Unknown FXS event type %X.\n", - fe->name, mod_no, ectrl->type); - break; - } - DEBUG_RM("%s: INTR mask %02X %02X %02X\n", - fe->name, - READ_RM_REG(mod_no, 21), - READ_RM_REG(mod_no, 22), - READ_RM_REG(mod_no, 23)); -#if !defined(__WINDOWS__) - wan_free(ectrl); -#endif - }else if (fe->rm_param.mod[mod_no].type == MOD_TYPE_FXO){ - - unsigned char imask; - - switch(ectrl->type){ - case WAN_EVENT_RM_RING_DETECT: - imask = READ_RM_REG(mod_no, 3); - if (ectrl->mode == WAN_EVENT_ENABLE){ - imask |= 0x80; - wan_set_bit(WAN_RM_EVENT_RING_DETECT, &fe->rm_param.mod[mod_no].events); - }else{ - imask &= ~0x80; - wan_clear_bit(WAN_RM_EVENT_RING_DETECT, &fe->rm_param.mod[mod_no].events); - } - WRITE_RM_REG(mod_no, 3, imask); - break; - case WAN_EVENT_RM_TXSIG_START: - case WAN_EVENT_RM_TXSIG_OFFHOOK: - DEBUG_TDMV("%s: Module %d: goes off-hook.\n", - fe->name, mod_no+1); - fe->rm_param.mod[mod_no].u.fxo.offhook = 1; - WRITE_RM_REG(mod_no, 5, 0x9); - break; - case WAN_EVENT_RM_TXSIG_ONHOOK: - DEBUG_TDMV("%s: Module %d: goes on-hook.\n", + WRITE_RM_REG(mod_no, 64, + fe->rm_param.mod[mod_no].u.fxs.lasttxhook); + }else if (fe->rm_param.mod[mod_no].type == MOD_TYPE_FXO){ + DEBUG_RM("%s: Module %d: goes on-hook.\n", fe->name, mod_no+1); fe->rm_param.mod[mod_no].u.fxo.offhook = 0; WRITE_RM_REG(mod_no, 5, 0x8); - break; - default: - DEBUG_RM("%s: Module %d: Unknown FXO event type %X.\n", - fe->name, mod_no, ectrl->type); - break; } - } - -#if defined(__WINDOWS__) - //done with the event, reset the pointer. - fe->rm_param.mod[mod_no].current_control_event_ptr = NULL; -#endif - return 0; -} - - -static int wp_remora_polling(sdla_fe_t* fe) -{ -#if defined(CONFIG_PRODUCT_WANPIPE_TDM_VOICE) - sdla_t *card = (sdla_t*)fe->card; - int err = 0; -#endif - int mod_no = fe->rm_param.timer_mod_no; - - WAN_ASSERT(fe->write_fe_reg == NULL); - WAN_ASSERT(fe->read_fe_reg == NULL); - - DEBUG_RM("%s: RM Polling State=%s Cmd=0x%X!\n", - fe->name, fe->fe_status==FE_CONNECTED?"Con":"Disconn", - fe->rm_param.timer_cmd); - - wan_clear_bit(WP_RM_TIMER_RUNNING,(void*)&fe->rm_param.critical); - - switch(fe->rm_param.timer_cmd){ - - case WP_RM_POLL_EVENT: - wp_remora_polling_event(fe, mod_no); break; + case WP_RM_POLL_ONHOOKTRANSFER: + fe->rm_param.mod[mod_no].u.fxs.ohttimer = + fe_event->rm_event.ohttimer << 3; + if (fe->fe_cfg.cfg.remora.reversepolarity){ + /* OHT mode when idle */ + fe->rm_param.mod[mod_no].u.fxs.idletxhookstate = 0x6; + }else{ + fe->rm_param.mod[mod_no].u.fxs.idletxhookstate = 0x2; + } + if (fe->rm_param.mod[mod_no].u.fxs.lasttxhook == 0x1) { + /* Apply the change if appropriate */ + if (fe->fe_cfg.cfg.remora.reversepolarity){ + fe->rm_param.mod[mod_no].u.fxs.lasttxhook = 0x6; + }else{ + fe->rm_param.mod[mod_no].u.fxs.lasttxhook = 0x2; + } + WRITE_RM_REG(mod_no, 64, + fe->rm_param.mod[mod_no].u.fxs.lasttxhook); + } + break; + case WP_RM_POLL_SETPOLARITY: + /* Can't change polarity while ringing or when open */ + if ((fe->rm_param.mod[mod_no].u.fxs.lasttxhook == 0x04) || + (fe->rm_param.mod[mod_no].u.fxs.lasttxhook == 0x00)){ +#if defined(__WINDOWS__) + //done with the event, reset the pointer. + fe->rm_param.mod[mod_no].current_control_event_ptr = NULL; + + wan_spin_lock_irq(&card->wandev.lock,&smp_flags); + card->event_control_running = 0; + wan_spin_unlock_irq(&card->wandev.lock,&smp_flags); +#endif + return -EINVAL; + } + + if ((fe_event->mode && !fe->fe_cfg.cfg.remora.reversepolarity) || + (!fe_event->mode && fe->fe_cfg.cfg.remora.reversepolarity)){ + fe->rm_param.mod[mod_no].u.fxs.lasttxhook |= 0x04; + }else{ + fe->rm_param.mod[mod_no].u.fxs.lasttxhook &= ~0x04; + } + WRITE_RM_REG(mod_no, 64, fe->rm_param.mod[mod_no].u.fxs.lasttxhook); + break; + + case WP_RM_POLL_RING_DETECT: + imask = READ_RM_REG(mod_no, 3); + if (fe_event->mode == WAN_EVENT_ENABLE){ + imask |= 0x80; + wan_set_bit(WAN_RM_EVENT_RING_DETECT, + &fe->rm_param.mod[mod_no].events); + }else{ + imask &= ~0x80; + wan_clear_bit(WAN_RM_EVENT_RING_DETECT, + &fe->rm_param.mod[mod_no].events); + } + WRITE_RM_REG(mod_no, 3, imask); + break; + #if defined(CONFIG_PRODUCT_WANPIPE_TDM_VOICE) case WP_RM_POLL_TDMV: #if defined(__WINDOWS__) @@ -1923,12 +1967,185 @@ static int wp_remora_polling(sdla_fe_t* fe) break; #endif case WP_RM_POLL_INIT: - wp_init_proslic(fe, mod_no, 1, 1); + wp_init_proslic(fe, fe_event->rm_event.mod_no, 1, 1); + break; + default: + DEBUG_EVENT("ERROR: %s: Invalid poll event type %X!\n", + fe->name, fe_event->type); break; } + +#if defined(__WINDOWS__) + //done with the event, reset the pointer. + fe->rm_param.mod[mod_no].current_control_event_ptr = NULL; + + wan_spin_lock_irq(&card->wandev.lock,&smp_flags); + card->event_control_running = 0; + wan_spin_unlock_irq(&card->wandev.lock,&smp_flags); +#endif + + /* Add new event */ + if (pending){ + sdla_rm_add_event(fe, fe_event); + } + wan_clear_bit(WP_RM_TIMER_EVENT_PENDING,(void*)&fe->rm_param.critical); + if (fe_event) wan_free(fe_event); + + /* Add fe timer */ + fe_event = WAN_LIST_FIRST(&fe->event); + if (fe_event){ + sdla_rm_add_timer(fe, fe_event->delay); + }else{ + sdla_rm_add_timer(fe, HZ); + } return 0; } +/* + ****************************************************************************** + * sdla_rm_add_event() + * + * Description: Enable software timer interrupt in delay ms. + * Arguments: + * Returns: + ****************************************************************************** + */ +static int +sdla_rm_add_event(sdla_fe_t *fe, sdla_fe_timer_event_t *fe_event) +{ + sdla_t *card = (sdla_t*)fe->card; + sdla_fe_timer_event_t *event = NULL; + wan_smp_flag_t smp_flags; + + WAN_ASSERT_RC(card == NULL, -EINVAL); + + DEBUG_RM("%s: Remora Event=0x%X\n", + fe->name,fe_event->type); + + /* Creating event timer */ + event = wan_malloc(sizeof(sdla_fe_timer_event_t)); + if (event == NULL){ + DEBUG_EVENT( + "%s: Failed to allocate memory for timer event!\n", + fe->name); + return -EINVAL; + } + + memcpy(event, fe_event, sizeof(sdla_fe_timer_event_t)); + +#if 0 + DEBUG_EVENT("%s: %s:%d: ---------------START ----------------------\n", + fe->name, __FUNCTION__,__LINE__); + WARN_ON(1); + DEBUG_EVENT("%s: %s:%d: ---------------STOP ----------------------\n", + fe->name, __FUNCTION__,__LINE__); +#endif + wan_spin_lock_irq(&fe->lock,&smp_flags); + if (WAN_LIST_EMPTY(&fe->event)){ + WAN_LIST_INSERT_HEAD(&fe->event, event, next); + }else{ + sdla_fe_timer_event_t *tmp; + WAN_LIST_FOREACH(tmp, &fe->event, next){ + if (!WAN_LIST_NEXT(tmp, next)) break; + } + if (tmp == NULL){ + DEBUG_EVENT("%s: Internal Error!!!\n", fe->name); + wan_spin_unlock_irq(&fe->lock, &smp_flags); + return -EINVAL; + } + WAN_LIST_INSERT_AFTER(tmp, event, next); + } + wan_spin_unlock_irq(&fe->lock, &smp_flags); + return 0; +} + + +/****************************************************************************** +* wp_remora_event_ctrl() +* +* Description: Enable/Disable event types +* Arguments: mod_no - Module number (1,2,3,... MAX_REMORA_MODULES) +* Returns: +******************************************************************************/ +static int +wp_remora_event_ctrl(sdla_fe_t *fe, wan_event_ctrl_t *ectrl) +{ + sdla_fe_timer_event_t fe_event; + int mod_no, err = 0; + + WAN_ASSERT(ectrl == NULL); + mod_no = ectrl->mod_no; + + if (mod_no >= MAX_REMORA_MODULES){ + DEBUG_EVENT("%s: Module %d: Module number is out of range!\n", + fe->name, mod_no); + return -EINVAL; + } + if (!wan_test_bit(mod_no, &fe->rm_param.module_map)) { + DEBUG_EVENT("%s: Module %d: Unconfigured module!\n", + fe->name, mod_no); + return -EINVAL; + } + + DEBUG_RM("%s: Module %d: Scheduling %s event type!\n", + fe->name, mod_no, + WAN_EVENT_TYPE_DECODE(ectrl->type)); + + fe_event.mode = ectrl->mode; + fe_event.rm_event.mod_no= ectrl->mod_no; + switch(ectrl->type){ + case WAN_EVENT_RM_POWER: + fe_event.type = WP_RM_POLL_POWER; + break; + case WAN_EVENT_RM_LC: + fe_event.type = WP_RM_POLL_LC; + break; + case WAN_EVENT_RM_RING_TRIP: + fe_event.type = WP_RM_POLL_RING_TRIP; + break; + case WAN_EVENT_RM_DTMF: + fe_event.type = WP_RM_POLL_DTMF; + break; + case WAN_EVENT_RM_RING: + fe_event.type = WP_RM_POLL_RING; + break; + case WAN_EVENT_RM_TONE: + fe_event.type = WP_RM_POLL_TONE; + fe_event.rm_event.tone = ectrl->tone; + break; + case WAN_EVENT_RM_TXSIG_KEWL: + fe_event.type = WP_RM_POLL_TXSIG_KEWL; + break; + case WAN_EVENT_RM_TXSIG_START: /* FXS/FXO */ + fe_event.type = WP_RM_POLL_TXSIG_START; + break; + case WAN_EVENT_RM_TXSIG_OFFHOOK: /* FXS/FXO */ + fe_event.type = WP_RM_POLL_TXSIG_OFFHOOK; + break; + case WAN_EVENT_RM_TXSIG_ONHOOK: /* FXS/FXO */ + fe_event.type = WP_RM_POLL_TXSIG_ONHOOK; + break; + case WAN_EVENT_RM_ONHOOKTRANSFER: + fe_event.type = WP_RM_POLL_ONHOOKTRANSFER; + fe_event.rm_event.ohttimer= ectrl->ohttimer; + break; + case WAN_EVENT_RM_SETPOLARITY: + fe_event.type = WP_RM_POLL_SETPOLARITY; + break; + case WAN_EVENT_RM_RING_DETECT: + fe_event.type = WP_RM_POLL_RING_DETECT; + break; + default: + DEBUG_EVENT("%s: Module %d: Invalid wan event type %X\n", + fe->name,mod_no, + ectrl->type); + return -EINVAL; + } + + err = sdla_rm_add_event(fe, &fe_event); + return err; +} + static int wp_remora_dialtone(sdla_fe_t *fe, int mod_no) { @@ -2081,9 +2298,6 @@ static int wp_remora_stats_voltage(sdla_fe_t* fe, unsigned char *data) int mod_no = 0; mod_no = rm_udp->mod_no; - - - if (fe->rm_param.mod[mod_no].type == MOD_TYPE_FXS){ rm_udp->type = MOD_TYPE_FXS; rm_udp->u.stats.tip_volt = READ_RM_REG(mod_no, 80); @@ -2141,6 +2355,33 @@ static int wp_remora_udp(sdla_fe_t *fe, void* p_udp_cmd, unsigned char* data) case WAN_FE_STATS: err = wp_remora_stats_voltage(fe, data); +#if 0 + /* verify TIP/RING voltage */ + if (!fast){ + WRITE_RM_REG(mod_no, 8, 0x2); + wait_just_a_bit(HZ, fast); + start_ticks = SYSTEM_TICKS; + while(READ_RM_REG(mod_no, 81) < 0x75){ + if ((SYSTEM_TICKS - start_ticks) > HZ*10){ + break; + } + wait_just_a_bit(HZ, fast); + } + wait_just_a_bit(HZ, fast); + if (READ_RM_REG(mod_no, 81) < 0x75){ + if (sane){ + DEBUG_EVENT( + "%s: Module %d: TIP/RING is too low on FXS %d!\n", + fe->name, + mod_no, + READ_RM_REG(mod_no, 81) * 375 / 1000); + } + WRITE_RM_REG(mod_no, 8, 0x0); + return -1; + } + WRITE_RM_REG(mod_no, 8, 0x0); + } +#endif if (err){ udp_cmd->wan_cmd_return_code = WAN_CMD_OK; udp_cmd->wan_cmd_data_len = (unsigned short)err; @@ -2149,11 +2390,13 @@ static int wp_remora_udp(sdla_fe_t *fe, void* p_udp_cmd, unsigned char* data) case WAN_FE_SET_DEBUG_MODE: fe_debug = (sdla_fe_debug_t*)&data[0]; +#if 0 switch(fe_debug->type){ case WAN_FE_DEBUG_VOLTAGE: /* FIXME: Add code */ break; } +#endif break; default: @@ -2165,79 +2408,22 @@ static int wp_remora_udp(sdla_fe_t *fe, void* p_udp_cmd, unsigned char* data) } -/****************************************************************************** -* wp_remora_event_ctrl() -* -* Description: Enable/Disable event types -* Arguments: mod_no - Module number (1,2,3,... MAX_REMORA_MODULES) -* Returns: -******************************************************************************/ -//wp_remora_event_ctrl(sdla_fe_t *fe, int mod_no, int etype, int mode, unsigned long ts_map) -static int -wp_remora_event_ctrl(sdla_fe_t *fe, wan_event_ctrl_t *ectrl) -{ - int mod_no, err = 0; - - WAN_ASSERT(ectrl == NULL); - mod_no = ectrl->mod_no; - - if (mod_no >= MAX_REMORA_MODULES){ - DEBUG_EVENT("%s: Module %d: Module number is out of range!\n", - fe->name, mod_no); -#if !defined(__WINDOWS__) - wan_free(ectrl); -#endif - return -EINVAL; - } - if (!wan_test_bit(mod_no, &fe->rm_param.module_map)) { - DEBUG_EVENT("%s: Module %d: Unconfigured module!\n", - fe->name, mod_no); -#if !defined(__WINDOWS__) - wan_free(ectrl); -#endif - return -EINVAL; - } - - DEBUG_RM("%s: Module %d: Scheduling %s event type!\n", - fe->name, mod_no, - WAN_EVENT_TYPE_DECODE(ectrl->type)); - -#if defined(__WINDOWS__) - TDM_FUNC_DBG - if( fe->rm_param.mod[mod_no].current_control_event_ptr != NULL){ - TDM_FUNC_DBG - return -EBUSY; - } - fe->rm_param.mod[mod_no].current_control_event_ptr = - &fe->rm_param.mod[mod_no].current_control_event; - memcpy( fe->rm_param.mod[mod_no].current_control_event_ptr, - ectrl, - sizeof(wan_event_ctrl_t)); -#else - if (WAN_LIST_EMPTY(&fe->rm_param.mod[mod_no].event_head)){ - WAN_LIST_INSERT_HEAD(&fe->rm_param.mod[mod_no].event_head, ectrl, next); - }else{ - wan_free(ectrl); - return -EBUSY; - } -#endif - wp_remora_enable_timer(fe, mod_no, WP_RM_POLL_EVENT, WP_RM_POLL_EVENT_TIMER); - return err; -} - - static int wp_init_proslic_recheck_sanity(sdla_fe_t *fe, int mod_no) { int res; - + res = READ_RM_REG(mod_no, 64); if (!res && (res != fe->rm_param.mod[mod_no].u.fxs.lasttxhook)) { res = READ_RM_REG(mod_no, 8); if (res) { + sdla_fe_timer_event_t event; DEBUG_EVENT( "%s: Module %d: Ouch, part reset, quickly restoring reality\n", fe->name, mod_no); - wp_remora_enable_timer(fe, mod_no, WP_RM_POLL_INIT, WP_RM_POLL_TIMER); + event.type = WP_RM_POLL_INIT; + event.delay = WP_RM_POLL_TIMER; + event.rm_event.mod_no = mod_no; + sdla_rm_add_event(fe, &event); return 1; //wp_init_proslic(fe, mod_no, 1, 1); } else { @@ -2458,6 +2644,7 @@ static void wp_remora_voicedaa_check_hook(sdla_fe_t *fe, int mod_no) } #endif +#if 0 #if !defined(AFT_RM_INTR_SUPPORT) static void wp_remora_proslic_check_hook(sdla_fe_t *fe, int mod_no) { @@ -2532,6 +2719,7 @@ static void wp_remora_proslic_check_hook(sdla_fe_t *fe, int mod_no) fe->rm_param.mod[mod_no].u.fxs.lastrxhook = hook; } #endif +#endif #if defined(AFT_TDM_API_SUPPORT) /****************************************************************************** @@ -2617,7 +2805,7 @@ static int wp_remora_watchdog(sdla_fe_t *fe) wp_remora_voicedaa_check_hook(fe, mod_no); } } -#if defined(AFT_RM_INTR_SUPPORT) && defined(AFT_RM_VIRTUAL_INTR_SUPPORT) +#if defined(AFT_RM_VIRTUAL_INTR_SUPPORT) if (wp_remora_check_intr(fe)){ wp_remora_intr(fe); } @@ -2696,20 +2884,25 @@ wp_remora_intr_ctrl(sdla_fe_t *fe, int mod_no, int type, int mode, unsigned int static int wp_remora_check_intr_fxs(sdla_fe_t *fe, int mod_no) { unsigned char stat1 = 0x0, stat2 = 0x00, stat3 = 0x00; - + #if 1 if (wp_init_proslic_recheck_sanity(fe, mod_no)){ return 0; } #else if (__READ_RM_REG(mod_no, 8)){ + sdla_fe_timer_event_t event; + int err = 0; DEBUG_EVENT( "%s: Module %d: Oops, part reset, quickly restoring reality\n", fe->name, mod_no); #if 0 wp_init_proslic(fe, mod_no, 1, 1); #else - wp_remora_enable_timer(fe, mod_no, WP_RM_POLL_INIT, WP_RM_POLL_TIMER); + event.type = WP_RM_POLL_INIT; + event.delay = WP_RM_POLL_TIMER; + event.rm_event.mod_no = mod_no; + sdla_rm_add_event(fe, &event); #endif return 0; } @@ -2840,13 +3033,13 @@ static int wp_remora_intr_fxs(sdla_fe_t *fe, int mod_no) event.channel = mod_no+1; if (status & 0x01){ DEBUG_RM( - "%s: Module %d: Off-hook status!\n", + "RM: %s: Module %d: Off-hook status!\n", fe->name, mod_no); fe->rm_param.mod[mod_no].u.fxs.oldrxhook = 1; event.rxhook = WAN_EVENT_RXHOOK_OFF; }else/* if (fe->rm_param.mod[mod_no].u.fxs.oldrxhook)*/{ DEBUG_RM( - "%s: Module %d: On-hook status!\n", + "RM: %s: Module %d: On-hook status!\n", fe->name, mod_no); fe->rm_param.mod[mod_no].u.fxs.oldrxhook = 0; event.rxhook = WAN_EVENT_RXHOOK_ON; @@ -2979,3 +3172,4 @@ static int wp_remora_intr(sdla_fe_t *fe) return 0; } + diff --git a/patches/kdrivers/src/net/sdla_remora_tdmv.c b/patches/kdrivers/src/net/sdla_remora_tdmv.c index c2e3944..b2ad1b2 100644 --- a/patches/kdrivers/src/net/sdla_remora_tdmv.c +++ b/patches/kdrivers/src/net/sdla_remora_tdmv.c @@ -144,7 +144,19 @@ typedef struct wp_tdmv_remora_ { u16 max_timeslots; /* up to MAX_REMORA_MODULES */ int max_rxtx_len; int channelized; + unsigned char hwec; unsigned long echo_off_map; + int rxsig_state[MAX_REMORA_MODULES]; + int txsig_state[MAX_REMORA_MODULES]; /* not used */ + + int battdebounce; + int battthresh; + + u_int8_t dtmfsupport; + unsigned int dtmfactive; + unsigned int dtmfmask; + unsigned int dtmfmutemask; + } wp_tdmv_remora_t; /******************************************************************************* @@ -152,16 +164,16 @@ typedef struct wp_tdmv_remora_ { *******************************************************************************/ static int wp_remora_no = 0; extern WAN_LIST_HEAD(, wan_tdmv_) wan_tdmv_head; -static int battdebounce = DEFAULT_BATT_DEBOUNCE; -static int battthresh = DEFAULT_BATT_THRESH; +//static int battdebounce = DEFAULT_BATT_DEBOUNCE; +//static int battthresh = DEFAULT_BATT_THRESH; /******************************************************************************* ** FUNCTION PROTOTYPES *******************************************************************************/ static int wp_tdmv_remora_check_mtu(void* pcard, unsigned long timeslot_map, int *mtu); -static int wp_tdmv_remora_create(void* pcard, wan_xilinx_conf_t *conf); +static int wp_tdmv_remora_create(void* pcard, wan_tdmv_conf_t*); static int wp_tdmv_remora_remove(void* pcard); -static int wp_tdmv_remora_reg(void* pcard, wanif_conf_t *conf, netdevice_t *dev); +static int wp_tdmv_remora_reg(void* pcard, wan_tdmv_if_conf_t*, unsigned int, unsigned char,netdevice_t*); static int wp_tdmv_remora_unreg(void* pcard, unsigned long ts_map); static int wp_tdmv_remora_software_init(wan_tdmv_t *wan_tdmv); static int wp_tdmv_remora_state(void* pcard, int state); @@ -171,6 +183,8 @@ static int wp_tdmv_remora_rx_tx_span(void *pcard); static int wp_tdmv_remora_rx_chan(wan_tdmv_t*, int,unsigned char*,unsigned char*); static int wp_tdmv_remora_ec_span(void *pcard); +static void wp_tdmv_remora_dtmf (void* card_id, wan_event_t *event); + extern int wp_init_proslic(sdla_fe_t *fe, int mod_no, int fast, int sane); extern int wp_init_voicedaa(sdla_fe_t *fe, int mod_no, int fast, int sane); @@ -286,6 +300,35 @@ wp_remora_zap_ioctl(struct zt_chan *chan, unsigned int cmd, unsigned long data) } break; + + case ZT_TONEDETECT: + err = WAN_COPY_FROM_USER(&x, (int*)data, sizeof(int)); + /*err = get_user(x, (int *)data);*/ + if (err) return -EFAULT; + +#if 0 + + if (!wc->vpm) + return -ENOSYS; +#endif + if (wr->dtmfsupport != WANOPT_YES){ + return -ENOSYS; + } + DEBUG_EVENT("%s: Hardware Tone Event detection (%s:%s)!\n", + fe->name, + (x & ZT_TONEDETECT_ON) ? "ON" : "OFF", + (x & ZT_TONEDETECT_MUTE) ? "Mute ON" : "Mute OFF"); + + if (x & ZT_TONEDETECT_ON) + wr->dtmfmask |= (1 << (chan->chanpos - 1)); + else + wr->dtmfmask &= ~(1 << (chan->chanpos - 1)); + if (x & ZT_TONEDETECT_MUTE) + wr->dtmfmutemask |= (1 << (chan->chanpos - 1)); + else + wr->dtmfmutemask &= ~(1 << (chan->chanpos - 1)); + break; + default: return -ENOTTY; break; @@ -462,12 +505,12 @@ static int wp_remora_zap_hwec(struct zt_chan *chan, int enable) * echo cancellation is enabled regardless of * asterisk. In persist mode off asterisk * controls hardware echo cancellation */ - if (card->u.aft.cfg.ec_persist_disable) { + if (card->hwec_conf.persist_disable) { err = card->wandev.ec_enable(card, enable, channel-1); } else { err = 0; } - DEBUG_TDMV("[TDMV_RM]: %s: %s HW echo canceller on channel %d\n", + DEBUG_TDMV("[TDMV_RM]: %s: %s HW echo canceller on channel %d\n", wr->devname, (enable) ? "Enable" : "Disable", channel); @@ -612,6 +655,7 @@ static void wp_tdmv_remora_voicedaa_check_hook(wp_tdmv_remora_t *wr, int mod_no) if (wr->mod[mod_no].fxo.ringdebounce >= ZT_CHUNKSIZE * 64) { if (!wr->mod[mod_no].fxo.wasringing) { wr->mod[mod_no].fxo.wasringing = 1; + wr->rxsig_state[mod_no] = ZT_RXSIG_RING; zt_hooksig(&wr->chans[mod_no], ZT_RXSIG_RING); DEBUG_TDMV("%s: Module %d: RING on span %d!\n", wr->devname, @@ -625,6 +669,7 @@ static void wp_tdmv_remora_voicedaa_check_hook(wp_tdmv_remora_t *wr, int mod_no) if (wr->mod[mod_no].fxo.ringdebounce <= 0) { if (wr->mod[mod_no].fxo.wasringing) { wr->mod[mod_no].fxo.wasringing = 0; + wr->rxsig_state[mod_no] = ZT_RXSIG_OFFHOOK; zt_hooksig(&wr->chans[mod_no], ZT_RXSIG_OFFHOOK); DEBUG_TDMV("%s: Module %d: NO RING on span %d!\n", wr->devname, @@ -650,75 +695,94 @@ static void wp_tdmv_remora_voicedaa_check_hook(wp_tdmv_remora_t *wr, int mod_no) } } #endif - if (abs(b) < battthresh) { + + if (abs(b) < wr->battthresh) { wr->mod[mod_no].fxo.nobatttimer++; #if 0 if (wr->mod[mod_no].fxo.battery) printk("Battery loss: %d (%d debounce)\n", b, wr->mod[mod_no].fxo.battdebounce); #endif if (wr->mod[mod_no].fxo.battery && !wr->mod[mod_no].fxo.battdebounce) { - DEBUG_TDMV("%s: Module %d: NO BATTERY on span %d!\n", + DEBUG_TDMV( + "%s: Module %d: NO BATTERY on span %d!\n", wr->devname, mod_no + 1, wr->span.spanno); wr->mod[mod_no].fxo.battery = 0; #ifdef JAPAN - if ((!wr->ohdebounce) && wr->offhook) { + if ((!wr->mod[mod_no].fxo.ohdebounce) && + wr->mod[mod_no].fxo.offhook) { + wr->rxsig_state[mod_no] = ZT_RXSIG_ONHOOK; zt_hooksig(&wr->chans[mod_no], ZT_RXSIG_ONHOOK); - DEBUG_TDMV("%s: Module %d: Signalled On Hook span %d\n", + DEBUG_TDMV( + "%s: Module %d: Signalled On Hook span %d\n", wr->devname, mod_no + 1, wr->span.spanno); #ifdef ZERO_BATT_RING - wr->onhook++; + wr->mod[mod_no].fxo.onhook++; #endif } #else + DEBUG_TDMV( + "%s: Module %d: Signalled On Hook span %d\n", + wr->devname, + mod_no + 1, + wr->span.spanno); zt_hooksig(&wr->chans[mod_no], ZT_RXSIG_ONHOOK); #endif - wr->mod[mod_no].fxo.battdebounce = battdebounce; + wr->mod[mod_no].fxo.battdebounce = wr->battdebounce; } else if (!wr->mod[mod_no].fxo.battery) - wr->mod[mod_no].fxo.battdebounce = battdebounce; - } else if (abs(b) > battthresh) { + wr->mod[mod_no].fxo.battdebounce = wr->battdebounce; + } else if (abs(b) > wr->battthresh) { if (!wr->mod[mod_no].fxo.battery && !wr->mod[mod_no].fxo.battdebounce) { - DEBUG_TDMV("%s: Module %d: BATTERY on span %d (%s)!\n", + DEBUG_TDMV( + "%s: Module %d: BATTERY on span %d (%s)!\n", wr->devname, mod_no + 1, wr->span.spanno, (b < 0) ? "-" : "+"); #ifdef ZERO_BATT_RING - if (wr->onhook) { - wr->onhook = 0; + if (wr->mod[mod_no].fxo.onhook) { + wr->mod[mod_no].fxo.onhook = 0; + wr->rxsig_state[mod_no] = ZT_RXSIG_OFFHOOK; zt_hooksig(&wr->chans[mod_no], ZT_RXSIG_OFFHOOK); - DEBUG_TDMV("%s: Module %d: Signalled Off Hook span %d\n", + DEBUG_TDMV( + "%s: Module %d: Signalled Off Hook span %d\n", wr->devname, mod_no + 1, wr->span.spanno); } #else + DEBUG_TDMV( + "%s: Module %d: Signalled Off Hook span %d\n", + wr->devname, + mod_no + 1, + wr->span.spanno); + wr->rxsig_state[mod_no] = ZT_RXSIG_OFFHOOK; zt_hooksig(&wr->chans[mod_no], ZT_RXSIG_OFFHOOK); #endif wr->mod[mod_no].fxo.battery = 1; wr->mod[mod_no].fxo.nobatttimer = 0; - wr->mod[mod_no].fxo.battdebounce = battdebounce; + wr->mod[mod_no].fxo.battdebounce = wr->battdebounce; } else if (wr->mod[mod_no].fxo.battery) - wr->mod[mod_no].fxo.battdebounce = battdebounce; + wr->mod[mod_no].fxo.battdebounce = wr->battdebounce; if (wr->mod[mod_no].fxo.lastpol >= 0) { - if (b < 0) { - wr->mod[mod_no].fxo.lastpol = -1; - wr->mod[mod_no].fxo.polaritydebounce = POLARITY_DEBOUNCE; - } + if (b < 0) { + wr->mod[mod_no].fxo.lastpol = -1; + wr->mod[mod_no].fxo.polaritydebounce = POLARITY_DEBOUNCE; + } } if (wr->mod[mod_no].fxo.lastpol <= 0) { - if (b > 0) { - wr->mod[mod_no].fxo.lastpol = 1; - wr->mod[mod_no].fxo.polaritydebounce = POLARITY_DEBOUNCE; - } + if (b > 0) { + wr->mod[mod_no].fxo.lastpol = 1; + wr->mod[mod_no].fxo.polaritydebounce = POLARITY_DEBOUNCE; + } } } else { /* It's something else... */ - wr->mod[mod_no].fxo.battdebounce = battdebounce; + wr->mod[mod_no].fxo.battdebounce = wr->battdebounce; } if (wr->mod[mod_no].fxo.battdebounce) wr->mod[mod_no].fxo.battdebounce--; @@ -727,12 +791,12 @@ static void wp_tdmv_remora_voicedaa_check_hook(wp_tdmv_remora_t *wr, int mod_no) if (wr->mod[mod_no].fxo.polaritydebounce < 1) { if (wr->mod[mod_no].fxo.lastpol != wr->mod[mod_no].fxo.polarity) { DEBUG_TDMV( - "%s: Module %d: %lu Polarity reversed (%d -> %d)\n", + "%s: Module %d: Polarity reversed %d -> %d (%lu)\n", wr->devname, mod_no + 1, - SYSTEM_TICKS, wr->mod[mod_no].fxo.polarity, - wr->mod[mod_no].fxo.lastpol); + wr->mod[mod_no].fxo.lastpol, + SYSTEM_TICKS); if (wr->mod[mod_no].fxo.polarity){ zt_qevent_lock(&wr->chans[mod_no], ZT_EVENT_POLARITY); @@ -791,6 +855,7 @@ static void wp_tdmv_remora_proslic_check_hook(wp_tdmv_remora_t *wr, int mod_no) DEBUG_TDMV( "%s: Module %d: Going off hook\n", wr->devname, mod_no + 1); + wr->rxsig_state[mod_no] = ZT_RXSIG_OFFHOOK; zt_hooksig(&wr->chans[mod_no], ZT_RXSIG_OFFHOOK); #if 0 if (robust) @@ -803,6 +868,7 @@ static void wp_tdmv_remora_proslic_check_hook(wp_tdmv_remora_t *wr, int mod_no) DEBUG_TDMV( "%s: Module %d: Going on hook\n", wr->devname, mod_no + 1); + wr->rxsig_state[mod_no] = ZT_RXSIG_ONHOOK; zt_hooksig(&wr->chans[mod_no], ZT_RXSIG_ONHOOK); wr->mod[mod_no].fxs.oldrxhook = 0; } @@ -826,6 +892,17 @@ static int wp_tdmv_remora_check_hook(sdla_fe_t *fe, int mod_no) } else if (fe->rm_param.mod[mod_no].type == MOD_TYPE_FXO) { wp_tdmv_remora_voicedaa_check_hook(wr, mod_no); } + +#if 0 + if (wr->rxsig_state[mod_no] != wr->chans[mod_no].rxhooksig){ + DEBUG_EVENT( + "%s: Module %d: WARNING: Update RX SIG state again %X (%X)\n", + wr->devname, mod_no + 1, + wr->rxsig_state[mod_no], + wr->chans[mod_no].rxhooksig); + zt_hooksig(&wr->chans[mod_no], wr->rxsig_state[mod_no]); + } +#endif return 0; } @@ -840,8 +917,10 @@ static int wp_tdmv_remora_hook(sdla_fe_t *fe, int mod_no, int off_hook) wr = wan_tdmv->sc; if (off_hook){ + wr->rxsig_state[mod_no] = ZT_RXSIG_OFFHOOK; zt_hooksig(&wr->chans[mod_no], ZT_RXSIG_OFFHOOK); }else{ + wr->rxsig_state[mod_no] = ZT_RXSIG_ONHOOK; zt_hooksig(&wr->chans[mod_no], ZT_RXSIG_ONHOOK); } wr->mod[mod_no].fxs.lastrxhook = off_hook; @@ -907,6 +986,17 @@ static int wp_tdmv_remora_software_init(wan_tdmv_t *wan_tdmv) wr->span.deflaw = ZT_LAW_MULAW; break; } + + wr->battthresh = (fe->fe_cfg.cfg.remora.battthresh) ? + fe->fe_cfg.cfg.remora.battthresh : DEFAULT_BATT_THRESH; + wr->battdebounce = (fe->fe_cfg.cfg.remora.battdebounce) ? + fe->fe_cfg.cfg.remora.battdebounce : DEFAULT_BATT_DEBOUNCE; + DEBUG_EVENT("%s: Battery Threshhold %d (%d)\n", + wr->devname, wr->battthresh, DEFAULT_BATT_THRESH); + DEBUG_EVENT("%s: Battery Debounce %d (%d)\n", + wr->devname, wr->battdebounce, DEFAULT_BATT_DEBOUNCE); + wr->dtmfsupport = card->u.aft.tdmv_hw_dtmf; + for (x = 0; x < MAX_REMORA_MODULES; x++) { if (wan_test_bit(x, &fe->rm_param.module_map)){ @@ -943,6 +1033,7 @@ static int wp_tdmv_remora_software_init(wan_tdmv_t *wan_tdmv) wr->chans[x].pvt = wr; num++; } + wr->rxsig_state[x] = ZT_RXSIG_INITIAL; } wr->span.pvt = wr; wr->span.chans = wr->chans; @@ -954,7 +1045,7 @@ static int wp_tdmv_remora_software_init(wan_tdmv_t *wan_tdmv) wr->span.ioctl = wp_remora_zap_ioctl; wr->span.watchdog = wp_remora_zap_watchdog; /* Set this pointer only if card has hw echo canceller module */ - if (card->wandev.ec_dev){ + if (wr->hwec == WANOPT_YES && card->wandev.ec_dev){ wr->span.echocan = wp_remora_zap_hwec; } #if defined(__LINUX__) @@ -982,6 +1073,12 @@ static int wp_tdmv_remora_software_init(wan_tdmv_t *wan_tdmv) } wp_tdmv_remora_check_mtu(card, wr->reg_module_map, &wr->max_rxtx_len); wan_set_bit(WP_TDMV_REGISTER, &wr->flags); + + /* Initialize Callback event function pointers */ + if (wr->dtmfsupport == WANOPT_YES){ + DEBUG_EVENT("ADBG> Updating event callback dtmf\n"); + card->wandev.event_callback.dtmf = wp_tdmv_remora_dtmf; + } return 0; } @@ -1035,14 +1132,14 @@ static int wp_tdmv_remora_check_mtu(void* pcard, unsigned long timeslot_map, int *tdmv_* ** OK */ -static int wp_tdmv_remora_create(void* pcard, wan_xilinx_conf_t *conf) +static int wp_tdmv_remora_create(void* pcard, wan_tdmv_conf_t *tdmv_conf) { sdla_t *card = (sdla_t*)pcard; wp_tdmv_remora_t *wr = NULL; wan_tdmv_t *tmp = NULL; WAN_ASSERT(card == NULL); - WAN_ASSERT(conf->tdmv_span_no == 0); + WAN_ASSERT(tdmv_conf->span_no == 0); wr = wan_remora_search(card); if (wr){ DEBUG_EVENT("%s: AFT remora FXO/FXS card already configured!\n", @@ -1052,11 +1149,11 @@ static int wp_tdmv_remora_create(void* pcard, wan_xilinx_conf_t *conf) /* We are forcing to register wanpipe devices at the same sequence * that it defines in /etc/zaptel.conf */ WAN_LIST_FOREACH(tmp, &wan_tdmv_head, next){ - if (tmp->spanno == conf->tdmv_span_no){ + if (tmp->spanno == tdmv_conf->span_no){ DEBUG_EVENT("%s: Registering device with an incorrect span number!\n", card->devname); DEBUG_EVENT("%s: Another wanpipe device already configured to span #%d!\n", - card->devname, conf->tdmv_span_no); + card->devname, tdmv_conf->span_no); return -EINVAL; } if (!WAN_LIST_NEXT(tmp, next)){ @@ -1066,7 +1163,7 @@ static int wp_tdmv_remora_create(void* pcard, wan_xilinx_conf_t *conf) memset(&card->wan_tdmv, 0x0, sizeof(wan_tdmv_t)); card->wan_tdmv.max_timeslots = card->fe.rm_param.max_fe_channels; - card->wan_tdmv.spanno = conf->tdmv_span_no; + card->wan_tdmv.spanno = tdmv_conf->span_no; card->wandev.fe_notify_iface.hook_state = wp_tdmv_remora_hook; card->wandev.fe_notify_iface.check_hook_state = wp_tdmv_remora_check_hook; @@ -1076,7 +1173,7 @@ static int wp_tdmv_remora_create(void* pcard, wan_xilinx_conf_t *conf) } memset(wr, 0x0, sizeof(wp_tdmv_remora_t)); card->wan_tdmv.sc = wr; - wr->spanno = conf->tdmv_span_no-1; + wr->spanno = tdmv_conf->span_no-1; wr->num = wp_remora_no++; wr->card = card; wr->devname = card->devname; @@ -1101,7 +1198,11 @@ static int wp_tdmv_remora_create(void* pcard, wan_xilinx_conf_t *conf) ** -EINVAL - otherwise ** OK */ -static int wp_tdmv_remora_reg(void* pcard, wanif_conf_t *conf, netdevice_t *dev) +static int wp_tdmv_remora_reg( void *pcard, + wan_tdmv_if_conf_t *tdmv_conf, + unsigned int active_ch, + unsigned char ec_enable, + netdevice_t *dev) { sdla_t *card = (sdla_t*)pcard; sdla_fe_t *fe = &card->fe; @@ -1120,9 +1221,9 @@ static int wp_tdmv_remora_reg(void* pcard, wanif_conf_t *conf, netdevice_t *dev) } for(i = 0; i < wr->max_timeslots; i++){ - if (wan_test_bit(i, &conf->active_ch) && + if (wan_test_bit(i, &active_ch) && wan_test_bit(i, &fe->rm_param.module_map)){ - if (conf->tdmv_echo_off){ + if (tdmv_conf->tdmv_echo_off){ wan_set_bit(i, &wr->echo_off_map); } channo = i; @@ -1132,21 +1233,21 @@ static int wp_tdmv_remora_reg(void* pcard, wanif_conf_t *conf, netdevice_t *dev) if (i == wr->max_timeslots){ DEBUG_EVENT( - "%s: Error: TDMV iface %s failed to configure for %08lX timeslots!\n", + "%s: Error: TDMV iface %s failed to configure for %08X timeslots!\n", card->devname, - conf->name, - conf->active_ch); + wan_netif_name(dev), + active_ch); return -EINVAL; } - DEBUG_EVENT( + DEBUG_EVENT( "%s: Registering TDMV %s iface to module %d!\n", card->devname, WP_REMORA_DECODE_TYPE(fe->rm_param.mod[channo].type), channo+1); wan_set_bit(channo, &wr->reg_module_map); - if (conf->tdmv_echo_off){ + if (tdmv_conf->tdmv_echo_off){ DEBUG_EVENT("%s: TDMV Echo Ctrl:Off\n", wr->devname); } @@ -1155,8 +1256,8 @@ static int wp_tdmv_remora_reg(void* pcard, wanif_conf_t *conf, netdevice_t *dev) wr->chans[channo].readchunk = wr->chans[channo].sreadchunk; wr->chans[channo].writechunk = wr->chans[channo].swritechunk; wr->channelized = WAN_TRUE; - - wp_tdmv_remora_check_mtu(card, conf->active_ch, &wr->max_rxtx_len); + wr->hwec = ec_enable; + wp_tdmv_remora_check_mtu(card, active_ch, &wr->max_rxtx_len); return channo; } @@ -1402,7 +1503,7 @@ static int wp_tdmv_remora_rx_tx_span(void *pcard) sdla_fe_t *fe = &card->fe; wan_tdmv_t *wan_tdmv = &card->wan_tdmv; wp_tdmv_remora_t *wr = NULL; - int x; + u_int16_t x; WAN_ASSERT(wan_tdmv->sc == NULL); wr = wan_tdmv->sc; @@ -1516,20 +1617,13 @@ static int wp_tdmv_remora_rx_tx_span(void *pcard) #ifndef PULSE_DIALING wp_tdmv_remora_check_hook(fe, x); #endif -#if 1 if (!(wr->intcount & 0xf0)){ if (fe->rm_param.mod[x].type == MOD_TYPE_FXS) { wp_tdmv_remora_proslic_recheck_sanity(wr, x); - }else{ + }else if (fe->rm_param.mod[x].type == MOD_TYPE_FXO) { wp_tdmv_remora_voicedaa_recheck_sanity(wr, x); } } -#else - if (fe->rm_param.mod[x].type == MOD_TYPE_FXS) { - if (!(wr->intcount & 0xf0)) - wp_tdmv_remora_proslic_recheck_sanity(wr, x); - } -#endif } if (!(wr->intcount % 10000)) { @@ -1563,3 +1657,46 @@ static int wp_tdmv_remora_ec_span(void *pcard) return 0; } + +static void wp_tdmv_remora_dtmf (void* card_id, wan_event_t *event) +{ + sdla_t *card = (sdla_t*)card_id; + wan_tdmv_t *wan_tdmv = &card->wan_tdmv; + wp_tdmv_remora_t *wr = NULL; + + WAN_ASSERT1(wan_tdmv->sc == NULL); + wr = wan_tdmv->sc; + + if (event->type == WAN_EVENT_EC_DTMF){ + DEBUG_EVENT("%s: Received DTMF Event at TDM RM (%d:%c:%s:%s)!\n", + card->devname, + event->channel, + event->digit, + (event->dtmf_port == WAN_EC_CHANNEL_PORT_ROUT)?"ROUT":"SOUT", + (event->dtmf_type == WAN_EC_TONE_PRESENT)?"PRESENT":"STOP"); + }else if (event->type == WAN_EVENT_RM_DTMF){ + DEBUG_EVENT("%s: Received DTMF Event at TDM RM (%d:%c)!\n", + card->devname, + event->channel, + event->digit); + } + + if (!(wr->dtmfmask & (1 << (event->channel-1)))){ + DEBUG_EVENT("ADBG> %s: DTMF is not enabled for the channel %d\n", + card->devname, + event->channel); + return; + } + if (event->dtmf_type == WAN_EC_TONE_PRESENT){ + wr->dtmfactive |= (1 << event->channel); + zt_qevent_lock( + &wr->span.chans[event->channel-1], + (ZT_EVENT_DTMFDOWN | event->digit)); + }else{ + wr->dtmfactive &= ~(1 << event->channel); + zt_qevent_lock( + &wr->span.chans[event->channel-1], + (ZT_EVENT_DTMFUP | event->digit)); + } + return; +} diff --git a/patches/kdrivers/src/net/sdla_sdlc.c b/patches/kdrivers/src/net/sdla_sdlc.c index a7028a8..7fbfa6d 100644 --- a/patches/kdrivers/src/net/sdla_sdlc.c +++ b/patches/kdrivers/src/net/sdla_sdlc.c @@ -142,7 +142,7 @@ static int update_comms_stats(sdla_t* card, static void port_set_state (sdla_t *card, int); /* Interrupt handlers */ -static void wp_sdlc_isr (sdla_t* card); +static WAN_IRQ_RETVAL wp_sdlc_isr (sdla_t* card); static void rx_intr (sdla_t* card); static void tx_intr(sdla_t *card); static void timer_intr(sdla_t *); @@ -1311,7 +1311,7 @@ static int sdlc_error (sdla_t *card, int err, wan_mbox_t *mb) /*============================================================================ * Cisco HDLC interrupt service routine. */ -static void wp_sdlc_isr (sdla_t* card) +static WAN_IRQ_RETVAL wp_sdlc_isr (sdla_t* card) { netdevice_t* dev; INTERRUPT_INFORMATION_STRUCT flags; @@ -1383,6 +1383,7 @@ static void wp_sdlc_isr (sdla_t* card) isr_done: card->hw_iface.poke_byte(card->hw, card->intr_type_off, 0x00); card->in_isr = 0; + WAN_IRQ_RETURN(WAN_IRQ_HANDLED); } static unsigned char station_list[500]; diff --git a/patches/kdrivers/src/net/sdla_tdmv.c b/patches/kdrivers/src/net/sdla_tdmv.c index f23e655..6db8172 100644 --- a/patches/kdrivers/src/net/sdla_tdmv.c +++ b/patches/kdrivers/src/net/sdla_tdmv.c @@ -19,7 +19,7 @@ ****************************************************************************** */ /* - ****************************************************************************** + **********CONFIGURING******************************************************************** INCLUDE FILES ****************************************************************************** */ @@ -163,9 +163,10 @@ typedef struct wp_tdmv_pvt_area unsigned char rbs_tx1[31]; unsigned char rbs_rx[31]; unsigned long rbs_rx_pending; - u32 intcount; - u32 rbscount; + u32 intcount; + u32 rbscount; unsigned int brt_ctrl; + unsigned char hwec; unsigned char echo_off; unsigned long echo_off_map; unsigned int max_rxtx_len; @@ -174,7 +175,7 @@ typedef struct wp_tdmv_pvt_area unsigned char *tx_unchan; /* tx data pointer for unchannelized mode */ /* AHDLC: Hardware HDLC arguments */ - unsigned int dchan; + unsigned int dchan_map; netdevice_t *dchan_dev; } wp_tdmv_softc_t; @@ -196,9 +197,9 @@ WAN_LIST_HEAD(, wan_tdmv_) wan_tdmv_head = */ static int wp_tdmv_check_mtu(void* pcard, unsigned long timeslot_map, int *mtu); -static int wp_tdmv_create(void* pcard, wan_xilinx_conf_t *conf); +static int wp_tdmv_create(void* pcard, wan_tdmv_conf_t*); static int wp_tdmv_remove(void* pcard); -static int wp_tdmv_reg(void* pcard, wanif_conf_t *conf, netdevice_t *dev); +static int wp_tdmv_reg(void* pcard, wan_tdmv_if_conf_t*, unsigned int, unsigned char,netdevice_t*); static int wp_tdmv_unreg(void* pcard, unsigned long ts_map); static int wp_tdmv_software_init(wan_tdmv_t *wan_tdmv); static int wp_tdmv_startup(struct zt_span *span); @@ -303,23 +304,23 @@ static int wp_tdmv_check_mtu(void* pcard, unsigned long timeslot_map, int *mtu) ** ** OK */ -static int wp_tdmv_create(void* pcard, wan_xilinx_conf_t *conf) +static int wp_tdmv_create(void* pcard, wan_tdmv_conf_t *tdmv_conf) { sdla_t *card = (sdla_t*)pcard; wp_tdmv_softc_t *wp = NULL; wan_tdmv_t *tmp = NULL; WAN_ASSERT(card == NULL); - WAN_ASSERT(conf->tdmv_span_no == 0); + WAN_ASSERT(tdmv_conf->span_no == 0); memset(&card->wan_tdmv, 0x0, sizeof(wan_tdmv_t)); /* We are forcing to register wanpipe devices at the same sequence * that it defines in /etc/zaptel.conf */ WAN_LIST_FOREACH(tmp, &wan_tdmv_head, next){ - if (tmp->spanno == conf->tdmv_span_no){ + if (tmp->spanno == tdmv_conf->span_no){ DEBUG_EVENT("%s: Registering device with an incorrect span number!\n", card->devname); DEBUG_EVENT("%s: Another wanpipe device already configured to span #%d!\n", - card->devname, conf->tdmv_span_no); + card->devname, tdmv_conf->span_no); return -EINVAL; } if (!WAN_LIST_NEXT(tmp, next)){ @@ -328,17 +329,17 @@ static int wp_tdmv_create(void* pcard, wan_xilinx_conf_t *conf) } card->wan_tdmv.max_timeslots = GET_TE_CHANNEL_RANGE(&card->fe); - card->wan_tdmv.spanno = conf->tdmv_span_no; + card->wan_tdmv.spanno = tdmv_conf->span_no; card->wandev.te_report_rbsbits = wp_tdmv_report_rbsbits; card->wandev.te_report_alarms = wp_tdmv_report_alarms; - wp = wan_malloc(sizeof(wp_tdmv_softc_t)); + wp = wan_kmalloc(sizeof(wp_tdmv_softc_t)); if (wp == NULL){ return -ENOMEM; } memset(wp, 0x0, sizeof(wp_tdmv_softc_t)); card->wan_tdmv.sc = wp; - wp->spanno = conf->tdmv_span_no-1; + wp->spanno = tdmv_conf->span_no-1; wp->num = wp_card_no++; wp->card = card; wp->devname = card->devname; @@ -351,9 +352,12 @@ static int wp_tdmv_create(void* pcard, wan_xilinx_conf_t *conf) wan_spin_lock_init(&wp->lock); wan_spin_lock_init(&wp->tx_rx_lock); /* AHDLC */ - if (conf->tdmv_dchan){ + if (tdmv_conf->dchan){ /* PRI signalling is selected with hw HDLC (dchan is not 0) */ - wp->dchan = conf->tdmv_dchan; + wp->dchan_map = tdmv_conf->dchan; + if (wp->ise1) { + wan_clear_bit(0,&wp->dchan_map); + } } if (tmp){ @@ -372,7 +376,11 @@ static int wp_tdmv_create(void* pcard, wan_xilinx_conf_t *conf) ** -EINVAL - otherwise ** OK */ -static int wp_tdmv_reg(void* pcard, wanif_conf_t *conf, netdevice_t *dev) +static int wp_tdmv_reg( void *pcard, + wan_tdmv_if_conf_t *tdmv_conf, + unsigned int active_ch, + u8 ec_enable, + netdevice_t *dev) { sdla_t *card = (sdla_t*)pcard; wan_tdmv_t *wan_tdmv = &card->wan_tdmv; @@ -392,9 +400,9 @@ static int wp_tdmv_reg(void* pcard, wanif_conf_t *conf, netdevice_t *dev) * T1: 1-24 * E1: 0-31 */ for(i = 0; imax_timeslots; i++){ - if (wan_test_bit(i, &conf->active_ch)){ + if (wan_test_bit(i, &active_ch)){ wan_set_bit(i, &wp->timeslot_map); - if (conf->tdmv_echo_off){ + if (tdmv_conf->tdmv_echo_off){ wan_set_bit(i, &wp->echo_off_map); } channo = i; @@ -404,7 +412,7 @@ static int wp_tdmv_reg(void* pcard, wanif_conf_t *conf, netdevice_t *dev) if (!cnt){ DEBUG_EVENT("%s: Error: TDMV iface %s configured with 0 timeslots!\n", - card->devname, conf->name); + card->devname, wan_netif_name(dev)); return -EINVAL; } @@ -420,13 +428,13 @@ static int wp_tdmv_reg(void* pcard, wanif_conf_t *conf, netdevice_t *dev) return -EINVAL; } #endif - if (conf->tdmv_echo_off){ + if (tdmv_conf->tdmv_echo_off){ DEBUG_EVENT("%s: TDMV Echo Ctrl:Off\n", wp->devname); } wp->channelized = WAN_FALSE; - if (wp->dchan){ + if (wp->dchan_map){ if (dev == NULL){ DEBUG_EVENT("%s: ERROR: Device pointer is NULL for D-chan!\n", wp->devname); @@ -437,7 +445,7 @@ static int wp_tdmv_reg(void* pcard, wanif_conf_t *conf, netdevice_t *dev) }else{ /* Channelized implementation */ - if (wp->dchan-1 == channo){ + if (wan_test_bit(channo, &wp->dchan_map)){ if (dev == NULL){ DEBUG_EVENT("%s: ERROR: Device pointer is NULL for D-chan!\n", wp->devname); @@ -445,7 +453,8 @@ static int wp_tdmv_reg(void* pcard, wanif_conf_t *conf, netdevice_t *dev) } wp->dchan_dev = dev; } - if (conf->tdmv_echo_off){ + + if (tdmv_conf->tdmv_echo_off){ DEBUG_EVENT("%s: TDMV Echo Ctrl:Off\n", wp->devname); } @@ -455,7 +464,8 @@ static int wp_tdmv_reg(void* pcard, wanif_conf_t *conf, netdevice_t *dev) wp->chans[channo].writechunk = wp->chans[channo].swritechunk; wp->channelized = WAN_TRUE; } - wp_tdmv_check_mtu(card, conf->active_ch, &wp->max_rxtx_len); + wp->hwec = ec_enable; + wp_tdmv_check_mtu(card, active_ch, &wp->max_rxtx_len); return channo; } @@ -721,7 +731,7 @@ static void wp_tdmv_report_alarms(void* pcard, unsigned long te_alarm) return; } - /* Consider only carrier alarms */ + /* And consider only carrier alarms */ wp->span.alarms &= (ZT_ALARM_RED | ZT_ALARM_BLUE | ZT_ALARM_NOTOPEN); prev_alarms = wp->span.alarms; @@ -776,10 +786,15 @@ static void wp_tdmv_report_alarms(void* pcard, unsigned long te_alarm) } } + /* Note: The alarm checking should match + Alarm checking in sdla_te1.c and + sdla_8te1.c + */ + if (wp->ise1) { if (te_alarm & WAN_TE_BIT_RED_ALARM) alarms |= ZT_ALARM_RED; - if (te_alarm & WAN_TE_BIT_OOF_ALARM) + if (te_alarm & WAN_TE_BIT_OOF_ALARM) alarms |= ZT_ALARM_RED; } else { /* Check actual alarm status */ @@ -1037,7 +1052,8 @@ static int wp_tdmv_software_init(wan_tdmv_t *wan_tdmv) wp->span.linecompat = ZT_CONFIG_AMI | ZT_CONFIG_B8ZS | ZT_CONFIG_D4 | ZT_CONFIG_ESF; wp->span.ioctl = wp_tdmv_ioctl; /* Set this pointer only if card has hw echo canceller module */ - if (card->wandev.ec_dev){ + if (wp->hwec == WANOPT_YES && card->wandev.ec_dev){ + /* Initialize it only if HWEC option is enabled */ wp->span.echocan = wp_tdmv_hwec; } wp->span.pvt = wp; @@ -1093,14 +1109,20 @@ static int wp_tdmv_software_init(wan_tdmv_t *wan_tdmv) DEBUG_EVENT("%s: Wanpipe device is registered to Zaptel span # %d!\n", wp->devname, wp->span.spanno); } - if (wp->channelized == WAN_FALSE && wp->dchan){ + if (wp->channelized == WAN_FALSE && wp->dchan_map){ /* Apr 15, 2005 * For unchannelized mode, if HW HDLC protocol is selected * by using dchan configuration option, remove dchan timeslot * from timeslot and echo map. */ - wan_clear_bit(wp->dchan-1, &wp->timeslot_map); - wan_clear_bit(wp->dchan-1, &wp->echo_off_map); + if (wp->ise1) { + wp->dchan_map=wp->dchan_map>>1; + wan_clear_bit(0,&wp->dchan_map); + } + + wp->timeslot_map &= ~wp->dchan_map; + wp->echo_off_map &= ~wp->dchan_map; } + wp_tdmv_check_mtu(card, wp->timeslot_map, &wp->max_rxtx_len); wan_set_bit(WP_TDMV_REGISTER, &wp->flags); if (!wan_tdmv->sig_intr_enable){ @@ -1140,7 +1162,7 @@ static int wp_tdmv_startup(struct zt_span *span) /* Only if we're not already going */ span->flags |= ZT_FLAG_RUNNING; } - + wan_set_bit(WP_TDMV_RUNNING, &wp->flags); return 0; } @@ -1157,6 +1179,7 @@ static int wp_tdmv_shutdown(struct zt_span *span) WAN_ASSERT2(span == NULL, -ENODEV); WAN_ASSERT2(span->pvt == NULL, -ENODEV); wp = span->pvt; + wan_clear_bit(WP_TDMV_RUNNING, &wp->flags); wan_spin_lock_irq(&wp->lock, &flags); span->flags &= ~ZT_FLAG_RUNNING; wan_spin_unlock_irq(&wp->lock, &flags); @@ -1407,8 +1430,8 @@ static int wp_tdmv_spanconfig(struct zt_span *span, struct zt_lineconfig *lc) }else{ card->fe.fe_cfg.cfg.te_cfg.sig_mode = WAN_TE1_SIG_CAS; } - if (card->wandev.fe_iface.post_config){ - card->wandev.fe_iface.post_config(&card->fe); + if (card->wandev.fe_iface.reconfig){ + card->wandev.fe_iface.reconfig(&card->fe); } } span->txlevel = 0; @@ -1499,7 +1522,7 @@ static int wp_tdmv_rbsbits(struct zt_chan *chan, int bits) return 0; } #if 1 - DEBUG_TDMV( + DEBUG_EVENT( "[TDMV] %s: %s:%02d(%d) TX RBS: A:%1d B:%1d C:%1d D:%1d\n", wp->devname, (wp->ise1) ? "E1" : "T1", @@ -1834,17 +1857,17 @@ static int wp_tdmv_hwec(struct zt_chan *chan, int enable) if (!wp->ise1){ channel--; } - + /* The ec persist flag enables and disables * persistent echo control. In persist mode * echo cancellation is enabled regardless of * asterisk. In persist mode off asterisk * controls hardware echo cancellation */ - if (card->u.aft.cfg.ec_persist_disable) { + if (card->hwec_conf.persist_disable || chan->flags & ZT_FLAG_HDLC) { err = card->wandev.ec_enable(card, enable, channel); } else { err = 0; - } + } } return err; @@ -1866,9 +1889,6 @@ static int wp_tdmv_open(struct zt_chan *chan) WAN_ASSERT2(wp->card == NULL, -ENODEV); card = wp->card; wp->usecount++; - if (wp->usecount == wp->timeslots){ - wan_set_bit(WP_TDMV_RUNNING, &wp->flags); - } DEBUG_TDMV("%s: Open (usecount=%d, channo=%d, chanpos=%d)...\n", wp->devname, wp->usecount, @@ -1891,7 +1911,6 @@ static int wp_tdmv_close(struct zt_chan *chan) WAN_ASSERT2(chan->pvt == NULL, -ENODEV); wp = chan->pvt; wp->usecount--; - wan_clear_bit(WP_TDMV_RUNNING, &wp->flags); DEBUG_TDMV("%s: Close (usecount=%d, channo=%d, chanpos=%d)...\n", wp->devname, wp->usecount, @@ -1958,8 +1977,14 @@ static int wp_tdmv_rx_dchan(wan_tdmv_t *wan_tdmv, int channo, int i, left; WAN_ASSERT(wp == NULL); - WAN_ASSERT(channo != wp->dchan-1); - chan = &wp->chans[wp->dchan-1]; + + if (!wan_test_bit(channo, &wp->dchan_map)) { + DEBUG_EVENT("%s: Internal Error: DCHAN Mismatch channo=%i 0x%08X\n", + wp->devname,channo,wp->dchan_map); + return -EINVAL; + } + + chan = &wp->chans[channo]; WAN_ASSERT(chan == NULL || chan->master == NULL); ms = chan->master; @@ -2121,7 +2146,8 @@ static int wp_tdmv_rx_chan(wan_tdmv_t *wan_tdmv, int channo, #endif /* If using hwec do not even call ec chunk */ - if (!card->wandev.ec_enable && !wan_test_bit(channo, &wp->echo_off_map)){ + if ((!card->wandev.ec_enable || card->wandev.ec_enable_map == 0) && + !wan_test_bit(channo, &wp->echo_off_map)) { /*Echo spike starts at 25bytes*/ #ifdef CONFIG_PRODUCT_WANPIPE_TDM_VOICE_ECHOMASTER if(pwr_rxtx->current_state != ECHO_ABSENT){ @@ -2223,8 +2249,8 @@ static int wp_tdmv_span_buf_rotate(void *pcard, u32 buf_sz, unsigned long mask) for (x = 0; x < 32; x ++) { if (wan_test_bit(x,&wp->timeslot_map)) { - if (card->u.aft.cfg.tdmv_dchan && - (card->u.aft.cfg.tdmv_dchan-1) == x) { + if (card->u.aft.tdmv_dchan && + (card->u.aft.tdmv_dchan-1) == x) { continue; } diff --git a/patches/kdrivers/src/net/sdla_te1.c b/patches/kdrivers/src/net/sdla_te1.c index f48a253..2a6a8f9 100644 --- a/patches/kdrivers/src/net/sdla_te1.c +++ b/patches/kdrivers/src/net/sdla_te1.c @@ -29,7 +29,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: sdla_te1.c,v 1.241 2006/11/30 19:21:35 sangoma Exp $ + * $Id: sdla_te1.c,v 1.255 2007/03/30 21:13:30 sangoma Exp $ */ /* @@ -40,7 +40,12 @@ * Author: Alex Feldman * * ============================================================================ - * Aprl 29, 2001 Alex Feldma Initial version. + * Aprl 29, 2001 Alex Feldman Initial version. + * + * + * + * MAr 7, 2007 Alex Feldman Remove Squence option. Some equipment + * doesn't like it. ****************************************************************************** */ @@ -87,31 +92,41 @@ #define MAX_BUSY_READ 0x05 /* Read/Write to front-end register */ +static int te_reg_verify = 0; #define WRITE_REG(reg,val) \ + if (te_reg_verify){\ + unsigned char current_val;\ + current_val=fe->read_fe_reg( \ + fe->card, \ + (int)fe->fe_cfg.line_no, \ + (int)((reg) + (fe->fe_cfg.line_no*PMC4_LINE_DELTA)));\ + DEBUG_EVENT("%s: Writing Reg:%02X=%02X (%02X)\n", \ + fe->name,(unsigned char)(reg),(unsigned char)(val),current_val);\ + }\ fe->write_fe_reg( \ fe->card, \ - (u32)fe->fe_cfg.line_no, \ - (u32)((reg) + (fe->fe_cfg.line_no*PMC4_LINE_DELTA)), \ - (u32)(val)) + (int)fe->fe_cfg.line_no, \ + (int)((reg) + (fe->fe_cfg.line_no*PMC4_LINE_DELTA)), \ + (int)(val)) #define WRITE_REG_LINE(fe_line_no, reg,val) \ fe->write_fe_reg( \ fe->card, \ - (u32)fe_line_no, \ - (u32)((reg) + (fe_line_no)*PMC4_LINE_DELTA), \ - (u32)(val)) + (int)fe_line_no, \ + (int)((reg) + (fe_line_no)*PMC4_LINE_DELTA), \ + (int)(val)) #define READ_REG(reg) \ fe->read_fe_reg( \ fe->card, \ - (u32)fe->fe_cfg.line_no, \ - (u32)((reg) + (fe->fe_cfg.line_no*PMC4_LINE_DELTA))) + (int)fe->fe_cfg.line_no, \ + (int)((reg) + (fe->fe_cfg.line_no*PMC4_LINE_DELTA))) #define READ_REG_LINE(fe_line_no, reg) \ fe->read_fe_reg( \ fe->card, \ - (u32)fe_line_no, \ - (u32)((reg) + (fe_line_no)*PMC4_LINE_DELTA)) + (int)fe_line_no, \ + (int)((reg) + (fe_line_no)*PMC4_LINE_DELTA)) /* Enabling/Disabling register debugging */ #undef WAN_DEBUG_TE1_REG @@ -180,32 +195,25 @@ } #endif + #define WAN_TE1_FRAMED_ALARMS (WAN_TE_BIT_RED_ALARM | WAN_TE_BIT_OOF_ALARM) #define WAN_TE1_UNFRAMED_ALARMS (WAN_TE_BIT_RED_ALARM) + +#if 0 +#define TE1_FRAME_ALARM (\ + WAN_TE_BIT_RED_ALARM | \ + WAN_TE_BIT_AIS_ALARM | \ + WAN_TE_BIT_OOF_ALARM | \ + WAN_TE_BIT_LOS_ALARM) -#if 0 -#define IS_T1_ALARM(alarm) \ - (alarm & \ - ( \ - WAN_TE_BIT_RED_ALARM | \ - WAN_TE_BIT_AIS_ALARM | \ - WAN_TE_BIT_OOF_ALARM | \ - WAN_TE_BIT_LOS_ALARM \ - )) - -#define IS_E1_ALARM(alarm) \ - (alarm & \ - ( \ - WAN_TE_BIT_RED_ALARM | \ - WAN_TE_BIT_AIS_ALARM | \ - WAN_TE_BIT_OOF_ALARM | \ - WAN_TE_BIT_LOS_ALARM \ - )) -#endif +#define TE1_UNFRAME_ALARM (\ + WAN_TE_BIT_RED_ALARM | \ + WAN_TE_BIT_AIS_ALARM | \ + WAN_TE_BIT_LOS_ALARM) +#endif #if 0 # define FE_ALOS_ENABLE -# define FE_LOS_ENABLE # define FE_OOF_PRINT # define FE_LOS_PRINT @@ -2246,6 +2254,8 @@ static int sdla_te_global_config(void* pfe); static int sdla_te_global_unconfig(void* pfe); static int sdla_te_config(void* pfe); static int sdla_te_unconfig(void* pfe); +static int sdla_te_post_init(void *pfe); +static int sdla_te_pre_release(void* pfe); static void ClearTemplate(sdla_fe_t* fe); static unsigned char PrgTransmitTemplate(sdla_fe_t* fe); static void InitLineReceiver(sdla_fe_t* fe, RLPS_EQUALIZER_RAM* rlps_table); @@ -2274,7 +2284,7 @@ static int DisableRxChannel(sdla_fe_t* fe, int channel); static int EnableTxChannel(sdla_fe_t* fe, int channel); static int EnableRxChannel(sdla_fe_t* fe, int channel); -static int sdla_te_post_config(sdla_fe_t* fe); +static int sdla_te_reconfig(sdla_fe_t* fe); static void sdla_te_set_intr(sdla_fe_t* fe); static void sdla_te_clear_intr(sdla_fe_t* fe); @@ -2292,8 +2302,6 @@ static void sdla_te_set_status(sdla_fe_t*, unsigned long); static int sdla_te_get_snmp_data(sdla_fe_t* fe, void* pdev, void* data); static int sdla_te_set_lbmode(sdla_fe_t*, unsigned char, unsigned char); -static void sdla_te_enable_timer(sdla_fe_t*, unsigned char, unsigned int); - static int sdla_te_linelb(sdla_fe_t*, unsigned char); static int sdla_te_paylb(sdla_fe_t*, unsigned char); static int sdla_te_ddlb(sdla_fe_t*, unsigned char); @@ -2324,6 +2332,9 @@ static int sdla_te_set_alarms(sdla_fe_t* pfe, unsigned int); static int sdla_te_clear_alarms(sdla_fe_t* pfe, unsigned long); static int sdla_te_sigctrl(sdla_fe_t*, int, unsigned long, int); +static int sdla_te_add_event(sdla_fe_t*, sdla_fe_timer_event_t*); +static int sdla_te_add_timer(sdla_fe_t*, unsigned long); + static int sdla_te_update_alarm_info(sdla_fe_t*, struct seq_file*, int*); static int sdla_te_update_pmon_info(sdla_fe_t*, struct seq_file*, int*); @@ -3287,7 +3298,10 @@ int sdla_te_iface_init(void *pfe_iface) fe_iface->global_config = &sdla_te_global_config; fe_iface->global_unconfig = &sdla_te_global_unconfig; fe_iface->config = &sdla_te_config; + fe_iface->post_init = &sdla_te_post_init; + fe_iface->reconfig = &sdla_te_reconfig; fe_iface->unconfig = &sdla_te_unconfig; + fe_iface->pre_release = &sdla_te_pre_release; fe_iface->isr = &sdla_te_intr; fe_iface->disable_irq = &sdla_te_disable_irq; fe_iface->check_isr = &sdla_te_check_intr; @@ -3314,7 +3328,6 @@ int sdla_te_iface_init(void *pfe_iface) #if !defined(CONFIG_PRODUCT_WANPIPE_GENERIC) fe_iface->get_snmp_data = &sdla_te_get_snmp_data; #endif - fe_iface->post_config = &sdla_te_post_config; return 0; } @@ -3604,9 +3617,9 @@ static int sdla_pmc4351_te_config(sdla_fe_t *fe, u16 adapter_type) } /* RLPS Configuration and Status (Reg 0xF8) */ - WRITE_REG(REG_RLPS_CFG_STATUS, + WRITE_REG(REG_RLPS_CFG_STATUS, BIT_RLPS_CFG_STATUS_LONGE/* | - BIT_RLPS_CFG_STATUS_SQUELCHE*/); + BIT_RLPS_CFG_STATUS_SQUELCHE*/); /* RLPS ALOS Detection/Clearance Thresholds (Reg 0xF9) */ /* NC: Aug 20 2003: @@ -4082,19 +4095,17 @@ static int sdla_pmc4354_rlps_optim(sdla_fe_t *fe) return 0; } - /* ****************************************************************************** - * sdla_te_config() + * sdla_te_chip_config() * - * Description: Configure Sangoma T1/E1 boards + * Description: Configure Sangoma T1/E1 chip * Arguments: - * Returns: WANTRUE - TE1 configred successfully, otherwise WAN_FALSE. + * Returns: ****************************************************************************** */ -static int sdla_te_config(void* pfe) +static int sdla_te_chip_config(sdla_fe_t *fe) { - sdla_fe_t *fe = (sdla_fe_t*)pfe; sdla_t* card = (sdla_t*)fe->card; u16 adapter_type; unsigned char value = 0x00; @@ -4102,9 +4113,6 @@ static int sdla_te_config(void* pfe) WAN_ASSERT(fe->write_fe_reg == NULL); WAN_ASSERT(fe->read_fe_reg == NULL); - /* Initial FE state */ - fe->fe_status=FE_UNITIALIZED; - /* Revision/Chip ID (Reg. 0x0D) */ value = READ_REG_LINE(0, REG_REVISION_CHIP_ID); fe->fe_chip_id = value & MASK_CHIP_ID; @@ -4140,7 +4148,7 @@ static int sdla_te_config(void* pfe) FE_LCODE_DECODE(fe), FE_FRAME_DECODE(fe), TE_LBO_DECODE(fe)); - DEBUG_EVENT("%s: Clk %s:%d, Ch %lX\n", + DEBUG_EVENT("%s: Clk %s:%d, Ch %X\n", fe->name, TE_CLK_DECODE(fe), WAN_TE1_REFCLK(fe), @@ -4152,63 +4160,147 @@ static int sdla_te_config(void* pfe) WAN_TE1_SIG_DECODE(fe)); } -#if 0 - DEBUG_EVENT("%s: Configuring PMC %s %s FE (%d:%s,%s,%s,%s:%d,%X)\n", + if (WAN_FE_FRAME(fe) == WAN_FR_UNFRAMED && + WAN_TE1_ACTIVE_CH(fe) != ENABLE_ALL_CHANNELS){ + DEBUG_EVENT( + "%s: ERROR: Invalid active channel list for Unframed mode (%X)!\n", + fe->name, WAN_TE1_ACTIVE_CH(fe)); + return -EINVAL; + } + + fe->te_param.max_channels = + (IS_E1_FEMEDIA(fe)) ? NUM_OF_E1_TIMESLOTS: NUM_OF_T1_CHANNELS; + fe->te_param.lb_rx_code = LINELB_DS1LINE_DISABLE; + switch(fe->fe_chip_id){ + case CHIP_ID_COMET: + sdla_pmc4351_te_config(fe, adapter_type); + break; + + case CHIP_ID_COMET_QUAD: + sdla_pmc4354_te_config(fe, adapter_type); + sdla_pmc4354_rlps_optim(fe); + break; + + default: + DEBUG_EVENT("%s: ERROR: Unsupported T1/E1 CHIP (0x%02X)\n", + fe->name, (fe->fe_chip_id >> 5)); + return -EINVAL; + } + + ClearRPSCReg(fe); + ClearTPSCReg(fe); + DisableAllChannels(fe); + EnableChannels(fe); + +#if 0 + if (WAN_TE1_ACTIVE_CH(fe) == ENABLE_ALL_CHANNELS){ + DEBUG_EVENT("%s: All channels enabled\n", fe->name); + EnableAllChannels(fe); + }else{ + int channel_range = (IS_T1_FEMEDIA(fe)) ? + NUM_OF_T1_CHANNELS : NUM_OF_E1_CHANNELS; + //NUM_OF_T1_CHANNELS : NUM_OF_E1_TIMESLOTS; + + int i = 0; + + for(i = 1; i <= channel_range; i++){ + if (WAN_TE1_ACTIVE_CH(fe) & (1 << (i - 1))){ + DEBUG_EVENT("%s: Enable channel %d\n", + fe->name, i-1); + EnableTxChannel(fe, i-1); + EnableRxChannel(fe, i-1); + } + } + } +#endif + + return 0; +} + + +/* + ****************************************************************************** + * sdla_te_config() + * + * Description: Configure Sangoma T1/E1 boards + * Arguments: + * Returns: WANTRUE - TE1 configred successfully, otherwise WAN_FALSE. + ****************************************************************************** + */ +static int sdla_te_config(void* pfe) +{ + sdla_fe_t *fe = (sdla_fe_t*)pfe; + + WAN_ASSERT(fe->write_fe_reg == NULL); + WAN_ASSERT(fe->read_fe_reg == NULL); + + /* Initial FE state */ + fe->fe_status = FE_UNITIALIZED; /*FE_DISCONNECTED;*/ + WAN_LIST_INIT(&fe->event); + wan_spin_lock_init(&fe->lock); + +#if 1 + memset(&fe->te_param, 0, sizeof(sdla_te_param_t)); + if (sdla_te_chip_config(fe)){ + DEBUG_EVENT("%s: Failed to configure %s Front-End chip!\n", + fe->name, + FE_MEDIA_DECODE(fe)); + return -EINVAL; + } +#else + /* Revision/Chip ID (Reg. 0x0D) */ + value = READ_REG_LINE(0, REG_REVISION_CHIP_ID); + fe->fe_chip_id = value & MASK_CHIP_ID; + switch(fe->fe_chip_id){ + case CHIP_ID_COMET: + fe->fe_cfg.line_no = 0; + break; + case CHIP_ID_COMET_QUAD: + if ((int)WAN_FE_LINENO(fe) < 0 || WAN_FE_LINENO(fe) > 3){ + DEBUG_EVENT("%s: TE Config: Invalid Port selected %d (Min=1 Max=4)\n", + fe->name, + WAN_FE_LINENO(fe)+1); + return -EINVAL; + } + break; + default: + DEBUG_EVENT("%s: ERROR: Unsupported PMC %s CHIP (%02X)\n", + fe->name, + FE_MEDIA_DECODE(fe), + (fe->fe_chip_id >> 5)); + return -EINVAL; + } + + + card->hw_iface.getcfg(card->hw, SDLA_ADAPTERTYPE, &adapter_type); + DEBUG_EVENT("%s: Configuring PMC %s %s FE\n", fe->name, DECODE_CHIPID(fe->fe_chip_id), - FE_MEDIA_DECODE(fe), + FE_MEDIA_DECODE(fe)); + DEBUG_EVENT("%s: Port %d,%s,%s,%s\n", + fe->name, WAN_FE_LINENO(fe)+1, FE_LCODE_DECODE(fe), FE_FRAME_DECODE(fe), - TE_LBO_DECODE(fe), + TE_LBO_DECODE(fe)); + DEBUG_EVENT("%s: Clk %s:%d, Ch %X\n", + fe->name, TE_CLK_DECODE(fe), WAN_TE1_REFCLK(fe), WAN_TE1_ACTIVE_CH(fe)); - DEBUG_TE1("%s: %s Line decoding %s\n", - fe->name, - FE_MEDIA_DECODE(fe), - FE_LCODE_DECODE(fe)); - DEBUG_TE1("%s: %s Frame type %s\n", - fe->name, - FE_MEDIA_DECODE(fe), - FE_FRAME_DECODE(fe)); - if (IS_T1_FEMEDIA(fe)){ - DEBUG_TE1("%s: %s LBO %s\n", - fe->name, - FE_MEDIA_DECODE(fe), - TE_LBO_DECODE(fe)); - } - if (WAN_TE1_CLK(fe) == WAN_MASTER_CLK){ - if (WAN_TE1_REFCLK(fe) != WAN_TE1_REFCLK_OSC){ - DEBUG_TE1("%s: %s Clock mode Master (refclk from Port %d)\n", + + if (IS_E1_FEMEDIA(fe)){ + DEBUG_EVENT("%s: Sig Mode %s\n", fe->name, - FE_MEDIA_DECODE(fe), - WAN_TE1_REFCLK(fe)); - }else{ - DEBUG_TE1("%s: %s Clock mode Master (Osciliator)\n", - fe->name, - FE_MEDIA_DECODE(fe)); - } - }else{ - DEBUG_TE1("%s: %s Clock mode Normal\n", - fe->name, - FE_MEDIA_DECODE(fe)); + WAN_TE1_SIG_DECODE(fe)); } - DEBUG_TE1("%s: %s active channels %lX\n", - fe->name, - FE_MEDIA_DECODE(fe), - WAN_TE1_ACTIVE_CH(fe)); - DEBUG_TE1("%s: %s robbit-signalling channels %X\n", - fe->name, - FE_MEDIA_DECODE(fe), - fe->fe_cfg.cfg.te_cfg.te_rbs_ch); -#endif + memset(&fe->te_param, 0, sizeof(sdla_te_param_t)); if (WAN_FE_FRAME(fe) == WAN_FR_UNFRAMED && WAN_TE1_ACTIVE_CH(fe) != ENABLE_ALL_CHANNELS){ DEBUG_EVENT( - "%s: ERROR: Invalid active channel list for Unframed mode (%lX)!\n", + "%s: ERROR: Invalid active channel list for Unframed mode (%X)!\n", fe->name, WAN_TE1_ACTIVE_CH(fe)); return -EINVAL; } @@ -4257,48 +4349,28 @@ static int sdla_te_config(void* pfe) } } #endif - /* Initialize and start T1/E1 timer */ - wan_set_bit(TE_TIMER_KILL,(void*)&fe->te_param.critical); -#if defined(__WINDOWS__) - /* can NOT initialize timer while holding the spinlock */ - card->hw_iface.hw_unlock(card->hw,NULL); #endif - - wan_init_timer( - &fe->te_param.timer, - sdla_te_timer, - (wan_timer_arg_t)fe); - /* Set initial FE status to uninitialized value and let the next function * set correct value */ - fe->fe_status=FE_UNITIALIZED; + fe->fe_status = FE_UNITIALIZED; /*FE_DISCONNECTED;*/ /* Read initial alarm status and then enable T1/E1 alarm interrupts */ /* sdla_te_alarm(fe, 0); */ - wan_clear_bit(TE_TIMER_KILL,(void*)&fe->te_param.critical); - wan_clear_bit(TE_TIMER_RUNNING,(void*)&fe->te_param.critical); - sdla_te_enable_timer(fe, TE_LINKDOWN_TIMER, INTR_TE1_TIMER); - -#if defined(__WINDOWS__) - card->hw_iface.hw_lock(card->hw,NULL); -#endif - wan_set_bit(TE_CONFIGURED,(void*)&fe->te_param.critical); - return 0; } /* ****************************************************************************** - * sdla_te_post_config() + * sdla_te_reconfig() * * Description: T1/E1 post configuration. * Arguments: * Returns: ****************************************************************************** */ -static int sdla_te_post_config(sdla_fe_t* fe) +static int sdla_te_reconfig(sdla_fe_t* fe) { unsigned char value; @@ -4333,6 +4405,71 @@ static int sdla_te_post_config(sdla_fe_t* fe) return 0; } + +/* + ****************************************************************************** + * sdla_te_post_init() + * + * Description: T1/E1 post initialization (should be called out of any lock). + * Arguments: + * Returns: + ****************************************************************************** + */ +static int sdla_te_post_init(void *pfe) +{ + sdla_fe_t *fe = (sdla_fe_t*)pfe; + sdla_fe_timer_event_t fe_event; + + /* Initialize and start T1/E1 timer */ + wan_set_bit(TE_TIMER_KILL,(void*)&fe->te_param.critical); + + wan_init_timer( + &fe->timer, + sdla_te_timer, + (wan_timer_arg_t)fe); + + wan_clear_bit(TE_TIMER_KILL,(void*)&fe->te_param.critical); + wan_clear_bit(TE_TIMER_RUNNING,(void*)&fe->te_param.critical); + + fe_event.type = TE_LINKDOWN_TIMER; + fe_event.delay = POLLING_TE1_TIMER; + sdla_te_add_event(fe, &fe_event); + sdla_te_add_timer(fe, HZ); + return 0; +} + +/* + ****************************************************************************** + * sdla_te_pre_release() + * + * Description: T1/E1 pre release routines (not locked). + * Arguments: + * Returns: + ****************************************************************************** + */ +static int sdla_te_pre_release(void* pfe) +{ + sdla_fe_t *fe = (sdla_fe_t*)pfe; + sdla_fe_timer_event_t *fe_event; + wan_smp_flag_t smp_flags; + + /* Kill TE timer poll command */ + wan_set_bit(TE_TIMER_KILL,(void*)&fe->te_param.critical); + if (wan_test_bit(TE_TIMER_RUNNING,(void*)&fe->te_param.critical)){ + wan_del_timer(&fe->timer); + } + wan_clear_bit(TE_TIMER_RUNNING,(void*)&fe->te_param.critical); + wan_spin_lock_irq(&fe->lock,&smp_flags); + while(!WAN_LIST_EMPTY(&fe->event)){ + fe_event = WAN_LIST_FIRST(&fe->event); + WAN_LIST_REMOVE(fe_event, next); + if (fe_event) wan_free(fe_event); + } + wan_spin_unlock_irq(&fe->lock,&smp_flags); + return 0; +} + + /* ****************************************************************************** * sdla_te_set_intr() @@ -4349,17 +4486,14 @@ static void sdla_te_set_intr(sdla_fe_t* fe) fe->name, FE_MEDIA_DECODE(fe)); -#if defined(FE_LOS_ENABLE) /* Enable LOS interrupt */ WRITE_REG(REG_CDRC_INT_EN, BIT_CDRC_INT_EN_LOSE); -#endif #if defined(FE_ALOS_ENABLE) /* Enable ALOS interrupt */ WRITE_REG(REG_RLPS_CFG_STATUS, READ_REG(REG_RLPS_CFG_STATUS) | BIT_RLPS_CFG_STATUS_ALOSE); #endif - if (IS_T1_FEMEDIA(fe)){ /* Enable RBOC interrupt */ WRITE_REG(REG_T1_RBOC_ENABLE, @@ -4523,10 +4657,14 @@ static int sdla_te_global_unconfig(void* pfe) static int sdla_te_unconfig(void* pfe) { sdla_fe_t *fe = (sdla_fe_t*)pfe; -#if defined(__WINDOWS__) - sdla_t* card = (sdla_t*)fe->card; -#endif + /* Verify the FE timer is stopped */ + if (!wan_test_bit(TE_TIMER_KILL,(void*)&fe->te_param.critical)){ + DEBUG_EVENT("%s: Front-End timer is not stopped!\n", + fe->name); + return -EINVAL; + } + if (!wan_test_bit(TE_CONFIGURED,(void*)&fe->te_param.critical)){ return -EINVAL; } @@ -4536,24 +4674,6 @@ static int sdla_te_unconfig(void* pfe) /* Clear TE_CONFIGURED flag */ wan_clear_bit(TE_CONFIGURED,(void*)&fe->te_param.critical); - /* Kill TE timer poll command */ - wan_set_bit(TE_TIMER_KILL,(void*)&fe->te_param.critical); - -#if defined(__WINDOWS__) - /* can NOT stop timer while holding the spinlock(s) */ - wan_spin_unlock_irq(&card->wandev.lock,NULL); - card->hw_iface.hw_unlock(card->hw,NULL); -#endif - - wan_del_timer(&fe->te_param.timer); - -#if defined(__WINDOWS__) - card->hw_iface.hw_lock(card->hw,NULL); - wan_spin_lock_irq(&card->wandev.lock,NULL); -#endif - - fe->te_param.timer_cmd = 0x00; - wan_clear_bit(TE_TIMER_RUNNING,(void*)&fe->te_param.critical); ClearTemplate(fe); @@ -4633,7 +4753,7 @@ static int sdla_te_is_e1_alarm(sdla_fe_t *fe, unsigned long alarm) return (alarm & WAN_TE1_UNFRAMED_ALARMS); } return (alarm & WAN_TE1_FRAMED_ALARMS); -} +} /* ****************************************************************************** @@ -4649,7 +4769,7 @@ static void sdla_te_set_status(sdla_fe_t* fe, unsigned long alarms) { sdla_t *card = (sdla_t*)fe->card; unsigned char curr_fe_status = fe->fe_status; - + if (IS_T1_FEMEDIA(fe)){ if (sdla_te_is_t1_alarm(fe, alarms)){ if (fe->fe_status != FE_DISCONNECTED){ @@ -4681,7 +4801,6 @@ static void sdla_te_set_status(sdla_fe_t* fe, unsigned long alarms) } } } - if (curr_fe_status != fe->fe_status){ if (fe->fe_status == FE_CONNECTED){ DEBUG_EVENT("%s: %s connected!\n", @@ -4697,7 +4816,6 @@ static void sdla_te_set_status(sdla_fe_t* fe, unsigned long alarms) } } - return; } @@ -5031,7 +5149,7 @@ static int sdla_te_clear_alarms(sdla_fe_t* fe, unsigned long alarms) #define PMON_DEF_NUM 0x1FFF static int sdla_te_pmon(sdla_fe_t *fe, int action) { - sdla_te_pmon_t *pmon = &fe->fe_stats.u.te_pmon; + sdla_te_pmon_t *pmon = &fe->fe_stats.te_pmon; u16 pmon1, pmon2, pmon3, pmon4; WAN_ASSERT(fe->write_fe_reg == NULL); @@ -5091,13 +5209,13 @@ static int sdla_te_pmon(sdla_fe_t *fe, int action) */ static int sdla_te_flush_pmon(sdla_fe_t *fe) { - fe->fe_stats.u.te_pmon.lcv_errors = 0; - fe->fe_stats.u.te_pmon.fer_errors = 0; - fe->fe_stats.u.te_pmon.oof_errors = 0; - fe->fe_stats.u.te_pmon.bee_errors = 0; - fe->fe_stats.u.te_pmon.fas_errors = 0; - fe->fe_stats.u.te_pmon.feb_errors = 0; - fe->fe_stats.u.te_pmon.crc4_errors = 0; + fe->fe_stats.te_pmon.lcv_errors = 0; + fe->fe_stats.te_pmon.fer_errors = 0; + fe->fe_stats.te_pmon.oof_errors = 0; + fe->fe_stats.te_pmon.bee_errors = 0; + fe->fe_stats.te_pmon.fas_errors = 0; + fe->fe_stats.te_pmon.feb_errors = 0; + fe->fe_stats.te_pmon.crc4_errors = 0; return 0; } @@ -5217,10 +5335,13 @@ static int sdla_te_intr(sdla_fe_t *fe) sdla_te_set_status(fe, fe->fe_alarm); if (status != fe->fe_status){ if (fe->fe_status != FE_CONNECTED){ + sdla_fe_timer_event_t fe_event; /* AL: March 1, 2006: Disable FE intr */ sdla_te_clear_intr(fe); /* Start T1/E1 timer (5 sec) */ - sdla_te_enable_timer(fe, TE_LINKDOWN_TIMER, POLLING_TE1_TIMER * 5); + fe_event.type = TE_LINKDOWN_TIMER; + fe_event.delay = POLLING_TE1_TIMER * 5; + sdla_te_add_event(fe, &fe_event); } } @@ -5457,15 +5578,13 @@ Alex Sep 16 time = SYSTEM_TICKS; status &= MASK_T1_RBOC_CODE_STATUS; switch(status){ - - case RBOC_CODE_YEL: + case RBOC_CODE_YEL: if (WAN_NET_RATELIMIT()){ DEBUG_EVENT( "%s: Received Yellow alarm condition!\n", fe->name); } - break; - + break; case LINELB_ACTIVATE_CODE: case LINELB_DEACTIVATE_CODE: if (wan_test_bit(LINELB_WAITING,(void*)&fe->te_param.critical) && @@ -6184,108 +6303,159 @@ static void sdla_te_timer(unsigned long pfe) sdla_fe_t *fe = (sdla_fe_t*)pfe; sdla_t *card = (sdla_t*)fe->card; wan_device_t *wandev = &card->wandev; + wan_smp_flag_t smp_flags; + int empty = 1; + + DEBUG_TIMER("%s: %s timer!\n", + fe->name, + FE_MEDIA_DECODE(fe)); if (wan_test_bit(TE_TIMER_KILL,(void*)&fe->te_param.critical)){ wan_clear_bit(TE_TIMER_RUNNING,(void*)&fe->te_param.critical); return; } - /*WAN_ASSERT1(wandev->te_enable_timer == NULL); */ - DEBUG_TIMER("%s: %s timer!\n", - fe->name, - FE_MEDIA_DECODE(fe)); - - /* Enable hardware interrupt for TE1 */ - - if (wandev->fe_enable_timer){ - wandev->fe_enable_timer(fe->card); - }else{ - sdla_te_polling(fe); + if (!wan_test_bit(TE_TIMER_RUNNING,(void*)&fe->te_param.critical)){ + /* Somebody clear this bit */ + DEBUG_EVENT("WARNING: %s: Timer bit is cleared (should never happened)!\n", + fe->name); + return; + } + wan_clear_bit(TE_TIMER_RUNNING,(void*)&fe->te_param.critical); + + /* Enable hardware interrupt for TE1 */ + wan_spin_lock_irq(&fe->lock,&smp_flags); + empty = WAN_LIST_EMPTY(&fe->event); + wan_spin_unlock_irq(&fe->lock,&smp_flags); + if (!empty){ + if (wan_test_and_set_bit(TE_TIMER_EVENT_PENDING,(void*)&fe->te_param.critical)){ + DEBUG_EVENT("%s: RM timer event is pending!\n", fe->name); + return; + } + if (wandev->fe_enable_timer){ + wandev->fe_enable_timer(fe->card); + }else{ + sdla_te_polling(fe); + } + }else{ + sdla_te_add_timer(fe, 1000); } - return; } /* ****************************************************************************** - * sdla_te_enable_timer() + * sdla_te_add_event() * * Description: Enable software timer interrupt in delay ms. * Arguments: * Returns: ****************************************************************************** */ -static void sdla_te_enable_timer(sdla_fe_t* fe, unsigned char cmd, unsigned int delay) +static int +sdla_te_add_event(sdla_fe_t *fe, sdla_fe_timer_event_t *fe_event) { - sdla_t *card = (sdla_t*)fe->card; + sdla_t *card = (sdla_t*)fe->card; + sdla_fe_timer_event_t *new_fe_event = NULL; + wan_smp_flag_t smp_flags; + + WAN_ASSERT(card == NULL); + WAN_ASSERT(fe_event == NULL); + + DEBUG_TE1("%s: Add new TE1 Event=0x%X\n", + fe->name, fe_event->type); - WAN_ASSERT1(card == NULL); - DEBUG_TEST("%s: %s:%d Cmd=0x%X\n", - fe->name,__FUNCTION__,__LINE__,cmd); - -#if defined (__WINDOWS__) - { - int rc=SILENT; - /* make sure not called from ISR */ - VERIFY_DISPATCH_IRQL(rc); - if(rc){ - DEBUG_EVENT("%s(): Error: invalid IRQL! current irql: %d\n", - __FUNCTION__, KeGetCurrentIrql()); - return; - } - } -#endif - if (wan_test_bit(TE_TIMER_KILL,(void*)&fe->te_param.critical)){ - wan_clear_bit( - TE_TIMER_RUNNING, - (void*)&fe->te_param.critical); - return; + /* Creating event timer */ + new_fe_event = wan_malloc(sizeof(sdla_fe_timer_event_t)); + if (new_fe_event == NULL){ + DEBUG_EVENT( + "%s: Failed to allocate memory for timer event!\n", + fe->name); + return -EINVAL; } - if (wan_test_bit(TE_TIMER_RUNNING,(void*)&fe->te_param.critical)){ - if (fe->te_param.timer_cmd == cmd){ - /* Just ignore current request */ - return; + memcpy(new_fe_event, fe_event, sizeof(sdla_fe_timer_event_t)); + wan_spin_lock_irq(&fe->lock,&smp_flags); + if (WAN_LIST_EMPTY(&fe->event)){ + WAN_LIST_INSERT_HEAD(&fe->event, new_fe_event, next); + }else{ + sdla_fe_timer_event_t *tmp; + WAN_LIST_FOREACH(tmp, &fe->event, next){ + if (!WAN_LIST_NEXT(tmp, next)) break; } - DEBUG_TEST("%s: TE_TIMER_RUNNING: new_cmd=%X curr_cmd=%X\n", - fe->name, - cmd, - fe->te_param.timer_cmd); - return; + if (tmp == NULL){ + DEBUG_EVENT("%s: Internal Error!!!\n", fe->name); + wan_spin_unlock_irq(&fe->lock,&smp_flags); + return -EINVAL; + } + WAN_LIST_INSERT_AFTER(tmp, new_fe_event, next); } - - wan_set_bit(TE_TIMER_RUNNING,(void*)&fe->te_param.critical); - - fe->te_param.timer_cmd=cmd; - - wan_add_timer(&fe->te_param.timer, delay * HZ / 1000); - return; + wan_spin_unlock_irq(&fe->lock,&smp_flags); + return 0; } +/* + ****************************************************************************** + * sdla_ds_te1_add_timer() + * + * Description: Enable software timer interrupt in delay ms. + * Arguments: + * Returns: + ****************************************************************************** + */ +static int sdla_te_add_timer(sdla_fe_t* fe, unsigned long delay) +{ + int err; + + err = wan_add_timer(&fe->timer, delay * HZ / 1000); + if (err){ + /* Failed to add timer */ + return -EINVAL; + } + wan_set_bit(TE_TIMER_RUNNING,(void*)&fe->te_param.critical); + return 0; +} + + + /* ****************************************************************************** * sdla_te_polling() * * Description: * Arguments: - * Returns: + * Returns: 0 - no action is required + * 1 - schedule front-end timer + * <0 - error ****************************************************************************** */ static int sdla_te_polling(sdla_fe_t* fe) { - sdla_t* card = (sdla_t*)fe->card; - + sdla_t *card = (sdla_t*)fe->card; + sdla_fe_timer_event_t *fe_event; + u_int8_t pending = 0; + wan_smp_flag_t smp_flags; + WAN_ASSERT(fe->write_fe_reg == NULL); WAN_ASSERT(fe->read_fe_reg == NULL); + wan_spin_lock_irq(&fe->lock,&smp_flags); + if (WAN_LIST_EMPTY(&fe->event)){ + wan_spin_unlock_irq(&fe->lock,&smp_flags); + DEBUG_EVENT("%s: WARNING: No FE events in a queue!\n", + fe->name); + sdla_te_add_timer(fe, HZ); + return 0; + } + fe_event = WAN_LIST_FIRST(&fe->event); + WAN_LIST_REMOVE(fe_event, next); + wan_spin_unlock_irq(&fe->lock,&smp_flags); + DEBUG_TEST("%s: %s Polling State=%s Cmd=0x%X!\n", fe->name, FE_MEDIA_DECODE(fe), fe->fe_status==FE_CONNECTED?"Con":"Disconn", - fe->te_param.timer_cmd); - - wan_clear_bit(TE_TIMER_RUNNING,(void*)&fe->te_param.critical); + fe_event->type); - switch(fe->te_param.timer_cmd){ - + switch(fe_event->type){ case TE_LINELB_TIMER: if (IS_T1_FEMEDIA(fe)){ @@ -6302,7 +6472,9 @@ static int sdla_te_polling(sdla_fe_t* fe) } if (fe->te_param.lb_tx_cnt--){ - sdla_te_enable_timer(fe, TE_LINELB_TIMER, LINELB_TE1_TIMER); + fe_event->type = TE_LINELB_TIMER; + fe_event->delay = LINELB_TE1_TIMER; + pending = 1; }else{ DEBUG_EVENT("%s: T1 loopback %s signal sent.\n", fe->name, @@ -6323,9 +6495,13 @@ static int sdla_te_polling(sdla_fe_t* fe) sdla_te_pmon(fe, WAN_FE_PMON_UPDATE); sdla_te_set_status(fe, fe->fe_alarm); if (fe->fe_status == FE_CONNECTED){ - sdla_te_enable_timer(fe, TE_LINKUP_TIMER, POLLING_TE1_TIMER); + fe_event->type = TE_LINKUP_TIMER; + fe_event->delay = POLLING_TE1_TIMER; + pending = 1; }else{ - sdla_te_enable_timer(fe, TE_LINKDOWN_TIMER, POLLING_TE1_TIMER); + fe_event->type = TE_LINKDOWN_TIMER; + fe_event->delay = POLLING_TE1_TIMER; + pending = 1; } break; @@ -6341,7 +6517,9 @@ static int sdla_te_polling(sdla_fe_t* fe) /* AL: March 1, 2006: Enable FE INTR */ sdla_te_set_intr(fe); }else{ - sdla_te_enable_timer(fe, TE_LINKDOWN_TIMER, POLLING_TE1_TIMER); + fe_event->type = TE_LINKDOWN_TIMER; + fe_event->delay = POLLING_TE1_TIMER; + pending = 1; } break; @@ -6353,11 +6531,51 @@ static int sdla_te_polling(sdla_fe_t* fe) case TE_SET_RBS: /* Set RBS bits */ sdla_te_set_rbsbits( fe, - fe->te_param.timer_channel, - fe->te_param.timer_abcd); - fe->te_param.timer_channel = 0; - fe->te_param.timer_abcd = 0; + fe_event->te_event.rbs_channel, + fe_event->te_event.rbs_abcd); break; + + case TE_POLL_CONFIG: + DEBUG_EVENT("%s: Re-configuring %s Front-End chip...\n", + fe->name, FE_MEDIA_DECODE(fe)); + if (sdla_te_chip_config(fe)){ + DEBUG_EVENT("%s: Failed to re-configuring Front-End chip!\n", + fe->name); + return -EINVAL; + } + fe_event->type = TE_LINKDOWN_TIMER; + fe_event->delay = POLLING_TE1_TIMER; + pending = 1; + break; + + case TE_POLL_READ: + DEBUG_EVENT("%s: Reading %s Front-End register: Reg[%04X]=%02X\n", + fe->name, FE_MEDIA_DECODE(fe), + fe_event->te_event.reg, + READ_REG(fe_event->te_event.value)); + break; + + case TE_POLL_WRITE: + DEBUG_EVENT("%s: Writting %s Front-End register: Reg[%04X]=%02X\n", + fe->name, FE_MEDIA_DECODE(fe), + fe_event->te_event.reg, + fe_event->te_event.value); + WRITE_REG(fe_event->te_event.reg, fe_event->te_event.value); + break; + } + /* Add new event */ + if (pending){ + sdla_te_add_event(fe, fe_event); + } + wan_clear_bit(TE_TIMER_EVENT_PENDING,(void*)&fe->te_param.critical); + if (fe_event) wan_free(fe_event); + + /* Add fe timer */ + fe_event = WAN_LIST_FIRST(&fe->event); + if (fe_event){ + sdla_te_add_timer(fe, fe_event->delay); + }else{ + sdla_te_add_timer(fe, HZ); } return 0; } @@ -6373,6 +6591,8 @@ static int sdla_te_polling(sdla_fe_t* fe) */ static int sdla_te_lb(sdla_fe_t* fe, unsigned char mode) { + sdla_fe_timer_event_t fe_event; + WAN_ASSERT(fe->write_fe_reg == NULL); WAN_ASSERT(fe->read_fe_reg == NULL); @@ -6382,9 +6602,6 @@ static int sdla_te_lb(sdla_fe_t* fe, unsigned char mode) if (fe->fe_status != FE_CONNECTED){ return 1; } - if (wan_test_bit(TE_TIMER_RUNNING,(void*)&fe->te_param.critical)){ - return 1; - } if (wan_test_bit(LINELB_WAITING,(void*)&fe->te_param.critical)){ DEBUG_TE1("%s: Still waiting for far end to send loopback signal back!\n", fe->name); @@ -6399,7 +6616,9 @@ static int sdla_te_lb(sdla_fe_t* fe, unsigned char mode) wan_set_bit(LINELB_WAITING,(void*)&fe->te_param.critical); wan_set_bit(LINELB_CODE_BIT,(void*)&fe->te_param.critical); wan_set_bit(LINELB_CHANNEL_BIT,(void*)&fe->te_param.critical); - sdla_te_enable_timer(fe, TE_LINELB_TIMER, LINELB_TE1_TIMER); + fe_event.type = TE_LINELB_TIMER; + fe_event.delay = LINELB_TE1_TIMER; + sdla_te_add_event(fe, &fe_event); return 0; } @@ -6416,9 +6635,10 @@ static int sdla_te_lb(sdla_fe_t* fe, unsigned char mode) */ static int sdla_te_udp(sdla_fe_t *fe, void* p_udp_cmd, unsigned char* data) { - wan_cmd_t *udp_cmd = (wan_cmd_t*)p_udp_cmd; - sdla_fe_debug_t *fe_debug; - int err = 0; + wan_cmd_t *udp_cmd = (wan_cmd_t*)p_udp_cmd; + sdla_fe_debug_t *fe_debug; + sdla_fe_timer_event_t fe_event; + int err = 0; switch(udp_cmd->wan_cmd_command){ case WAN_GET_MEDIA_TYPE: @@ -6470,7 +6690,9 @@ static int sdla_te_udp(sdla_fe_t *fe, void* p_udp_cmd, unsigned char* data) if (fe_debug->mode == WAN_FE_DEBUG_RBS_READ){ DEBUG_EVENT("%s: Reading RBS status!\n", fe->name); - sdla_te_enable_timer(fe, TE_RBS_READ, POLLING_TE1_TIMER); + fe_event.type = TE_RBS_READ; + fe_event.delay = POLLING_TE1_TIMER; + sdla_te_add_event(fe, &fe_event); udp_cmd->wan_cmd_return_code = WAN_CMD_OK; }else if (fe_debug->mode == WAN_FE_DEBUG_RBS_PRINT){ sdla_te_rbs_print(fe, 1); @@ -6506,24 +6728,30 @@ static int sdla_te_udp(sdla_fe_t *fe, void* p_udp_cmd, unsigned char* data) }else if (fe_debug->mode == WAN_FE_DEBUG_RBS_SET){ /* Set RBS bits */ if (IS_T1_FEMEDIA(fe)){ - if (fe_debug->channel < 1 || fe_debug->channel > 24){ - DEBUG_EVENT("%s: Invalid channel number %d\n", - fe->name, - fe_debug->channel); + if (fe_debug->fe_debug_rbs.channel < 1 || + fe_debug->fe_debug_rbs.channel > 24){ + DEBUG_EVENT( + "%s: Invalid channel number %d\n", + fe->name, + fe_debug->fe_debug_rbs.channel); break; } }else{ - if (fe_debug->channel < 0 || fe_debug->channel > 31){ - DEBUG_EVENT("%s: Invalid channel number %d\n", - fe->name, - fe_debug->channel); + if (fe_debug->fe_debug_rbs.channel < 0 || + fe_debug->fe_debug_rbs.channel > 31){ + DEBUG_EVENT( + "%s: Invalid channel number %d\n", + fe->name, + fe_debug->fe_debug_rbs.channel); break; } } - fe->te_param.timer_channel = fe_debug->channel; - fe->te_param.timer_abcd = fe_debug->abcd; - sdla_te_enable_timer(fe, TE_SET_RBS, POLLING_TE1_TIMER); + fe_event.type = TE_SET_RBS; + fe_event.delay = POLLING_TE1_TIMER; + fe_event.te_event.rbs_channel = fe_debug->fe_debug_rbs.channel; + fe_event.te_event.rbs_abcd = fe_debug->fe_debug_rbs.abcd; + sdla_te_add_event(fe, &fe_event); udp_cmd->wan_cmd_return_code = WAN_CMD_OK; } break; @@ -6552,6 +6780,21 @@ static int sdla_te_udp(sdla_fe_t *fe, void* p_udp_cmd, unsigned char* data) udp_cmd->wan_cmd_return_code = WAN_CMD_OK; } break; + case WAN_FE_DEBUG_RECONFIG: + fe_event.type = TE_POLL_CONFIG; + fe_event.delay = POLLING_TE1_TIMER; + sdla_te_add_event(fe, &fe_event); + udp_cmd->wan_cmd_return_code = WAN_CMD_OK; + break; + + case WAN_FE_DEBUG_REG: + fe_event.type = (fe_debug->fe_debug_reg.read) ? + TE_POLL_READ : TE_POLL_WRITE; + fe_event.te_event.reg = fe_debug->fe_debug_reg.reg; + fe_event.te_event.value = fe_debug->fe_debug_reg.value; + fe_event.delay = POLLING_TE1_TIMER; + sdla_te_add_event(fe, &fe_event); + udp_cmd->wan_cmd_return_code = WAN_CMD_OK; default: udp_cmd->wan_cmd_return_code = WAN_UDP_INVALID_CMD; break; @@ -6707,7 +6950,8 @@ static int sdla_te_rbs_update(sdla_fe_t* fe, int channo, unsigned char status) { - if (fe->fe_debug & WAN_FE_DEBUG_RBS_RX_ENABLE){ + if (fe->fe_debug & WAN_FE_DEBUG_RBS_RX_ENABLE && + fe->te_param.rx_rbs[channo] != status){ DEBUG_EVENT( "%s: %s:%-3d RX RBS A:%1d B:%1d C:%1d D:%1d\n", fe->name, @@ -7212,7 +7456,7 @@ static int sdla_te_get_snmp_data(sdla_fe_t* fe, void* pdev, void* data) netdevice_t* dev = (netdevice_t *)dev_ptr; #endif wanpipe_snmp_t* snmp; - sdla_te_pmon_t* pmon = &fe->fe_stats.u.te_pmon; + sdla_te_pmon_t* pmon = &fe->fe_stats.te_pmon; unsigned long alarms = 0; snmp = (wanpipe_snmp_t*)data; @@ -7345,21 +7589,21 @@ sdla_te_update_pmon_info(sdla_fe_t* fe, struct seq_file* m, int* stop_cnt) if (IS_T1_FEMEDIA(fe)){ PROC_ADD_LINE(m, PROC_STATS_PMON_FORMAT, - "Framing Bit Error", fe->fe_stats.u.te_pmon.fer_errors, - "Line Code Violation", fe->fe_stats.u.te_pmon.lcv_errors); + "Framing Bit Error", fe->fe_stats.te_pmon.fer_errors, + "Line Code Violation", fe->fe_stats.te_pmon.lcv_errors); PROC_ADD_LINE(m, PROC_STATS_PMON_FORMAT, - "Out of Frame Errors", fe->fe_stats.u.te_pmon.oof_errors, - "Bit Errors", fe->fe_stats.u.te_pmon.bee_errors); + "Out of Frame Errors", fe->fe_stats.te_pmon.oof_errors, + "Bit Errors", fe->fe_stats.te_pmon.bee_errors); }else{ PROC_ADD_LINE(m, PROC_STATS_PMON_FORMAT, - "Frame Alighment Signal", fe->fe_stats.u.te_pmon.fas_errors, - "Line Code Violation", fe->fe_stats.u.te_pmon.lcv_errors); + "Frame Alighment Signal", fe->fe_stats.te_pmon.fas_errors, + "Line Code Violation", fe->fe_stats.te_pmon.lcv_errors); PROC_ADD_LINE(m, PROC_STATS_PMON_FORMAT, - "CRC4 Errors", fe->fe_stats.u.te_pmon.crc4_errors, - "Far End Block Errors", fe->fe_stats.u.te_pmon.feb_errors); + "CRC4 Errors", fe->fe_stats.te_pmon.crc4_errors, + "Far End Block Errors", fe->fe_stats.te_pmon.feb_errors); } return m->count; diff --git a/patches/kdrivers/src/net/sdla_te3.c b/patches/kdrivers/src/net/sdla_te3.c index 838108e..4027a30 100644 --- a/patches/kdrivers/src/net/sdla_te3.c +++ b/patches/kdrivers/src/net/sdla_te3.c @@ -245,38 +245,30 @@ static int sdla_ds3_rx_isr(sdla_fe_t *fe) status = READ_REG(REG_RxDS3_CFG_STATUS); if (fe->fe_cfg.frame == WAN_FR_DS3_Cbit && value & BIT_RxDS3_INT_STATUS_CPBIT_ERR){ if (WAN_NET_RATELIMIT()){ - DEBUG_TE3("%s: CP Bit Error interrupt detected!\n", + DEBUG_EVENT("%s: CP Bit Error interrupt detected!\n", fe->name); } } if (value & BIT_RxDS3_INT_STATUS_LOS){ if (status & BIT_RxDS3_CFG_STATUS_RxLOS){ - if (WAN_NET_RATELIMIT()){ DEBUG_EVENT("%s: LOS Status ON!\n", fe->name); - } fe->fe_alarm |= WAN_TE3_BIT_LOS_ALARM; }else{ - if (WAN_NET_RATELIMIT()){ DEBUG_EVENT("%s: LOS Status OFF!\n", fe->name); - } fe->fe_alarm &= ~WAN_TE3_BIT_LOS_ALARM; } } if (value & BIT_RxDS3_INT_STATUS_AIS){ - if (WAN_NET_RATELIMIT()){ DEBUG_EVENT("%s: AIS status %s!\n", fe->name, (status & BIT_RxDS3_CFG_STATUS_RxAIS) ? "ON" : "OFF"); - } } if (value & BIT_RxDS3_INT_STATUS_IDLE){ - if (WAN_NET_RATELIMIT()){ - DEBUG_TE3("%s: IDLE condition status %s!\n", + DEBUG_EVENT("%s: IDLE condition status %s!\n", fe->name, (status & BIT_RxDS3_CFG_STATUS_RxIDLE) ? "ON" : "OFF"); - } } if (value & BIT_RxDS3_INT_STATUS_OOF){ if (status & BIT_RxDS3_CFG_STATUS_RxLOS){ @@ -302,27 +294,23 @@ static int sdla_ds3_rx_isr(sdla_fe_t *fe) } } if (fe->fe_cfg.frame == WAN_FR_DS3_Cbit && value & BIT_RxDS3_INT_STATUS_AIC){ - if (WAN_NET_RATELIMIT()){ - DEBUG_TE3("%s: AIC bit-field status %s!\n", + DEBUG_EVENT("%s: AIC bit-field status %s!\n", fe->name, (status & BIT_RxDS3_STATUS_RxAIC) ? "ON" : "OFF"); - } } if (value & BIT_RxDS3_INT_STATUS_PBIT_ERR){ - if (WAN_NET_RATELIMIT()){ - DEBUG_TE3("%s: P-Bit error interrupt!\n", + DEBUG_EVENT("%s: P-Bit error interrupt!\n", fe->name); - } } /* RxDS3 FEAC Interrupt (0x17) */ value = READ_REG(REG_RxDS3_FEAC_INT); if (value & BIT_RxDS3_FEAC_REMOVE_INT_STATUS){ - DEBUG_TE3("%s: RxFEAC Remove Interrupt!\n", + DEBUG_EVENT("%s: RxFEAC Remove Interrupt!\n", fe->name); } if (value & BIT_RxDS3_FEAC_VALID_INT_STATUS){ - DEBUG_TE3("%s: RxFEAC Valid Interrupt!\n", + DEBUG_EVENT("%s: RxFEAC Valid Interrupt!\n", fe->name); } diff --git a/patches/kdrivers/src/net/sdla_te3.old.c b/patches/kdrivers/src/net/sdla_te3.old.c deleted file mode 100644 index 37b38c9..0000000 --- a/patches/kdrivers/src/net/sdla_te3.old.c +++ /dev/null @@ -1,1035 +0,0 @@ -/****************************************************************************** - * - * sdla_te3.c Sangoma T3/E3 front end. - * - * Alex Feldman - * - * Copyright Sangoma Technologies Inc. 1999, 2000,2001, 2002, 2003, 2004 - * - * This program is provided subject to the Software License included in - * this package in the file license.txt. By using this program you agree - * to be bound bythe terms of this license. - * - * Should you not have a copy of the file license.txt, or wish to obtain - * a hard copy of the Software License, please contact Sangoma - * technologies Corporation. - * - * Contact: Sangoma Technologies Inc. 905-474-1990, info@sangoma.com - * - *****************************************************************************/ - - -/****************************************************************************** -** INCLUDE FILES -******************************************************************************/ - -#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) -# include -# if !defined(CONFIG_PRODUCT_WANPIPE_GENERIC) -# include -# endif -# include -# include -# include -# include /* WANPIPE common user API definitions */ -# include -#elif (defined __LINUX__) || (defined __KERNEL__) -# include -# include -# include -# include -# include -# include /* WANPIPE common user API definitions */ -#else -# error "No OS Defined" -#endif - -/****************************************************************************** -** DEFINES AND MACROS -******************************************************************************/ - -/****************************************************************************** -** DEFINES AND MACROS -******************************************************************************/ - -#if defined(DEBUG) -#define WRITE_CPLD(reg,val) \ - DEBUG_EVENT("%s: Write to CPLD reg %d value %X\n", \ - fe->name, reg, val); - -#define WRITE_FRAMER(reg,val) \ - DEBUG_EVENT("%s: Write to Framer off %X value %X\n", \ - fe->name, reg, val); -#else - -#define WRITE_CPLD(reg,val) \ - (fe->write_cpld) ? fe->write_cpld(fe->card, reg, val) : -EINVAL - -#define WRITE_FRAMER(reg,val) \ - (fe->write_framer) ? fe->write_framer(fe->card, reg, val) : -EINVAL -#define READ_FRAMER(reg) \ - (fe->read_framer) ? fe->read_framer(fe->card, reg) : 0 -#endif - -#define WAN_FE_SWAP_BIT(value, mask) \ - if ((value) & mask){ \ - (value) &= ~mask; \ - }else{ \ - (value) |= mask; \ - } - -/* DS3: Define DS3 alarm states: LOS OOF YEL */ -#define IS_DS3_ALARM(alarm) ((alarm) & \ - (WAN_TE3_BIT_LOS_ALARM | \ - WAN_TE3_BIT_YEL_ALARM | \ - WAN_TE3_BIT_OOF_ALARM)) - -/* DS3: Define E3 alarm states: LOS OOF YEL */ -#define IS_E3_ALARM(alarm) ((alarm) & \ - (WAN_TE3_BIT_LOS_ALARM | \ - WAN_TE3_BIT_YEL_ALARM | \ - WAN_TE3_BIT_OOF_ALARM)) - -/****************************************************************************** -** FUNCTION DEFINITIONS -******************************************************************************/ - -static int sdla_te3_config(void *p_fe); -static int sdla_te3_unconfig(void *p_fe); -static int sdla_te3_get_fe_status(sdla_fe_t *fe, unsigned char *status); -static int sdla_te3_polling(sdla_fe_t *fe); -static int sdla_ds3_isr(sdla_fe_t *fe); -static int sdla_e3_isr(sdla_fe_t *fe); -static int sdla_te3_isr(sdla_fe_t *fe); -static int sdla_te3_udp(sdla_fe_t *fe, void*, unsigned char*); -static unsigned int sdla_te3_alarm(sdla_fe_t *fe, int); -static int sdla_te3_read_pmon(sdla_fe_t *fe, int); - -static int sdla_te3_update_alarm_info(sdla_fe_t* fe, struct seq_file* m, int* stop_cnt); -static int sdla_te3_update_pmon_info(sdla_fe_t* fe, struct seq_file* m, int* stop_cnt); - -/****************************************************************************** - * sdla_te3_get_fe_status() - * - * Description: - * Arguments: - * Returns: - ****************************************************************************** - */ -static char* sdla_te3_get_fe_media_string(void) -{ - return ("AFT T3/E3"); -} - -/****************************************************************************** - * sdla_te3_get_fe_status() - * - * Description: - * Arguments: - * Returns: - ****************************************************************************** - */ -static unsigned char sdla_te3_get_fe_media(sdla_fe_t *fe) -{ - return fe->fe_cfg.media; -} - -/****************************************************************************** - * sdla_te3_get_fe_status() - * - * Description: - * Arguments: - * Returns: - ****************************************************************************** - */ -static int sdla_te3_get_fe_status(sdla_fe_t *fe, unsigned char *status) -{ - *status = fe->fe_status; - return 0; -} - -/****************************************************************************** - * sdla_te3_polling() - * - * Description: - * Arguments: - * Returns: - ****************************************************************************** - */ -static int sdla_te3_polling(sdla_fe_t *fe) -{ - DEBUG_EVENT("%s: %s: This function is still not supported!\n", - fe->name, __FUNCTION__); - return -EINVAL; -} - -/****************************************************************************** - * sdla_te3_set_status() - * - * Description: - * Arguments: - * Returns: - ****************************************************************************** - */ -static int sdla_te3_set_status(sdla_fe_t *fe) -{ - if (IS_DS3(&fe->fe_cfg)){ - if (IS_DS3_ALARM(fe->fe_alarm)){ - if (fe->fe_status != FE_DISCONNECTED){ - DEBUG_EVENT("%s: DS3 disconnected!\n", - fe->name); - fe->fe_status = FE_DISCONNECTED; - } - }else{ - if (fe->fe_status != FE_CONNECTED){ - DEBUG_EVENT("%s: DS3 connected!\n", - fe->name); - fe->fe_status = FE_CONNECTED; - } - } - }else if (IS_E3(&fe->fe_cfg)){ - if (IS_E3_ALARM(fe->fe_alarm)){ - if (fe->fe_status != FE_DISCONNECTED){ - DEBUG_EVENT("%s: E3 disconnected!\n", - fe->name); - fe->fe_status = FE_DISCONNECTED; - } - }else{ - if (fe->fe_status != FE_CONNECTED){ - DEBUG_EVENT("%s: E3 connected!\n", - fe->name); - fe->fe_status = FE_CONNECTED; - } - } - }else{ - return -EINVAL; - } - return 0; -} - -/****************************************************************************** -** sdla_ds3_tx_isr() -** -** Description: -** Arguments: -** Returns: -******************************************************************************/ -static int sdla_ds3_tx_isr(sdla_fe_t *fe) -{ - unsigned char value; - - value = READ_FRAMER(REG_TxDS3_LAPD_STATUS); - if (value & BIT_TxDS3_LAPD_STATUS_INT){ - DEBUG_EVENT("%s: LAPD Interrupt!\n", - fe->name); - } - return 0; -} - -/****************************************************************************** -** sdla_ds3_rx_isr() -** -** Description: -** Arguments: -** Returns: -******************************************************************************/ -static int sdla_ds3_rx_isr(sdla_fe_t *fe) -{ - unsigned char value, status; - - /* RxDS3 Interrupt status register (0x13) */ - value = READ_FRAMER(REG_RxDS3_INT_STATUS); - status = READ_FRAMER(REG_RxDS3_CFG_STATUS); - if (fe->fe_cfg.frame == WAN_FR_DS3_Cbit && value & BIT_RxDS3_INT_STATUS_CPBIT_ERR){ - if (WAN_NET_RATELIMIT()){ - DEBUG_EVENT("%s: CP Bit Error interrupt detected!\n", - fe->name); - } - } - if (value & BIT_RxDS3_INT_STATUS_LOS){ - if (status & BIT_RxDS3_CFG_STATUS_RxLOS){ - DEBUG_EVENT("%s: LOS Status ON!\n", - fe->name); - fe->fe_alarm |= WAN_TE3_BIT_LOS_ALARM; - }else{ - DEBUG_EVENT("%s: LOS Status OFF!\n", - fe->name); - fe->fe_alarm &= ~WAN_TE3_BIT_LOS_ALARM; - } - } - if (value & BIT_RxDS3_INT_STATUS_AIS){ - DEBUG_EVENT("%s: AIS status %s!\n", - fe->name, - (status & BIT_RxDS3_CFG_STATUS_RxAIS) ? "ON" : "OFF"); - } - if (value & BIT_RxDS3_INT_STATUS_IDLE){ - DEBUG_EVENT("%s: IDLE condition status %s!\n", - fe->name, - (status & BIT_RxDS3_CFG_STATUS_RxIDLE) ? "ON" : "OFF"); - } - if (value & BIT_RxDS3_INT_STATUS_OOF){ - if (status & BIT_RxDS3_CFG_STATUS_RxLOS){ - DEBUG_EVENT("%s: OOF Alarm ON!\n", - fe->name); - fe->fe_alarm |= WAN_TE3_BIT_OOF_ALARM; - }else{ - DEBUG_EVENT("%s: OOF Alarm OFF!\n", - fe->name); - fe->fe_alarm &= ~WAN_TE3_BIT_OOF_ALARM; - } - } - status = READ_FRAMER(REG_RxDS3_STATUS); - if (value & BIT_RxDS3_INT_STATUS_FERF){ - if (status & BIT_RxDS3_STATUS_RxFERF){ - DEBUG_EVENT("%s: Rx FERF status is ON (YELLOW)!\n", - fe->name); - fe->fe_alarm |= WAN_TE3_BIT_YEL_ALARM; - }else{ - DEBUG_EVENT("%s: Rx FERF status is OFF!\n", - fe->name); - fe->fe_alarm &= ~WAN_TE3_BIT_YEL_ALARM; - } - } - if (fe->fe_cfg.frame == WAN_FR_DS3_Cbit && value & BIT_RxDS3_INT_STATUS_AIC){ - DEBUG_EVENT("%s: AIC bit-field status %s!\n", - fe->name, - (status & BIT_RxDS3_STATUS_RxAIC) ? "ON" : "OFF"); - } - if (value & BIT_RxDS3_INT_STATUS_PBIT_ERR){ - DEBUG_EVENT("%s: P-Bit error interrupt!\n", - fe->name); - } - - /* RxDS3 FEAC Interrupt (0x17) */ - value = READ_FRAMER(REG_RxDS3_FEAC_INT); - if (value & BIT_RxDS3_FEAC_REMOVE_INT_STATUS){ - DEBUG_EVENT("%s: RxFEAC Remove Interrupt!\n", - fe->name); - } - if (value & BIT_RxDS3_FEAC_VALID_INT_STATUS){ - DEBUG_EVENT("%s: RxFEAC Valid Interrupt!\n", - fe->name); - } - - return 0; -} - -/****************************************************************************** -** sdla_ds3_isr() -** -** Description: -** Arguments: -** Returns: -******************************************************************************/ -static int sdla_ds3_isr(sdla_fe_t *fe) -{ - unsigned char value; - - value = READ_FRAMER(REG_BLOCK_INT_STATUS); - if (value & BIT_BLOCK_INT_STATUS_RxDS3_E3){ - sdla_ds3_rx_isr(fe); - } - if (value & BIT_BLOCK_INT_STATUS_TxDS3_E3){ - sdla_ds3_tx_isr(fe); - } - - return 0; -} - -/****************************************************************************** -** sdla_e3_tx_isr() -** -** Description: -** Arguments: -** Returns: -******************************************************************************/ -static int sdla_e3_tx_isr(sdla_fe_t *fe) -{ - DEBUG_EVENT("%s: %s: This function is still not supported!\n", - fe->name, __FUNCTION__); - - return 0; -} - - -/****************************************************************************** -** sdla_e3_rx_isr() -** -** Description: -** Arguments: -** Returns: -******************************************************************************/ -static int sdla_e3_rx_isr(sdla_fe_t *fe) -{ - unsigned char int_status1, int_status2; - unsigned char status; - - int_status1 = READ_FRAMER(REG_RxE3_INT_STATUS_1); - int_status2 = READ_FRAMER(REG_RxE3_INT_STATUS_2); - status = READ_FRAMER(REG_RxE3_CFG_STATUS_2); - if (int_status1 & BIT_RxE3_INT_STATUS_OOF){ - if (status & BIT_RxE3_CFG_STATUS_RxOOF){ - DEBUG_EVENT("%s: OOF Alarm ON!\n", - fe->name); - fe->fe_alarm |= WAN_TE3_BIT_OOF_ALARM; - }else{ - DEBUG_EVENT("%s: OOF Alarm OFF!\n", - fe->name); - fe->fe_alarm &= ~WAN_TE3_BIT_OOF_ALARM; - } - } - - if (int_status1 & BIT_RxE3_INT_STATUS_LOF){ - if (status & BIT_RxE3_CFG_STATUS_RxLOF){ - DEBUG_EVENT("%s: LOF Alarm ON!\n", - fe->name); - fe->fe_alarm |= WAN_TE3_BIT_LOF_ALARM; - }else{ - DEBUG_EVENT("%s: LOF Alarm OFF!\n", - fe->name); - fe->fe_alarm &= ~WAN_TE3_BIT_LOF_ALARM; - } - } - - if (int_status1 & BIT_RxE3_INT_STATUS_LOS){ - if (status & BIT_RxE3_CFG_STATUS_RxLOS){ - DEBUG_EVENT("%s: LOS Alarm ON!\n", - fe->name); - fe->fe_alarm |= WAN_TE3_BIT_LOS_ALARM; - }else{ - DEBUG_EVENT("%s: LOS Alarm OFF!\n", - fe->name); - fe->fe_alarm &= ~WAN_TE3_BIT_LOS_ALARM; - } - } - - if (int_status1 & BIT_RxE3_INT_STATUS_AIS){ - if (status & BIT_RxE3_CFG_STATUS_RxAIS){ - DEBUG_EVENT("%s: AIS Alarm ON!\n", - fe->name); - fe->fe_alarm |= WAN_TE3_BIT_AIS_ALARM; - }else{ - DEBUG_EVENT("%s: AIS Alarm OFF!\n", - fe->name); - fe->fe_alarm &= ~WAN_TE3_BIT_AIS_ALARM; - } - } - - if (int_status2 & BIT_RxE3_INT_STATUS_FERF){ - if (status & BIT_RxE3_CFG_STATUS_RxFERF){ - DEBUG_EVENT("%s: Rx FERF status is ON (YELLOW)!\n", - fe->name); - fe->fe_alarm |= WAN_TE3_BIT_YEL_ALARM; - }else{ - DEBUG_EVENT("%s: Rx FERF status is OFF!\n", - fe->name); - fe->fe_alarm &= ~WAN_TE3_BIT_YEL_ALARM; - } - } - - return 0; -} - -/****************************************************************************** - * sdla_e3_isr() - * - * Description: - * Arguments: - * Returns: - ****************************************************************************** - */ -static int sdla_e3_isr(sdla_fe_t *fe) -{ - unsigned char value; - - value = READ_FRAMER(REG_BLOCK_INT_STATUS); - if (value & BIT_BLOCK_INT_STATUS_RxDS3_E3){ - sdla_e3_rx_isr(fe); - } - if (value & BIT_BLOCK_INT_STATUS_TxDS3_E3){ - sdla_e3_tx_isr(fe); - } - return -EINVAL; -} - -/****************************************************************************** - * sdla_te3_isr() - * - * Description: - * Arguments: - * Returns: - ****************************************************************************** - */ -static int sdla_te3_isr(sdla_fe_t *fe) -{ - sdla_fe_cfg_t *fe_cfg = &fe->fe_cfg; - unsigned char value; - int err = 0; - - value = READ_FRAMER(REG_BLOCK_INT_STATUS); - switch(fe_cfg->media){ - case WAN_MEDIA_DS3: - err = sdla_ds3_isr(fe); - break; - case WAN_MEDIA_E3: - err = sdla_e3_isr(fe); - break; - } - fe->fe_alarm = sdla_te3_alarm(fe, 1); - return err; -} - -/****************************************************************************** - * sdla_te3_alarm() - * - * Description: - * Arguments: - * Returns: - ****************************************************************************** - */ -static unsigned int sdla_te3_alarm(sdla_fe_t *fe, int update) -{ - sdla_fe_cfg_t *fe_cfg = &fe->fe_cfg; - unsigned int alarm = 0; - unsigned char value; - - if (fe_cfg->media == WAN_MEDIA_DS3){ - value = READ_FRAMER(REG_RxDS3_CFG_STATUS); - if (value & BIT_RxDS3_CFG_STATUS_RxAIS){ - alarm |= WAN_TE3_BIT_AIS_ALARM; - DEBUG_TE3("%s: (T3/E3) AIS Alarm is ON\n", fe->name); - }else{ - alarm &= ~WAN_TE3_BIT_AIS_ALARM; - DEBUG_TE3("%s: (T3/E3) AIS Alarm is OFF\n", fe->name); - } - if (value & BIT_RxDS3_CFG_STATUS_RxLOS){ - alarm |= WAN_TE3_BIT_LOS_ALARM; - DEBUG_TE3("%s: (T3/E3) LOS Alarm is ON\n", fe->name); - }else{ - alarm &= ~WAN_TE3_BIT_LOS_ALARM; - DEBUG_TE3("%s: (T3/E3) LOS Alarm is OFF\n", fe->name); - } - if (value & BIT_RxDS3_CFG_STATUS_RxOOF){ - alarm |= WAN_TE3_BIT_OOF_ALARM; - DEBUG_TE3("%s: (T3/E3) OOF Alarm is ON\n", fe->name); - }else{ - alarm &= ~WAN_TE3_BIT_OOF_ALARM; - DEBUG_TE3("%s: (T3/E3) OOF Alarm is OFF\n", fe->name); - } - value = READ_FRAMER(REG_RxDS3_STATUS); - if (value & BIT_RxDS3_STATUS_RxFERF){ - alarm |= WAN_TE3_BIT_YEL_ALARM; - DEBUG_TE3("%s: (T3/E3) YEL Alarm is ON\n", fe->name); - }else{ - alarm &= ~WAN_TE3_BIT_YEL_ALARM; - DEBUG_TE3("%s: (T3/E3) YEL Alarm is OFF\n", fe->name); - } - }else{ - value = READ_FRAMER(REG_RxE3_CFG_STATUS_2); - if (value & BIT_RxE3_CFG_STATUS_RxOOF){ - DEBUG_TE3("%s: (T3/E3) OOF Alarm ON!\n", - fe->name); - alarm |= WAN_TE3_BIT_OOF_ALARM; - }else{ - DEBUG_TE3("%s: (T3/E3) OOF Alarm OFF!\n", - fe->name); - alarm &= ~WAN_TE3_BIT_OOF_ALARM; - } - - if (value & BIT_RxE3_CFG_STATUS_RxLOF){ - DEBUG_TE3("%s: (T3/E3) LOF Alarm ON!\n", - fe->name); - alarm |= WAN_TE3_BIT_LOF_ALARM; - }else{ - DEBUG_TE3("%s: (T3/E3) LOF Alarm OFF!\n", - fe->name); - alarm &= ~WAN_TE3_BIT_LOF_ALARM; - } - - if (value & BIT_RxE3_CFG_STATUS_RxLOS){ - DEBUG_TE3("%s: (T3/E3) LOS Alarm ON!\n", - fe->name); - alarm |= WAN_TE3_BIT_LOS_ALARM; - }else{ - DEBUG_TE3("%s: (T3/E3) LOS Alarm OFF!\n", - fe->name); - alarm &= ~WAN_TE3_BIT_LOS_ALARM; - } - - if (value & BIT_RxE3_CFG_STATUS_RxAIS){ - DEBUG_TE3("%s: (T3/E3) AIS Alarm ON!\n", - fe->name); - alarm |= WAN_TE3_BIT_AIS_ALARM; - }else{ - DEBUG_TE3("%s: (T3/E3) AIS Alarm OFF!\n", - fe->name); - alarm &= ~WAN_TE3_BIT_AIS_ALARM; - } - - if (value & BIT_RxE3_CFG_STATUS_RxFERF){ - DEBUG_TE3("%s: (T3/E3) Rx FERF status is ON (YELLOW)!\n", - fe->name); - alarm |= WAN_TE3_BIT_YEL_ALARM; - }else{ - DEBUG_TE3("%s: (T3/E3) Rx FERF status is OFF!\n", - fe->name); - alarm &= ~WAN_TE3_BIT_YEL_ALARM; - } - } - - fe->fe_alarm = alarm; - if (update){ - sdla_te3_set_status(fe); - } - return alarm; -} - - -/****************************************************************************** - * sdla_te3_set_alarm() - * - * Description: - * Arguments: - * Returns: - ****************************************************************************** - */ -static int sdla_te3_set_alarm(sdla_fe_t *fe, unsigned int alarm) -{ - DEBUG_EVENT("%s: %s: This function is still not supported!\n", - fe->name, __FUNCTION__); - return -EINVAL; -} - -/****************************************************************************** - * sdla_te3_read_pmon() - * - * Description: - * Arguments: - * Returns: - ****************************************************************************** - */ -static int sdla_te3_read_pmon(sdla_fe_t *fe, int action) -{ - sdla_te3_pmon_t *pmon = (sdla_te3_pmon_t*)&fe->fe_stats.u.te3_pmon; - unsigned char value_msb, value_lsb; - - value_msb = READ_FRAMER(REG_PMON_LCV_MSB); - value_lsb = READ_FRAMER(REG_PMON_LCV_LSB); - pmon->pmon_lcv += ((value_msb << 8) | value_lsb); - - value_msb = READ_FRAMER(REG_PMON_FRAMING_ERR_CNT_MSB); - value_lsb = READ_FRAMER(REG_PMON_FRAMING_ERR_CNT_LSB); - pmon->pmon_framing += ((value_msb << 8) | value_lsb); - - value_msb = READ_FRAMER(REG_PMON_PARITY_ERR_CNT_MSB); - value_lsb = READ_FRAMER(REG_PMON_PARITY_ERR_CNT_LSB); - pmon->pmon_parity += ((value_msb << 8) | value_lsb); - - value_msb = READ_FRAMER(REG_PMON_FEBE_EVENT_CNT_MSB); - value_lsb = READ_FRAMER(REG_PMON_FEBE_EVENT_CNT_LSB); - pmon->pmon_febe += ((value_msb << 8) | value_lsb); - - value_msb = READ_FRAMER(REG_PMON_CPBIT_ERROR_CNT_MSB); - value_lsb = READ_FRAMER(REG_PMON_CPBIT_ERROR_CNT_LSB); - pmon->pmon_cpbit += ((value_msb << 8) | value_lsb); - return 0; -} - -/****************************************************************************** - * sdla_te3_udp() - * - * Description: - * Arguments: - * Returns: - ****************************************************************************** - */ -static int sdla_te3_udp(sdla_fe_t *fe, void *pudp_cmd, unsigned char *data) -{ - wan_cmd_t *udp_cmd = (wan_cmd_t*)pudp_cmd; - - switch(udp_cmd->wan_cmd_command){ - case WAN_GET_MEDIA_TYPE: - data[0] = fe->fe_cfg.media; - udp_cmd->wan_cmd_return_code = WAN_CMD_OK; - udp_cmd->wan_cmd_data_len = sizeof(unsigned char); - break; - - case WAN_FE_SET_LB_MODE: - /* Activate/Deactivate Line Loopback modes */ -// err = sdla_set_te1_lb_modes(card, data[0], data[1]); -// udp_cmd->wan_cmd_return_code = -// (!err) ? WAN_CMD_OK : WAN_UDP_FAILED_CMD; -// udp_cmd->wan_cmd_data_len = 0x00; - break; - - case WAN_FE_GET_STAT: - /* TE1_56K Read T1/E1/56K alarms */ -#if 0 - *(unsigned long *)&data[0] = sdla_te3_alarm(fe, 0); -#endif - /* TE1 Update T1/E1 perfomance counters */ - sdla_te3_read_pmon(fe, 0); - memcpy(&data[0], &fe->fe_stats, sizeof(sdla_fe_stats_t)); - udp_cmd->wan_cmd_return_code = WAN_CMD_OK; - udp_cmd->wan_cmd_data_len = sizeof(sdla_fe_stats_t); - break; - - case WAN_FE_FLUSH_PMON: - /* TE1 Flush T1/E1 pmon counters */ -// memset(&fe->fe_stats.u.te3_pmon, 0, sizeof(sdla_te3_pmon_t)); - udp_cmd->wan_cmd_return_code = WAN_CMD_OK; - break; - - case WAN_FE_GET_CFG: - /* Read T1/E1 configuration */ - memcpy(&data[0], - &fe->fe_cfg, - sizeof(sdla_fe_cfg_t)); - udp_cmd->wan_cmd_return_code = WAN_CMD_OK; - udp_cmd->wan_cmd_data_len = sizeof(sdla_te_cfg_t); - break; - - default: - udp_cmd->wan_cmd_return_code = WAN_UDP_INVALID_CMD; - udp_cmd->wan_cmd_data_len = 0; - break; - } - return 0; -} - -static int sdla_te3_set_intr(sdla_fe_t *fe) -{ - sdla_fe_cfg_t *fe_cfg = &fe->fe_cfg; - - /* Enable Framer Interrupts */ - /* 1. Block Interrupt Enable */ - WRITE_FRAMER(REG_BLOCK_INT_ENABLE, - BIT_BLOCK_INT_ENABLE_RxDS3_E3 | - BIT_BLOCK_INT_ENABLE_TxDS3_E3); - if (IS_DS3(fe_cfg)){ - /* 1. RxDS3 Interrupt Enable */ - WRITE_FRAMER(REG_RxDS3_INT_ENABLE, - BIT_RxDS3_INT_ENABLE_CPBIT_ERR | - BIT_RxDS3_INT_ENABLE_LOS | - BIT_RxDS3_INT_ENABLE_OOF | - BIT_RxDS3_INT_ENABLE_AIS | - BIT_RxDS3_INT_ENABLE_IDLE | - BIT_RxDS3_INT_ENABLE_FERF | - BIT_RxDS3_INT_ENABLE_AIC | - BIT_RxDS3_INT_ENABLE_PBIT_ERR ); - - /* RxDS3 FEAC */ - WRITE_FRAMER(REG_RxDS3_FEAC_INT, - BIT_RxDS3_FEAC_REMOVE_INT_EN | - BIT_RxDS3_FEAC_VALID_INT_EN); - - /* RxDS3 LAPD */ - WRITE_FRAMER(REG_TxDS3_LAPD_STATUS, - BIT_TxDS3_LAPD_STATUS_INT_EN); - - }else if (IS_E3(fe_cfg)){ - /* RxE3 Interrupt Enable 1 (0x12) */ - WRITE_FRAMER(REG_RxE3_INT_ENABLE_1, - BIT_RxE3_INT_ENABLE_OOF | - BIT_RxE3_INT_ENABLE_LOS | - BIT_RxE3_INT_ENABLE_LOF | - BIT_RxE3_INT_ENABLE_AIS); - - /* RxE3 Interrupt Enable 2 (0x13) */ - WRITE_FRAMER(REG_RxE3_INT_ENABLE_2, - BIT_RxE3_INT_ENABLE_FERF | - BIT_RxE3_INT_ENABLE_FRAMING); - }else{ - return -EINVAL; - } - - return 0; -} - - -/****************************************************************************** - * sdla_te3_liu_config() - * - * Description: Configure Sangoma TE3 board - * Arguments: - * Returns: WAN_TRUE - TE3 configred successfully, otherwise WAN_FALSE. - ****************************************************************************** - */ -static int sdla_te3_liu_config(sdla_fe_t *fe, sdla_te3_liu_cfg_t *liu, char *name) -{ - sdla_fe_cfg_t *fe_cfg = &fe->fe_cfg; - unsigned char data = 0x00; - - if (fe_cfg->media == WAN_MEDIA_E3){ - data |= BIT_CPLD_CNTRL_E3; - } - if (liu->rx_equal == WAN_TRUE){ - DEBUG_TE3("%s: (T3/E3) Enable Receive Equalizer\n", - name); - data |= BIT_CPLD_CNTRL_REQEN; - }else{ - DEBUG_TE3("%s: (T3/E3) Disable Receive Equalizer\n", - name); - data &= ~BIT_CPLD_CNTRL_REQEN; - } - if (liu->tx_lbo == WAN_TRUE){ - DEBUG_TE3("%s: (T3/E2) Enable Transmit Build-out\n", - name); - data |= BIT_CPLD_CNTRL_TxLEV; - }else{ - DEBUG_TE3("%s: (T3/E3) Disable Transmit Build-out\n", - name); - data &= ~BIT_CPLD_CNTRL_TxLEV; - } - /* Write value to CPLD Control register */ - WRITE_CPLD(REG_CPLD_CNTRL, data); - - data = 0x00; - if (liu->taos == WAN_TRUE){ - DEBUG_TE3("%s: (T3/E3) Enable Transmit All Ones\n", - name); - data |= BIT_CPLD_STATUS_TAOS; - }else{ - DEBUG_TE3("%s: (T3/E3) Disable Transmit All Ones\n", - name); - data &= ~BIT_CPLD_STATUS_TAOS; - } - switch(liu->lb_mode){ - case WAN_TE3_LIU_LB_NORMAL: - break; - case WAN_TE3_LIU_LB_ANALOG: - DEBUG_TE3("%s: (T3/E3) Enable Analog Loopback mode!\n", - name); - data |= BIT_CPLD_STATUS_LLB; - data &= ~BIT_CPLD_STATUS_RLB; - break; - case WAN_TE3_LIU_LB_REMOTE: - DEBUG_TE3("%s: (T3/E3) Enable Remote Loopback mode!\n", - name); - data &= ~BIT_CPLD_STATUS_LLB; - data |= BIT_CPLD_STATUS_RLB; - break; - case WAN_TE3_LIU_LB_DIGITAL: - DEBUG_TE3("%s: (T3/E3) Enable Digital Loopback mode!\n", - name); - data |= BIT_CPLD_STATUS_LLB; - data |= BIT_CPLD_STATUS_RLB; - break; - default : - DEBUG_EVENT("%s: (T3/E3) Unknown loopback mode!\n", - name); - break; - } - /* Write value to CPLD Status/Control register */ - WRITE_CPLD(REG_CPLD_STATUS, data); - return 0; -} - -int sdla_te3_iface_init(void *p_fe_iface) -{ - sdla_fe_iface_t *fe_iface = (sdla_fe_iface_t*)p_fe_iface; - - /* Inialize Front-End interface functions */ - fe_iface->config = &sdla_te3_config; - fe_iface->unconfig = &sdla_te3_unconfig; - fe_iface->polling = &sdla_te3_polling; - fe_iface->isr = &sdla_te3_isr; - fe_iface->process_udp = &sdla_te3_udp; - fe_iface->read_alarm = &sdla_te3_alarm; - fe_iface->read_pmon = &sdla_te3_read_pmon; - fe_iface->set_fe_alarm = &sdla_te3_set_alarm; - fe_iface->get_fe_status = &sdla_te3_get_fe_status; - fe_iface->get_fe_media = &sdla_te3_get_fe_media; - fe_iface->get_fe_media_string = &sdla_te3_get_fe_media_string; - fe_iface->update_alarm_info = &sdla_te3_update_alarm_info; - fe_iface->update_pmon_info = &sdla_te3_update_pmon_info; - - return 0; -} -static int sdla_te3_config(void *p_fe) -{ - sdla_fe_t *fe = (sdla_fe_t*)p_fe; - sdla_fe_cfg_t *fe_cfg = &fe->fe_cfg; - sdla_te3_cfg_t *te3_cfg = &fe_cfg->cfg.te3_cfg; - unsigned char data = 0x00; - - /* configure Line Interface Unit */ - sdla_te3_liu_config(fe, &te3_cfg->liu_cfg, fe->name); - - switch(fe_cfg->media){ - case WAN_MEDIA_DS3: - DEBUG_TE3("%s: (T3/E3) Media type DS3\n", - fe->name); - data |= BIT_OPMODE_DS3; - break; - case WAN_MEDIA_E3: - DEBUG_TE3("%s: (T3/E3) Media type E3\n", - fe->name); - data &= ~BIT_OPMODE_DS3; - break; - default: - DEBUG_EVENT("%s: Invalid Media type 0x%X\n", - fe->name,fe_cfg->media); - return -EINVAL; - } - - switch(fe_cfg->frame){ - case WAN_FR_E3_G751: - if (fe_cfg->media != WAN_MEDIA_E3){ - DEBUG_EVENT("%s: (T3/E3) Invalid Frame Format!\n", - fe->name); - return -EINVAL; - } - DEBUG_TE3("%s: (T3/E3) Frame type G.751\n", - fe->name); - data &= ~BIT_OPMODE_FRAME_FRMT; - break; - case WAN_FR_E3_G832: - if (fe_cfg->media != WAN_MEDIA_E3){ - DEBUG_EVENT("%s: (T3/E3) Invalid Frame Format!\n", - fe->name); - return -EINVAL; - } - DEBUG_TE3("%s: (T3/E3) Frame type G.832\n", - fe->name); - data |= BIT_OPMODE_FRAME_FRMT; - break; - case WAN_FR_DS3_Cbit: - if (fe_cfg->media != WAN_MEDIA_DS3){ - DEBUG_EVENT("%s: (T3/E3) Invalid Frame Format!\n", - fe->name); - return -EINVAL; - } - DEBUG_TE3("%s: (T3/E3) Frame type C-bit Parity\n", - fe->name); - data &= ~BIT_OPMODE_FRAME_FRMT; - break; - case WAN_FR_DS3_M13: - if (fe_cfg->media != WAN_MEDIA_DS3){ - DEBUG_EVENT("%s: (T3/E3) Invalid Frame Format!\n", - fe->name); - return -EINVAL; - } - DEBUG_TE3("%s: (T3/E3) Frame type M13\n", - fe->name); - data |= BIT_OPMODE_FRAME_FRMT; - break; - default: - DEBUG_EVENT("%s: Invalid Frame type 0x%X\n", - fe->name,fe_cfg->frame); - return -EINVAL; - } - data |= BIT_OPMODE_INTERNAL_LOS; - data |= (BIT_OPMODE_TIMREFSEL1 | BIT_OPMODE_TIMREFSEL0); - WRITE_FRAMER(REG_OPMODE, data); - - data = 0x00; - switch(fe_cfg->lcode){ - case WAN_LCODE_AMI: - DEBUG_TE3("%s: (T3/E3) Line code AMI\n", - fe->name); - data |= BIT_IO_CONTROL_AMI; - break; - case WAN_LCODE_HDB3: - DEBUG_TE3("%s: (T3/E3) Line code HDB3\n", - fe->name); - data &= ~BIT_IO_CONTROL_AMI; - break; - case WAN_LCODE_B3ZS: - DEBUG_TE3("%s: (T3/E3) Line code B3ZS\n", - fe->name); - data &= ~BIT_IO_CONTROL_AMI; - break; - default: - DEBUG_EVENT("%s: Invalid Lcode 0x%X\n", - fe->name,fe_cfg->lcode); - return -EINVAL; - } - data |= BIT_IO_CONTROL_DISABLE_TXLOC; - data |= BIT_IO_CONTROL_DISABLE_RXLOC; - data |= BIT_IO_CONTROL_RxLINECLK; - WRITE_FRAMER(REG_IO_CONTROL, data); - - /* Initialize Front-End parameters */ - fe->fe_status = FE_DISCONNECTED; - DEBUG_EVENT("%s: DS3 disconnected!\n", - fe->name); - sdla_te3_alarm(fe, 1); - - sdla_te3_set_intr(fe); - return 0; -} - -static int sdla_te3_unconfig(void *p_fe) -{ - sdla_fe_t *fe = (sdla_fe_t*)p_fe; - DEBUG_EVENT("%s: Unconfiguring T3/E3 interface\n", - fe->name); - return 0; -} - -static int -sdla_te3_update_alarm_info(sdla_fe_t* fe, struct seq_file* m, int* stop_cnt) -{ - if (IS_DS3(&fe->fe_cfg)){ - PROC_ADD_LINE(m, - "=============================== DS3 Alarms ===============================\n"); - PROC_ADD_LINE(m, - PROC_STATS_ALARM_FORMAT, - "AIS", WAN_TE3_AIS_ALARM(fe->fe_alarm), - "LOS", WAN_TE3_LOS_ALARM(fe->fe_alarm)); - PROC_ADD_LINE(m, - PROC_STATS_ALARM_FORMAT, - "OOF", WAN_TE3_OOF_ALARM(fe->fe_alarm), - "YEL", WAN_TE3_YEL_ALARM(fe->fe_alarm)); - }else{ - PROC_ADD_LINE(m, - "=============================== E3 Alarms ===============================\n"); - PROC_ADD_LINE(m, - PROC_STATS_ALARM_FORMAT, - "AIS", WAN_TE3_AIS_ALARM(fe->fe_alarm), - "LOS", WAN_TE3_LOS_ALARM(fe->fe_alarm)); - PROC_ADD_LINE(m, - PROC_STATS_ALARM_FORMAT, - "OFF", WAN_TE3_OOF_ALARM(fe->fe_alarm), - "YEL", WAN_TE3_YEL_ALARM(fe->fe_alarm)); - PROC_ADD_LINE(m, - PROC_STATS_ALARM_FORMAT, - "LOF", WAN_TE3_LOF_ALARM(fe->fe_alarm), - "", ""); - } - - return m->count; -} - -static int sdla_te3_update_pmon_info(sdla_fe_t* fe, struct seq_file* m, int* stop_cnt) -{ - PROC_ADD_LINE(m, - "=========================== %s PMON counters ============================\n", - (IS_DS3(&fe->fe_cfg)) ? "DS3" : "E3"); - PROC_ADD_LINE(m, - PROC_STATS_PMON_FORMAT, - "Line Code Violation", fe->fe_stats.u.te3_pmon.pmon_lcv, - "Framing Bit/Byte Error", fe->fe_stats.u.te3_pmon.pmon_framing); - if (IS_DS3(&fe->fe_cfg)){ - if (fe->fe_cfg.frame == WAN_FR_DS3_Cbit){ - PROC_ADD_LINE(m, - PROC_STATS_PMON_FORMAT, - "Parity Error", fe->fe_stats.u.te3_pmon.pmon_parity, - "CP-Bit Error Event", fe->fe_stats.u.te3_pmon.pmon_cpbit); - }else{ - PROC_ADD_LINE(m, - PROC_STATS_PMON_FORMAT, - "Parity Error", fe->fe_stats.u.te3_pmon.pmon_parity, - "FEBE Event", fe->fe_stats.u.te3_pmon.pmon_febe); - - } - }else{ - PROC_ADD_LINE(m, - PROC_STATS_PMON_FORMAT, - "Parity Error", fe->fe_stats.u.te3_pmon.pmon_parity, - "FEBE Event", fe->fe_stats.u.te3_pmon.pmon_febe); - } - - return m->count; -} diff --git a/patches/kdrivers/src/net/sdla_x25.c b/patches/kdrivers/src/net/sdla_x25.c index 7d213aa..2bd2133 100644 --- a/patches/kdrivers/src/net/sdla_x25.c +++ b/patches/kdrivers/src/net/sdla_x25.c @@ -342,34 +342,32 @@ typedef struct x25_channel /* FIXME Take this out */ -#pragma pack(1) #ifdef NEX_OLD_CALL_INFO typedef struct x25_call_info { - char dest[17]; ;/* ASCIIZ destination address */ - char src[17]; ;/* ASCIIZ source address */ - char nuser; ;/* number of user data bytes */ - unsigned char user[127]; ;/* user data */ - char nfacil; ;/* number of facilities */ + char dest[17]; PACKED;/* ASCIIZ destination address */ + char src[17]; PACKED;/* ASCIIZ source address */ + char nuser; PACKED;/* number of user data bytes */ + unsigned char user[127]; PACKED;/* user data */ + char nfacil; PACKED;/* number of facilities */ struct { - unsigned char code; ; - unsigned char parm; ; + unsigned char code; PACKED; + unsigned char parm; PACKED; } facil[64]; /* facilities */ } x25_call_info_t; #else typedef struct x25_call_info { - char dest[MAX_X25_ADDR_SIZE] ;/* ASCIIZ destination address */ - char src[MAX_X25_ADDR_SIZE] ;/* ASCIIZ source address */ - unsigned char nuser ; - unsigned char user[MAX_X25_DATA_SIZE] ;/* user data */ - unsigned char nfacil ; - unsigned char facil[MAX_X25_FACL_SIZE] ; - unsigned short lcn ; + char dest[MAX_X25_ADDR_SIZE] PACKED;/* ASCIIZ destination address */ + char src[MAX_X25_ADDR_SIZE] PACKED;/* ASCIIZ source address */ + unsigned char nuser PACKED; + unsigned char user[MAX_X25_DATA_SIZE] PACKED;/* user data */ + unsigned char nfacil PACKED; + unsigned char facil[MAX_X25_FACL_SIZE] PACKED; + unsigned short lcn PACKED; } x25_call_info_t; #endif -#pragma pack() @@ -412,7 +410,7 @@ static void if_tx_timeout (netdevice_t *dev); /*================================================= * Interrupt handlers */ -static void wpx_isr (sdla_t *); +static WAN_IRQ_RETVAL wpx_isr (sdla_t *); static void rx_intr (sdla_t *); static void tx_intr (sdla_t *); static void status_intr (sdla_t *); @@ -428,7 +426,11 @@ static netdevice_t * move_dev_to_next (sdla_t *, netdevice_t *); /*================================================= * Background polling routines */ -static void wpx_poll (void*); +# if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)) +static void wpx_poll (void *card_ptr); +#else +static void wpx_poll (struct work_struct *work); +#endif static void poll_disconnected (sdla_t* card); static void poll_connecting (sdla_t* card); static void poll_active (sdla_t* card); @@ -986,7 +988,7 @@ int wpx_init (sdla_t* card, wandev_conf_t* conf) init_global_statistics(card); - INIT_WORK((&card->u.x.x25_poll_task),wpx_poll,card); + WAN_TASKQ_INIT((&card->u.x.x25_poll_task),0,wpx_poll,card); init_timer(&card->u.x.x25_timer); card->u.x.x25_timer.data = (unsigned long)card; @@ -2218,19 +2220,19 @@ x25_ioctl_exit: * X.25 Interrupt Service Routine. */ -static void wpx_isr (sdla_t* card) +static WAN_IRQ_RETVAL wpx_isr (sdla_t* card) { u8 intr_type; if (!card->hw){ - return; + WAN_IRQ_RETURN(WAN_IRQ_HANDLED); } /* Sanity check, should never happen */ if (test_bit(0,&card->in_isr)){ printk(KERN_INFO "%s: Critical in WPX_ISR\n",card->devname); card->hw_iface.poke_byte(card->hw, card->intr_type_off, 0x00); - return; + WAN_IRQ_RETURN(WAN_IRQ_HANDLED); } card->in_isr = 1; @@ -2239,7 +2241,7 @@ static void wpx_isr (sdla_t* card) if (test_bit(PERI_CRIT,(void*)&card->wandev.critical)){ card->in_isr=0; card->hw_iface.poke_byte(card->hw, card->intr_type_off, 0x00); - return; + WAN_IRQ_RETURN(WAN_IRQ_HANDLED); } if (test_bit(SEND_CRIT, (void*)&card->wandev.critical)){ @@ -2252,7 +2254,7 @@ static void wpx_isr (sdla_t* card) card->in_isr = 0; card->hw_iface.poke_byte(card->hw, card->intr_type_off, 0x00); - return; + WAN_IRQ_RETURN(WAN_IRQ_HANDLED); } /* For all interrupts set the critical flag to CRITICAL_RX_INTR. @@ -2292,6 +2294,7 @@ static void wpx_isr (sdla_t* card) card->in_isr = 0; card->hw_iface.poke_byte(card->hw, card->intr_type_off, 0x00); + WAN_IRQ_RETURN(WAN_IRQ_HANDLED); } /* @@ -3057,9 +3060,18 @@ static void spur_intr (sdla_t* card) * enabled. Beware! *====================================================================*/ +# if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)) static void wpx_poll (void *card_ptr) +#else +static void wpx_poll (struct work_struct *work) +#endif { - sdla_t *card=card_ptr; + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)) + sdla_t *card = (sdla_t *)container_of(work, sdla_t, u.x.x25_poll_task); +#else + sdla_t *card = (sdla_t *)card_ptr; +#endif netdevice_t *dev; dev = WAN_DEVLE2DEV(WAN_LIST_FIRST(&card->wandev.dev_head)); @@ -3099,7 +3111,7 @@ wpx_poll_exit: static void trigger_x25_poll(sdla_t *card) { - wan_schedule_task(&card->u.x.x25_poll_task); + WAN_TASKQ_SCHEDULE((&card->u.x.x25_poll_task)); } /*==================================================================== diff --git a/patches/kdrivers/src/net/sdla_xilinx.c b/patches/kdrivers/src/net/sdla_xilinx.c index de1d097..b853b35 100644 --- a/patches/kdrivers/src/net/sdla_xilinx.c +++ b/patches/kdrivers/src/net/sdla_xilinx.c @@ -1,9 +1,9 @@ /***************************************************************************** -* sdla_xilinx.c WANPIPE(tm) S51XX Xilinx Hardware Support +* sdla_xilinx.c WANPIPE(tm) AFT A101/2 Hardware Support * * Authors: Nenad Corbic * -* Copyright: (c) 2003-2004 Sangoma Technologies Inc. +* Copyright: (c) 2003-2007 Sangoma Technologies Inc. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -12,7 +12,7 @@ * ============================================================================ * Jan 07, 2003 Nenad Corbic Initial version. *****************************************************************************/ - + #if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) # include # include @@ -56,7 +56,7 @@ enum wp_device_down_states{ enum { AFT_CHIP_CONFIGURED, AFT_FRONT_END_UP, -}; +}; enum { AFT_FE_CFG_ERR, @@ -269,7 +269,7 @@ static void port_set_state (sdla_t *card, int); static void disable_comm (sdla_t *card); /* Interrupt handlers */ -static void wp_xilinx_isr (sdla_t* card); +static WAN_IRQ_RETVAL wp_xilinx_isr (sdla_t* card); /* Bottom half handlers */ #if defined(__LINUX__) @@ -366,11 +366,17 @@ static int rx_chan_timeslot_sync_ctrl(sdla_t *card,int start); static void aft_report_rbsbits(void* pcard, int channel, unsigned char status); static int aft_realign_skb_pkt(private_area_t *chan, netskb_t *skb); + #if defined(__LINUX__) -static void aft_port_task (void * card_ptr); +# if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)) +static void aft_port_task (void * card_ptr); +# else +static void aft_port_task (struct work_struct *work); +# endif #else -static void aft_port_task (void * card_ptr, int arg); +static void aft_port_task (void * card_ptr, int arg); #endif + static void aft_fe_intr_ctrl(sdla_t *card, int status); static void __aft_fe_intr_ctrl(sdla_t *card, int status); @@ -391,8 +397,7 @@ static int aft_tdmv_init(sdla_t *card, wandev_conf_t *conf); static int aft_tdmv_free(sdla_t *card); static int aft_tdmv_if_init(sdla_t *card, private_area_t *chan, wanif_conf_t *conf); static int aft_tdmv_if_free(sdla_t *card, private_area_t *chan); -static void aft_critical_shutdown (sdla_t *card); -static int digital_loop_test(sdla_t* card,wan_udp_pkt_t *wan_udp_pkt); +static void aft_critical_shutdown (sdla_t *card); #ifdef AFT_TDM_API_SUPPORT static int aft_read_rbs_bits(void *chan_ptr, u32 ch, u8 *rbs_bits); @@ -419,22 +424,6 @@ static void xilinx_delay(int sec) * ******************************************************************/ - -static void wanpipe_wake_stack(private_area_t* chan) -{ - WAN_NETIF_WAKE_QUEUE(chan->common.dev); -#if !defined(CONFIG_PRODUCT_WANPIPE_GENERIC) - if (chan->common.usedby == API){ -# if defined(__LINUX__) - wan_wakeup_api(chan); -# endif - }else if (chan->common.usedby == STACK){ - wanpipe_lip_kick(chan,0); - } -#endif -} - - int wp_xilinx_default_devcfg(sdla_t* card, wandev_conf_t* conf) { conf->config_id = WANCONFIG_AFT; @@ -526,6 +515,7 @@ int wp_xilinx_init (sdla_t* card, wandev_conf_t* conf) } memcpy(&card->u.aft.cfg,&conf->u.aft,sizeof(wan_xilinx_conf_t)); + memcpy(&card->tdmv_conf,&conf->tdmv_conf,sizeof(wan_tdmv_conf_t)); card->u.aft.cfg.dma_per_ch = 10; if (conf->u.aft.dma_per_ch){ @@ -576,6 +566,12 @@ int wp_xilinx_init (sdla_t* card, wandev_conf_t* conf) return -EINVAL; } + card->u.aft.tdmv_dchan = 0; + if (IS_E1_CARD(card)) { + card->tdmv_conf.dchan = card->tdmv_conf.dchan << 1; + wan_clear_bit(0,&card->tdmv_conf.dchan); + } + if (card->wandev.ignore_front_end_status == WANOPT_NO){ DEBUG_EVENT( "%s: Enabling front end link monitor\n", @@ -652,10 +648,10 @@ int wp_xilinx_init (sdla_t* card, wandev_conf_t* conf) WAN_TASKQ_INIT((&card->u.aft.port_task),0,aft_port_task,card); - /* Set protocol link state to disconnected, + /* Set protocol link state to disconnected, * After seting the state to DISCONNECTED this * function must return 0 i.e. success */ - port_set_state(card,WAN_CONNECTING); + port_set_state(card,WAN_CONNECTING); xilinx_delay(1); #if !defined(CONFIG_PRODUCT_WANPIPE_GENERIC) @@ -667,6 +663,8 @@ int wp_xilinx_init (sdla_t* card, wandev_conf_t* conf) } #endif + xilinx_delay(1); + wan_set_bit(AFT_CHIP_CONFIGURED,&card->u.aft.chip_cfg_status); if (wan_test_bit(AFT_FRONT_END_UP,&card->u.aft.chip_cfg_status)){ @@ -678,10 +676,7 @@ int wp_xilinx_init (sdla_t* card, wandev_conf_t* conf) wan_spin_unlock_irq(&card->wandev.lock,&smp_flags); wan_clear_bit(AFT_FRONT_END_UP,&card->u.aft.chip_cfg_status); - } - - - xilinx_delay(1); + } DEBUG_EVENT("%s: Configuring Device :%s FrmVr=%02X\n", card->devname,card->devname,card->u.aft.firm_ver); @@ -847,7 +842,7 @@ static int aft_tdm_api_init(sdla_t *card, private_area_t *chan, int logic_ch, wa wp_tdm_api_dev->cfg.idle_flag = conf->u.aft.idle_flag; wp_tdm_api_dev->cfg.rbs_tx_bits = conf->u.aft.rbs_cas_idle; - wp_tdm_api_dev->tdm_span = card->u.aft.cfg.tdmv_span_no; + wp_tdm_api_dev->tdm_span = card->tdmv_conf.span_no; wp_tdm_api_dev->tdm_chan = logic_ch+1; if (IS_T1_CARD(card)){ @@ -1139,7 +1134,7 @@ static int new_if_private (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* # ifdef CONFIG_PRODUCT_WANPIPE_TDM_VOICE # ifdef CONFIG_PRODUCT_WANPIPE_TDM_VOICE_DCHAN - int dchan=card->u.aft.cfg.tdmv_dchan; + int dchan=card->u.aft.tdmv_dchan; /* DCHAN must be decremented for both * T1 and E1, since from tdmv driver's @@ -1188,7 +1183,7 @@ static int new_if_private (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* #ifdef AFT_TDM_API_SUPPORT }else if (strcmp(conf->usedby, "TDM_VOICE_API") == 0) { - int dchan=card->u.aft.cfg.tdmv_dchan; + int dchan=card->u.aft.tdmv_dchan; /* DCHAN must be decremented for both * T1 and E1, since from tdmv driver's @@ -1210,14 +1205,14 @@ static int new_if_private (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* #ifdef AFT_TDM_API_SUPPORT }else if (strcmp(conf->usedby, "TDM_VOICE_DCHAN_API") == 0) { - int dchan=card->u.aft.cfg.tdmv_dchan; + int dchan=card->u.aft.tdmv_dchan; /* DCHAN must be decremented for both * T1 and E1, since from tdmv driver's * perspective all timeslots start from ZERO*/ dchan--; chan->tdmv_chan=dchan; - + chan->common.usedby = TDM_VOICE_DCHAN; conf->hdlc_streaming=1; chan->mru=chan->mtu=1500; @@ -1234,6 +1229,7 @@ static int new_if_private (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* chan->mtu+=32; chan->mru+=32; } + }else{ DEBUG_EVENT( "%s:%s: Error: Invalid operation mode [%s]\n", card->devname,chan->if_name, conf->usedby); @@ -1280,7 +1276,8 @@ static int new_if_private (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* wan_clear_bit(0,&chan->tdmv_sync); } - if(conf->protocol == WANCONFIG_LIP_ATM){ + if(conf->protocol == WANCONFIG_LIP_ATM || + conf->protocol == WANCONFIG_LIP_KATM){ /* if ATM NO sync needed!! */ DEBUG_EVENT("%s: Disabling Time Slot Sync for ATM.\n", chan->if_name); card->u.aft.tdmv_sync = 0; @@ -1309,7 +1306,7 @@ static int new_if_private (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* *as the dchan. Due to HDLC security issue, the *HDLC channels are mapped on first TWO logic channels */ if (chan->common.usedby == TDM_VOICE_DCHAN){ - card->u.aft.cfg.tdmv_dchan=chan->logic_ch_num+1; + card->u.aft.tdmv_dchan=chan->logic_ch_num+1; } xilinx_delay(1); @@ -1357,7 +1354,8 @@ static int new_if_private (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* } - if(conf->protocol != WANCONFIG_LIP_ATM){ + if(conf->protocol != WANCONFIG_LIP_ATM && + conf->protocol != WANCONFIG_LIP_KATM){ buf=wan_skb_put(chan->tx_idle_skb,chan->dma_mru); memset(buf,chan->idle_flag,chan->dma_mru); wan_skb_trim(chan->tx_idle_skb,0); @@ -1522,18 +1520,18 @@ static int new_if (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* conf) wan_netif_set_priv(dev, NULL); if (IS_E1_CARD(card)){ - DEBUG_TEST("%s: Time Slot Orig 0x%lX Shifted 0x%lX DCHAN=%i\n", + DEBUG_TEST("%s: Time Slot Orig 0x%lX Shifted 0x%lX DCHAN=0x%08X\n", card->devname, conf->active_ch, conf->active_ch<<1, - card->u.aft.cfg.tdmv_dchan); + card->tdmv_conf.dchan); conf->active_ch = conf->active_ch << 1; wan_clear_bit(0,&conf->active_ch); } if (strcmp(conf->usedby, "TDM_VOICE") == 0 ) { #if defined(CONFIG_PRODUCT_WANPIPE_TDM_VOICE) - if (card->u.aft.cfg.tdmv_span_no){ + if (card->tdmv_conf.span_no){ /* Initialize TDMV interface function */ err = wp_tdmv_te1_init(&card->tdmv_iface); if (err){ @@ -1542,7 +1540,7 @@ static int new_if (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* conf) return -EINVAL; } - WAN_TDMV_CALL(create, (card, &card->u.aft.cfg), err); + WAN_TDMV_CALL(create, (card, &card->tdmv_conf), err); if (err){ DEBUG_EVENT("%s: Error: Failed to create tdmv span!\n", card->devname); @@ -1555,26 +1553,36 @@ static int new_if (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* conf) card->devname); DEBUG_EVENT("%s: during installation process!\n", card->devname); - return -EINVAL; -#endif + return -EINVAL; +#endif } if (strcmp(conf->usedby, "TDM_VOICE") == 0 || strcmp(conf->usedby, "TDM_VOICE_API") == 0){ - int dchan=card->u.aft.cfg.tdmv_dchan; - - if (IS_T1_CARD(card) && dchan){ - dchan--; - } + int dchan=0; + int dchan_found=0; + int i; - if (dchan){ + for (i=card->u.aft.num_of_time_slots-1;i>=0;i--){ + if (wan_test_bit(i,&card->tdmv_conf.dchan)){ + dchan_found=1; + card->u.aft.tdmv_dchan=i; + dchan=i; + break; + } + } + + if (dchan_found){ + if (IS_T1_CARD(card)) { + card->u.aft.tdmv_dchan++; + } wan_clear_bit(dchan,&conf->active_ch); } err=new_if_private(wandev,dev,conf,1); if (!err){ - if (card->u.aft.cfg.tdmv_dchan){ + if (card->tdmv_conf.dchan){ conf->active_ch=0; if (strcmp(conf->usedby, "TDM_VOICE") == 0) { @@ -1632,7 +1640,7 @@ static int del_if_private (wan_device_t* wandev, netdevice_t* dev) private_area_t* chan = wan_netif_priv(dev); sdla_t* card = (sdla_t*)chan->common.card; netskb_t *skb; - wan_smp_flag_t flags; + wan_smp_flag_t flags; if (wan_test_bit(0,&chan->tdmv_sync)){ wan_clear_bit(0,&card->u.aft.tdmv_sync); @@ -1672,8 +1680,8 @@ static int del_if_private (wan_device_t* wandev, netdevice_t* dev) } #endif - wan_spin_lock_irq(&card->wandev.lock,&flags); - + wan_spin_lock_irq(&card->wandev.lock,&flags); + while ((skb=wan_skb_dequeue(&chan->wp_rx_free_list)) != NULL){ wan_skb_free(skb); } @@ -1727,8 +1735,8 @@ static int del_if_private (wan_device_t* wandev, netdevice_t* dev) } chan->logic_ch_num=-1; - - wan_spin_unlock_irq(&card->wandev.lock,&flags); + + wan_spin_unlock_irq(&card->wandev.lock,&flags); /* Delete interface name from proc fs. */ #if 0 @@ -1971,12 +1979,14 @@ static int wanpipe_xilinx_open (netdevice_t* dev) err=aft_dev_open(card,chan); if (err) { wan_spin_unlock_irq(&card->wandev.lock,&flags); - return err; + DEBUG_EVENT("%s: Error failed to configure interface!\n", + chan->if_name); + return err; } if (wan_test_bit(0,&chan->tdmv_sync) && (card->wandev.state == WAN_CONNECTED || - card->u.aft.cfg.tdmv_span_no)){ + card->tdmv_conf.span_no)){ /* At this point we are out of sync. The * DMA was enabled while interface was down. * We must do a FULL recovery */ @@ -1987,7 +1997,7 @@ static int wanpipe_xilinx_open (netdevice_t* dev) disable_data_error_intr(card,LINK_DOWN); enable_data_error_intr(card); - }else if (card->u.aft.cfg.tdmv_span_no) { + }else if (card->tdmv_conf.span_no) { /* The A101/2 Card must supply clock to * zaptel regardless of state. Thus fake * the front end connected state */ @@ -2006,15 +2016,19 @@ static int wanpipe_xilinx_open (netdevice_t* dev) enable_data_error_intr(card); } - if (card->wandev.state == WAN_CONNECTED){ + if (card->wandev.state == WAN_CONNECTED){ /* If Front End is connected already set interface * state to Connected too */ set_chan_state(card, dev, WAN_CONNECTED); WAN_NETIF_WAKE_QUEUE(dev); WAN_NETIF_CARRIER_ON(dev); - wanpipe_wake_stack(chan); - } - + if (chan->common.usedby == API){ + wan_wakeup_api(chan); + }else if (chan->common.usedby == STACK){ + wanpipe_lip_kick(chan,0); + } + } + wan_spin_unlock_irq(&card->wandev.lock,&flags); /* Increment the module usage count */ @@ -2095,10 +2109,13 @@ static int wanpipe_xilinx_close (netdevice_t* dev) static void disable_comm (sdla_t *card) { wan_smp_flag_t flags; - + /* TE1 - Unconfiging, only on shutdown */ if (IS_TE1_CARD(card)) { wan_smp_flag_t smp_flags,smp_flags1; + if (card->wandev.fe_iface.pre_release){ + card->wandev.fe_iface.pre_release(&card->fe); + } card->hw_iface.hw_lock(card->hw,&smp_flags1); wan_spin_lock_irq(&card->wandev.lock, &smp_flags); if (card->wandev.fe_iface.unconfig){ @@ -2106,7 +2123,7 @@ static void disable_comm (sdla_t *card) } wan_spin_unlock_irq(&card->wandev.lock, &smp_flags); card->hw_iface.hw_unlock(card->hw,&smp_flags1); - } + } wan_spin_lock_irq(&card->wandev.lock,&flags); @@ -2119,12 +2136,10 @@ static void disable_comm (sdla_t *card) wan_spin_unlock_irq(&card->wandev.lock,&flags); - WP_DELAY(10); xilinx_chip_unconfigure(card); - return; } @@ -2174,13 +2189,19 @@ static void wanpipe_xilinx_tx_timeout (netdevice_t* dev) reg_lo, reg_hi); wan_clear_bit(TX_BUSY,&chan->dma_status); - - xilinx_tx_fifo_under_recover(card,chan); - wan_netif_set_ticks(dev, SYSTEM_TICKS); + xilinx_tx_fifo_under_recover(card,chan); + WAN_NETIF_WAKE_QUEUE(dev); /*netif_wake_queue (dev);*/ - wanpipe_wake_stack(chan); + + if (chan->common.usedby == API){ +# if defined(__LINUX__) + wan_wakeup_api(chan); +# endif + }else if (chan->common.usedby == STACK){ + wanpipe_lip_kick(chan,0); + } } @@ -2265,26 +2286,24 @@ static int wanpipe_xilinx_send (netskb_t* skb, netdevice_t* dev) WAN_NETIF_STOP_QUEUE(dev); wan_netif_set_ticks(dev, SYSTEM_TICKS); return 1; - } else if (!WAN_NETIF_UP(dev)) { ++chan->if_stats.tx_carrier_errors; WAN_NETIF_START_QUEUE(dev); wan_skb_free(skb); wan_netif_set_ticks(dev, SYSTEM_TICKS); - return 0; - + return 0; }else { if (chan->common.usedby == TDM_VOICE || chan->common.usedby == TDM_VOICE_DCHAN){ - if (!card->u.aft.cfg.tdmv_dchan || card->u.aft.cfg.tdmv_dchan>32){ + if (!card->u.aft.tdmv_dchan || card->u.aft.tdmv_dchan>32){ wan_skb_free(skb); WAN_NETIF_START_QUEUE(dev); goto if_send_exit_crit; } - chan=(private_area_t*)card->u.aft.dev_to_ch_map[card->u.aft.cfg.tdmv_dchan-1]; + chan=(private_area_t*)card->u.aft.dev_to_ch_map[card->u.aft.tdmv_dchan-1]; if (!chan){ wan_skb_free(skb); WAN_NETIF_START_QUEUE(dev); @@ -2308,7 +2327,7 @@ static int wanpipe_xilinx_send (netskb_t* skb, netdevice_t* dev) } - if (chan->max_tx_bufs == 1) { + if (chan->max_tx_bufs == 1) { wan_smp_flag_t smp_flags; wan_spin_lock_irq(&card->wandev.lock, &smp_flags); if (wan_test_bit(TX_BUSY,&chan->dma_status)){ @@ -2355,6 +2374,7 @@ xilinx_tx_dma: } } + #ifdef __LINUX__ if (dev->tx_queue_len < chan->max_tx_bufs && dev->tx_queue_len > 0) { @@ -2369,7 +2389,8 @@ xilinx_tx_dma: chan->if_name,MAX_TX_BUF); chan->max_tx_bufs = MAX_TX_BUF; } -#endif +#endif + if_send_exit_crit: @@ -2755,6 +2776,10 @@ static int xilinx_chip_configure(sdla_t *card) (IS_T1_CARD(card))?"T1":"E1"); return -EINVAL; } + /* Run rest of initialization not from lock */ + if (card->wandev.fe_iface.post_init){ + err=card->wandev.fe_iface.post_init(&card->fe); + } xilinx_delay(1); @@ -2876,7 +2901,6 @@ static int xilinx_dev_configure(sdla_t *card, private_area_t *chan) { u32 reg; long free_logic_ch,i; - int err=0; DEBUG_TEST("-- Configure Xilinx. --\n"); @@ -2983,13 +3007,10 @@ static int xilinx_dev_configure(sdla_t *card, private_area_t *chan) DEBUG_TEST("Setting Timeslot %ld to logic ch %ld Reg=0x%X\n", i, chan->logic_ch_num,reg); - err=xilinx_write_ctrl_hdlc(card, + xilinx_write_ctrl_hdlc(card, i, XILINX_CONTROL_RAM_ACCESS_BUF, reg); - if (err) { - return err; - } } } @@ -3037,13 +3058,10 @@ static int xilinx_dev_configure(sdla_t *card, private_area_t *chan) i, free_logic_ch,reg); - err=xilinx_write_ctrl_hdlc(card, + xilinx_write_ctrl_hdlc(card, i, XILINX_CONTROL_RAM_ACCESS_BUF, reg); - if (err){ - return err; - } free_ch_used=1; } @@ -3076,13 +3094,10 @@ static int xilinx_dev_configure(sdla_t *card, private_area_t *chan) wan_set_bit(HDLC_RX_ADDR_RECOGN_DIS_BIT,®); - err=xilinx_write_ctrl_hdlc(card, + xilinx_write_ctrl_hdlc(card, chan->first_time_slot, XILINX_HDLC_CONTROL_REG, reg); - if (err){ - return err; - } } } @@ -3114,22 +3129,22 @@ static int xilinx_dev_configure(sdla_t *card, private_area_t *chan) * comms as soon as the HDLC is enabled */ - err=xilinx_write_ctrl_hdlc(card, + xilinx_write_ctrl_hdlc(card, chan->first_time_slot, XILINX_HDLC_CONTROL_REG, 0); - return err; + return 0; } wan_set_bit(HDLC_TX_CHAN_ENABLE_BIT,®); wan_set_bit(HDLC_RX_ADDR_RECOGN_DIS_BIT,®); - err=xilinx_write_ctrl_hdlc(card, + xilinx_write_ctrl_hdlc(card, chan->first_time_slot, XILINX_HDLC_CONTROL_REG, reg); - return err; + return 0; } @@ -3207,8 +3222,6 @@ static void xilinx_dev_unconfigure(sdla_t *card, private_area_t *chan) free_fifo_baddr_and_size(card,chan); wan_spin_unlock_irq(&card->wandev.lock,&smp_flags); - /* Do not clear logic channel here, - do it at the end of del_if_private */ for (i=0;iu.aft.num_of_time_slots;i++){ if (wan_test_bit(i,&chan->time_slot_map)){ @@ -3602,7 +3615,7 @@ static int xilinx_dma_tx (sdla_t *card, private_area_t *chan) return -EINVAL; } - if ((u32)wan_skb_data(skb) & 0x03){ + if ((unsigned long)wan_skb_data(skb) & 0x03){ int err=aft_realign_skb_pkt(chan, skb); if (err){ DEBUG_EVENT("%s: Error: Failed to allocate memory in %s()\n", @@ -3847,7 +3860,7 @@ static void xilinx_tx_post_complete (sdla_t *card, private_area_t *chan, netskb_ unsigned long reg = wan_skb_csum(skb); private_area_t *top_chan; - if (card->u.aft.cfg.tdmv_dchan){ + if (card->u.aft.tdmv_dchan){ top_chan=wan_netif_priv(chan->common.dev); }else{ top_chan=chan; @@ -3919,7 +3932,7 @@ tx_post_ok: if (wan_tracing_enabled(&top_chan->trace_info) >= 1){ - if (card->u.aft.cfg.tdmv_dchan){ + if (card->u.aft.tdmv_dchan){ if (chan->common.usedby == TDM_VOICE_DCHAN){ wan_capture_trace_packet(card, &top_chan->trace_info, skb, TRC_OUTGOING_FRM); } @@ -3934,7 +3947,16 @@ tx_post_ok: tx_post_exit: if (WAN_NETIF_QUEUE_STOPPED(chan->common.dev)){ - wanpipe_wake_stack(chan); + WAN_NETIF_WAKE_QUEUE(chan->common.dev); +#if !defined(CONFIG_PRODUCT_WANPIPE_GENERIC) + if (chan->common.usedby == API){ +# if defined(__LINUX__) + wan_wakeup_api(chan); +# endif + }else if (chan->common.usedby == STACK){ + wanpipe_lip_kick(chan,0); + } +#endif } #ifdef AFT_TDM_API_SUPPORT @@ -4196,19 +4218,36 @@ static void xilinx_rx_post_complete (sdla_t *card, private_area_t *chan, } } + if (len > aft_rx_copyback){ +#if defined(__OpenBSD__) + /* Try not to return our mbuf to the kernel. + ** Still possibility that firmware can use the hardware pointer + ** (not confirmed yet) */ + *new_skb=wan_skb_alloc(len + 20); + if (!*new_skb){ + DEBUG_EVENT("%s:%s: Failed to allocate rx skb pkt (len=%d)!\n", + card->devname,chan->if_name,(len+20)); + chan->if_stats.rx_dropped++; + goto rx_comp_error; + } + + buf=wan_skb_put((*new_skb),len); + memcpy(buf, wan_skb_tail(skb),len); + + aft_init_requeue_free_skb(chan, skb); +#else /* The rx size is big enough, thus * send this buffer up the stack * and allocate another one */ - memset(wan_skb_data(skb),0,sizeof(wp_rx_element_t)); wan_skb_put(skb,len); wan_skb_pull(skb, sizeof(wp_rx_element_t)); *new_skb=skb; aft_alloc_rx_dma_buff(card,chan,1,1); - - }else{ +#endif + } else { /* The rx packet is very * small thus, allocate a new @@ -4368,7 +4407,6 @@ static int aft_reinit_pending_rx_bufs(private_area_t *chan) } #endif - static int aft_alloc_rx_dma_buff(sdla_t *card, private_area_t *chan, int num, int irq) { int i; @@ -4389,7 +4427,9 @@ static int aft_alloc_rx_dma_buff(sdla_t *card, private_area_t *chan, int num, in } return 0; -} +} + + /*============================================================================ @@ -4403,9 +4443,10 @@ static void enable_timer (void* card_id) wan_set_bit(AFT_FE_POLL,&card->u.aft.port_task_cmd); WAN_TASKQ_SCHEDULE((&card->u.aft.port_task)); #else - wan_smp_flag_t smp_flags; + wan_smp_flag_t smp_flags; + int err = 0; wan_spin_lock_irq(&card->wandev.lock, &smp_flags); - card->wandev.fe_iface.polling(&card->fe); + err = card->wandev.fe_iface.polling(&card->fe); wan_spin_unlock_irq(&card->wandev.lock, &smp_flags); #endif @@ -4441,7 +4482,7 @@ static void wp_bh(void *data, int pending) return; } - if (card->u.aft.cfg.tdmv_dchan){ + if (card->u.aft.tdmv_dchan){ top_chan=wan_netif_priv(chan->common.dev); }else{ top_chan=chan; @@ -4468,6 +4509,7 @@ static void wp_bh(void *data, int pending) if (new_skb == NULL){ continue; } + len=wan_skb_len(new_skb); if (top_chan){ @@ -4476,19 +4518,18 @@ static void wp_bh(void *data, int pending) } if (chan->common.usedby == API){ - - if (chan->common.sk == NULL){ + + if (chan->common.sk == NULL){ DEBUG_TEST("%s: No sock bound to channel rx dropping!\n", chan->if_name); - chan->if_stats.rx_dropped++; - wan_skb_free(new_skb); + chan->if_stats.rx_dropped++; + wan_skb_free(new_skb); continue; - } + } #if defined(__LINUX__) # ifndef CONFIG_PRODUCT_WANPIPE_GENERIC - /* Only for API, we insert packet status * byte to indicate a packet error. Take * this byte and put it in the api header */ @@ -4498,10 +4539,12 @@ static void wp_bh(void *data, int pending) memset(rx_hdr,0,sizeof(api_rx_hdr_t)); rx_hdr->error_flag=pkt_error; }else{ + int hroom=wan_skb_headroom(new_skb); + int rx_sz=sizeof(api_rx_hdr_t); DEBUG_EVENT("%s: Error Rx pkt headroom %d < %d\n", chan->if_name, - wan_skb_headroom(new_skb), - sizeof(api_rx_hdr_t)); + hroom, + rx_sz); ++chan->if_stats.rx_dropped; wan_skb_free(new_skb); continue; @@ -4550,47 +4593,61 @@ static void wp_bh(void *data, int pending) card->devname,chan->logic_ch_num,wan_skb_len(new_skb), chan->tdmv_chan); wan_skb_free(new_skb); - + #ifdef AFT_TDM_API_SUPPORT - } else if (chan->tdmv_chan) { +/* TDM API SUPPORT COMPILED IN */ + } else { int err; wanpipe_tdm_api_dev_t *wp_tdm_api_dev = &chan->wp_tdm_api_dev_idx[chan->tdmv_chan]; + + if (is_tdm_api(chan,wp_tdm_api_dev)){ - if (wan_skb_headroom(new_skb) >= sizeof(api_rx_hdr_t)){ - api_rx_hdr_t *rx_hdr = - (api_rx_hdr_t*)skb_push(new_skb,sizeof(api_rx_hdr_t)); - memset(rx_hdr,0,sizeof(api_rx_hdr_t)); - //rx_hdr->error_flag=pkt_error; - } else { - if (WAN_NET_RATELIMIT()){ - DEBUG_EVENT("%s: Error Rx pkt headroom %u < %u\n", - chan->if_name, - (u32)wan_skb_headroom(new_skb), - (u32)sizeof(api_rx_hdr_t)); + if (wan_skb_headroom(new_skb) >= sizeof(api_rx_hdr_t)){ + api_rx_hdr_t *rx_hdr = + (api_rx_hdr_t*)skb_push(new_skb,sizeof(api_rx_hdr_t)); + memset(rx_hdr,0,sizeof(api_rx_hdr_t)); + //rx_hdr->error_flag=pkt_error; + } else { + if (WAN_NET_RATELIMIT()){ + DEBUG_EVENT("%s: Error Rx pkt headroom %u < %u\n", + chan->if_name, + (u32)wan_skb_headroom(new_skb), + (u32)sizeof(api_rx_hdr_t)); + } + ++chan->if_stats.rx_dropped; + wan_skb_free(new_skb); + continue; } - ++chan->if_stats.rx_dropped; + + err=wanpipe_tdm_api_rx_hdlc(wp_tdm_api_dev,new_skb); + if (err){ + ++chan->if_stats.rx_dropped; + wan_skb_free(new_skb); + continue; + } + + } else { + DEBUG_EVENT("%s: DCHAN Rx Packet critical error op not supported ch=%i\n",card->devname,chan->tdmv_chan); + ++chan->if_stats.rx_dropped; wan_skb_free(new_skb); - continue; + continue; } - - err=wanpipe_tdm_api_rx_hdlc(wp_tdm_api_dev,new_skb); - if (err){ - ++chan->if_stats.rx_dropped; - wan_skb_free(new_skb); - continue; - } -#endif + } +#else +/* TDM API SUPPORT NOT COMPILED IN */ + } else { - DEBUG_EVENT("%s: DCHAN Rx Packet critical error op not supported\n",card->devname); + DEBUG_EVENT("%s: TDM API support not compiled in\n",card->devname); ++chan->if_stats.rx_dropped; wan_skb_free(new_skb); continue; - } - - }else if (chan->common.usedby == TDM_VOICE){ + } +#endif + + } else if (chan->common.usedby == TDM_VOICE){ /* TDM VOICE doesn't operate here */ if (WAN_NET_RATELIMIT()){ DEBUG_EVENT("%s:%ld Critical Error: TDM VOICE Rx Pkt in BH\n", @@ -4795,15 +4852,16 @@ static void front_end_interrupt(sdla_t *card, unsigned long reg,int lock) * Determin the interrupt received and handle it. * */ -static void wp_xilinx_isr (sdla_t* card) +static WAN_IRQ_RETVAL wp_xilinx_isr (sdla_t* card) { int i; u32 reg; u32 dma_tx_reg,dma_rx_reg,tx_fifo_status=0,rx_fifo_status=0; private_area_t *chan; + WAN_IRQ_RETVAL_DECL(irq_ret); if (wan_test_bit(CARD_DOWN,&card->wandev.critical)){ - return; + WAN_IRQ_RETURN(irq_ret); } wan_set_bit(0,&card->in_isr); @@ -4829,6 +4887,7 @@ static void wp_xilinx_isr (sdla_t* card) card->devname); aft_critical_shutdown(card); + WAN_IRQ_RETVAL_SET(irq_ret, WAN_IRQ_HANDLED); goto isr_end; } }else{ @@ -4853,6 +4912,7 @@ static void wp_xilinx_isr (sdla_t* card) #else front_end_interrupt(card,reg,0); #endif + WAN_IRQ_RETVAL_SET(irq_ret, WAN_IRQ_HANDLED); } } @@ -4871,6 +4931,7 @@ static void wp_xilinx_isr (sdla_t* card) tx_fifo_status&=card->u.aft.active_ch_map; fifo_error_interrupt(card,reg,tx_fifo_status,rx_fifo_status); + WAN_IRQ_RETVAL_SET(irq_ret, WAN_IRQ_HANDLED); } } @@ -4883,6 +4944,7 @@ static void wp_xilinx_isr (sdla_t* card) if (wan_test_bit(GLOBAL_INTR_ENABLE_BIT,®) && (wan_test_bit(DMA_INTR_FLAG,®) || rx_fifo_status) ){ + WAN_IRQ_RETVAL_SET(irq_ret, WAN_IRQ_HANDLED); /* Receive DMA Engine */ card->hw_iface.bus_read_4(card->hw, @@ -5013,7 +5075,8 @@ isr_end: DEBUG_ISR("---- ISR end.-------------------\n"); wan_clear_bit(0,&card->in_isr); - return; + + WAN_IRQ_RETURN(irq_ret); } @@ -5087,6 +5150,12 @@ static int process_udp_mgmt_pkt(sdla_t* card, netdevice_t* dev, wan_udp_pkt->wan_udp_data_len=1; break; + case DIGITAL_LOOPTEST: + wan_udp_pkt->wan_udp_return_code = 0; + DEBUG_EVENT("Ready to send some data!!!\n"); + break; + + case AFT_MODEM_STATUS: wan_udp_pkt->wan_udp_return_code = 0; if (card->wandev.state == WAN_CONNECTED){ @@ -5097,11 +5166,6 @@ static int process_udp_mgmt_pkt(sdla_t* card, netdevice_t* dev, wan_udp_pkt->wan_udp_data_len=1; break; - case DIGITAL_LOOPTEST: - wan_udp_pkt->wan_udp_return_code = - digital_loop_test(card,wan_udp_pkt); - break; - case READ_OPERATIONAL_STATS: wan_udp_pkt->wan_udp_return_code = 0; @@ -5428,7 +5492,7 @@ static void handle_front_end_state(void *card_id) if (card->wandev.ignore_front_end_status == WANOPT_YES){ return; } - + if (!wan_test_bit(AFT_CHIP_CONFIGURED,&card->u.aft.chip_cfg_status)&& card->fe.fe_status == FE_CONNECTED){ DEBUG_TEST("%s: Skipping Front Front End State = %x\n", @@ -5436,7 +5500,7 @@ static void handle_front_end_state(void *card_id) wan_set_bit(AFT_FRONT_END_UP,&card->u.aft.chip_cfg_status); return; - } + } if (card->fe.fe_status == FE_CONNECTED){ @@ -5485,7 +5549,7 @@ static void handle_front_end_state(void *card_id) }else{ - if (card->u.aft.cfg.tdmv_span_no){ + if (card->tdmv_conf.span_no){ /* If running in TDMV voice mode, just note * that state went down, but keep the * connection up */ @@ -6165,8 +6229,6 @@ static void xilinx_tx_fifo_under_recover (sdla_t *card, private_area_t *chan) wan_clear_bit(TX_BUSY,&chan->dma_status); xilinx_dma_tx(card,chan); - - wanpipe_wake_stack(chan); } static int xilinx_write_ctrl_hdlc(sdla_t *card, u32 timeslot, u8 reg_off, u32 data) @@ -6195,8 +6257,8 @@ static int xilinx_write_ctrl_hdlc(sdla_t *card, u32 timeslot, u8 reg_off, u32 da return 0; } - if ((SYSTEM_TICKS-timeout) > 10){ - DEBUG_EVENT("%s: Error: Access to timeslot %d timed out!\n", + if ((SYSTEM_TICKS-timeout) > 1){ + DEBUG_EVENT("%s: Warning: Access to timeslot %d timed out!\n", card->devname,ts_orig); break; } @@ -6212,7 +6274,11 @@ static int set_chan_state(sdla_t* card, netdevice_t* dev, int state) private_area_t *chan = wan_netif_priv(dev); private_area_t *ch_ptr; - if (chan == NULL){ + if (chan == NULL) { + if (WAN_NET_RATELIMIT()){ + DEBUG_EVENT("%s: %s:%d No chan ptr!\n", + card->devname,__FUNCTION__,__LINE__); + } /* This is case can happened for WANPIPE (LITE) */ return 0; } @@ -6859,7 +6925,7 @@ static int aft_dma_rx_tdmv(sdla_t *card, private_area_t *chan, netskb_t *skb) err=aft_rx_post_complete_voice(card,chan,skb); if (err==0){ if (wan_tracing_enabled(&chan->trace_info) >= 1){ - if (card->u.aft.cfg.tdmv_dchan == 0){ + if (card->u.aft.tdmv_dchan == 0){ wan_capture_trace_packet_offset(card, &chan->trace_info, skb, IS_T1_CARD(card)?24:16, TRC_INCOMING_FRM); } @@ -6978,12 +7044,20 @@ static void aft_fe_intr_ctrl(sdla_t *card, int status) } #if defined(__LINUX__) +# if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)) static void aft_port_task (void * card_ptr) +# else +static void aft_port_task (struct work_struct *work) +# endif #else static void aft_port_task (void * card_ptr, int arg) #endif { +#if defined(__LINUX__) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)) + sdla_t *card = (sdla_t *)container_of(work, sdla_t, u.aft.port_task); +#else sdla_t *card = (sdla_t *)card_ptr; +#endif wan_smp_flag_t smp_flags; if (wan_test_bit(CARD_DOWN,&card->wandev.critical)){ @@ -7007,9 +7081,10 @@ static void aft_port_task (void * card_ptr, int arg) if (wan_test_bit(AFT_FE_POLL,&card->u.aft.port_task_cmd)){ aft_fe_intr_ctrl(card, 0); if (card->wandev.fe_iface.polling){ - wan_smp_flag_t smp_flags; + wan_smp_flag_t smp_flags; + int err = 0; - card->wandev.fe_iface.polling(&card->fe); + err = card->wandev.fe_iface.polling(&card->fe); wan_spin_lock_irq(&card->wandev.lock,&smp_flags); handle_front_end_state(card); @@ -7209,8 +7284,8 @@ static int aft_tdmv_init(sdla_t *card, wandev_conf_t *conf) DEBUG_EVENT("%s: TDMV Span = %d : %s\n", card->devname, - card->u.aft.cfg.tdmv_span_no, - card->u.aft.cfg.tdmv_span_no?"Enabled":"Disabled"); + card->tdmv_conf.span_no, + card->tdmv_conf.span_no?"Enabled":"Disabled"); err=0; @@ -7220,7 +7295,7 @@ static int aft_tdmv_init(sdla_t *card, wandev_conf_t *conf) static int aft_tdmv_free(sdla_t *card) { #if defined(CONFIG_PRODUCT_WANPIPE_TDM_VOICE) - if (card->u.aft.cfg.tdmv_span_no && + if (card->tdmv_conf.span_no && card->wan_tdmv.sc) { int err; WAN_TDMV_CALL(remove, (card), err); @@ -7233,13 +7308,17 @@ static int aft_tdmv_if_init(sdla_t *card, private_area_t *chan, wanif_conf_t *co { int err = 0; - int dchan=card->u.aft.cfg.tdmv_dchan; - + int dchan=card->u.aft.tdmv_dchan; + + if (IS_T1_CARD(card) && card->u.aft.tdmv_dchan){ + dchan--; + } + if (chan->common.usedby != TDM_VOICE && chan->common.usedby != TDM_VOICE_API){ return 0; } - if (!card->u.aft.cfg.tdmv_span_no){ + if (!card->tdmv_conf.span_no){ return -EINVAL; } @@ -7270,10 +7349,7 @@ static int aft_tdmv_if_init(sdla_t *card, private_area_t *chan, wanif_conf_t *co /* If DCHAN is enabled, set this timeslot, so zaptel * configures it. However, the wp_tdmv_software_init() * will remove it from the timeslot list. */ - if (IS_T1_CARD(card) && card->u.aft.cfg.tdmv_dchan){ - dchan--; - } - if (card->u.aft.cfg.tdmv_dchan){ + if (card->u.aft.tdmv_dchan){ wan_set_bit(dchan,&conf->active_ch); } @@ -7288,7 +7364,7 @@ static int aft_tdmv_if_init(sdla_t *card, private_area_t *chan, wanif_conf_t *co #if defined(CONFIG_PRODUCT_WANPIPE_TDM_VOICE) if (chan->tdmv_zaptel_cfg){ - WAN_TDMV_CALL(reg, (card, conf, chan->common.dev), err); + WAN_TDMV_CALL(reg, (card, &conf->tdmv, conf->active_ch, conf->hwec.enable, chan->common.dev), err); if (err < 0){ DEBUG_EVENT("%s: Error: Failed to register TDMV channel!\n", chan->if_name); @@ -7306,7 +7382,7 @@ static int aft_tdmv_if_init(sdla_t *card, private_area_t *chan, wanif_conf_t *co } #endif - if (card->u.aft.cfg.tdmv_dchan){ + if (card->u.aft.tdmv_dchan){ wan_clear_bit(dchan,&conf->active_ch); } @@ -7476,7 +7552,6 @@ static int aft_tdm_api_rx_tx_channelized(sdla_t *card, private_area_t *chan, net #endif - static void aft_critical_shutdown (sdla_t *card) { @@ -7488,7 +7563,11 @@ static void aft_critical_shutdown (sdla_t *card) card->devname); #endif - if (IS_TE1_CARD(card)) { + /* TE1 - Unconfiging, only on shutdown */ + if (IS_TE1_CARD(card)) { + if (card->wandev.fe_iface.pre_release){ + card->wandev.fe_iface.pre_release(&card->fe); + } if (card->wandev.fe_iface.unconfig){ card->wandev.fe_iface.unconfig(&card->fe); } @@ -7503,73 +7582,6 @@ static void aft_critical_shutdown (sdla_t *card) } -static int digital_loop_test(sdla_t* card,wan_udp_pkt_t* wan_udp_pkt) -{ - netskb_t* skb; - netdevice_t* dev; - char* buf; - private_area_t *chan; - - dev = WAN_DEVLE2DEV(WAN_LIST_FIRST(&card->wandev.dev_head)); - if (dev == NULL) { - return 1; - } - chan = wan_netif_priv(dev); - if (chan == NULL) { - return 1; - } - - if (chan->common.state != WAN_CONNECTED) { - DEBUG_EVENT("%s: Loop test failed: dev not connected!\n", - card->devname); - return 2; - } - - skb = wan_skb_alloc(wan_udp_pkt->wan_udp_data_len+100); - if (skb == NULL) { - return 3; - } - - switch (chan->common.usedby) { - - case API: - wan_skb_push(skb, sizeof(api_rx_hdr_t)); - break; - - case STACK: - case WANPIPE: - break; - - case TDM_VOICE: - case TDM_VOICE_API: - case TDM_VOICE_DCHAN: - if (card->u.aft.cfg.tdmv_dchan) { - break; - } else { - DEBUG_EVENT("%s: Loop test failed: no dchan in TDMV mode!\n", - card->devname); - } - /* Fall into the default case */ - - default: - DEBUG_EVENT("%s: Loop test failed: invalid operation mode!\n", - card->devname); - wan_skb_free(skb); - return 4; - } - - buf = wan_skb_put(skb, wan_udp_pkt->wan_udp_data_len); - memcpy(buf, wan_udp_pkt->wan_udp_data, wan_udp_pkt->wan_udp_data_len); - - - skb->next = skb->prev = NULL; - skb->dev = dev; - skb->protocol = htons(ETH_P_IP); - skb->mac.raw = wan_skb_data(skb); - dev_queue_xmit(skb); - - return 0; -} /****** End ****************************************************************/ diff --git a/patches/kdrivers/src/net/sdladrv.c b/patches/kdrivers/src/net/sdladrv.c index 8ee85a1..93c8ebb 100644 --- a/patches/kdrivers/src/net/sdladrv.c +++ b/patches/kdrivers/src/net/sdladrv.c @@ -13,6 +13,8 @@ * as published by the Free Software Foundation; either version * 2 of the License, or (at your option) any later version. * ============================================================================ +* Apr 04, 2007 Alex Feldman Add support T3/E3 SHART cards +* Mar 04, 2007 Alex Feldman Add support ISDN/BRI cards * Dec 15. 2003 Nenad Corbic Redesigned hw abstraction layer to * Alex Feldman support both BSD and Linux as well * as to abstract the HW layer from @@ -22,7 +24,7 @@ * Timeout using jiffies and nloops since * jiffies don't work when irq's are turned * off. -* Apr 25, 2001 Nenad Corbic Fixed the 2.0.X kernel bug in pci_init. +* Apr 25, 2001 Nenad Corbic Fixed the 2.0.X kernel bug in init. * Mar 20, 2001 Nenad Corbic Added the auto_pci_cfg filed, to support * the PCISLOT #0. * Apr 04, 2000 Nenad Corbic Fixed the auto memory detection code. @@ -100,8 +102,6 @@ #define __SDLA_HW_LEVEL #define __SDLADRV__ -#define SDLADRV_NEW -#define SDLADRV_A200_PROBE /* **************************************************************************** **** For Debug purpose (only OpenBSD) **** @@ -141,6 +141,12 @@ # error "Unsupported Operating System!" #endif +#if 1 +#define AFT_FUNC_DEBUG() +#else +#define AFT_FUNC_DEBUG() DEBUG_EVENT("%s:%d\n",__FUNCTION__,__LINE__) +#endif + /*************************************************************************** **** M A C R O S / D E F I N E S **** ***************************************************************************/ @@ -249,7 +255,7 @@ static int sdla_clear_bit (void* phw, unsigned long addr, u8); static void sdla_peek_by_4 (sdlahw_t* hw, unsigned long offset, void* pbuf, unsigned int len); static void sdla_poke_by_4 (sdlahw_t* hw, unsigned long offset, void* pbuf, unsigned int len); #if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) -static int sdla_set_intrhand(void* phw, void (*isr_func)(void*), void* arg, int); +static int sdla_set_intrhand(void* phw, wan_pci_ifunc_t*, void* arg, int); static int sdla_restore_intrhand(void* phw, int); #endif static int sdla_get_hwcard(void* phw, void** phwcard); @@ -310,7 +316,7 @@ static int sdla_s514_hw_select (sdlahw_card_t* card, int cpu_no, int irq, void*) static int sdla_adsl_hw_select (sdlahw_card_t* card, int cpu_no, int irq, void*); static int sdla_aft_hw_select (sdlahw_card_t* card, int cpu_no, int irq, void*); static void sdla_save_hw_probe (sdlahw_t* hw, int port); -static int sdla_save_a200_hw_probe_verbose(sdlahw_t* hw, int port); +static int sdla_save_Remora_hw_probe_verbose(sdlahw_t* hw, int port); static int sdla_hw_lock(void *phw, wan_smp_flag_t *flag); static int sdla_hw_unlock(void *phw, wan_smp_flag_t *flag); @@ -330,6 +336,18 @@ int sdla_hw_fe_clear_bit(void *phw,int value); static int sdla_hw_read_cpld(void *phw, u16 off, u8 *data); static int sdla_hw_write_cpld(void *phw, u16 off, u8 data); +extern int sdla_te1_write_fe(void* phw, ...); +extern u_int8_t sdla_te1_read_fe (void* phw, ...); + +extern int sdla_shark_te1_write_fe(void *phw, ...); +extern u_int8_t sdla_shark_te1_read_fe (void *phw, ...); + +extern int sdla_shark_rm_write_fe (void* phw, ...); +extern u_int8_t sdla_shark_rm_read_fe (void* phw, ...); + +extern int sdla_shark_56k_write_fe(void *phw, ...); +extern u_int8_t sdla_shark_56k_read_fe (void *phw, ...); + #if defined(__LINUX__) #if defined(WAN_DEBUG_MEM) atomic_t wan_debug_mem; @@ -486,7 +504,7 @@ WAN_MODULE_DEFINE( "GPL", sdladrv_init, sdladrv_exit, NULL); WAN_MODULE_VERSION(sdladrv, SDLADRV_MAJOR_VER); -# endif +# endif #endif @@ -498,11 +516,11 @@ int sdladrv_init(void* arg) int volatile i=0; if (WANPIPE_VERSION_BETA){ - DEBUG_EVENT("%s Beta%s-%s %s %s\n", - wan_fullname, WANPIPE_SUB_VERSION, WANPIPE_VERSION, + DEBUG_EVENT("%s Beta %s.%s %s %s\n", + wan_fullname, WANPIPE_VERSION, WANPIPE_SUB_VERSION, WANPIPE_COPYRIGHT_DATES,WANPIPE_COMPANY); }else{ - DEBUG_EVENT("%s Stable %s-%s %s %s\n", + DEBUG_EVENT("%s Stable %s.%s %s %s\n", wan_fullname, WANPIPE_VERSION, WANPIPE_SUB_VERSION, WANPIPE_COPYRIGHT_DATES,WANPIPE_COMPANY); } @@ -686,7 +704,6 @@ sdla_save_hw_probe (sdlahw_t* hw, int port) break; case A300_ADPTR_U_1TE3: - case AFT_ADPTR_56K: if (hw->hwcard->adptr_subtype == AFT_SUBTYPE_SHARK){ snprintf(tmp_hw_probe->hw_info, sizeof(tmp_hw_probe->hw_info), @@ -755,13 +772,11 @@ static void sdla_get_adptr_name(sdlahw_t* hw) SDLA_ADPTR_NAME(hw->hwcard->adptr_type), AFT_SUBTYPE(hw->hwcard->adptr_subtype), AFT_SECURITY(hw->hwcard->adptr_security)); - return; } -#if defined(SDLADRV_A200_PROBE) -extern unsigned char sdla_shark_analog_read_fe (void* phw, ...); -static int sdla_save_a200_hw_probe_verbose(sdlahw_t* hw, int port) + +static int sdla_save_Remora_hw_probe_verbose(sdlahw_t* hw, int port) { u32 reg; int mod_no, off = 0; @@ -775,7 +790,6 @@ static int sdla_save_a200_hw_probe_verbose(sdlahw_t* hw, int port) return -EINVAL; } - /* A200 clear reset */ sdla_bus_read_4(hw, 0x40,®); wan_set_bit(1,®); @@ -798,7 +812,7 @@ static int sdla_save_a200_hw_probe_verbose(sdlahw_t* hw, int port) for(mod_no = 0; mod_no < MAX_REMORA_MODULES; mod_no += 2){ - value = sdla_shark_analog_read_fe(hw, mod_no, MOD_TYPE_FXS, 0, 0); + value = sdla_shark_rm_read_fe(hw, mod_no, MOD_TYPE_FXS, 0, 0); if ((value & 0x0F) == 0x05){ hw->hwcard->rm_mod_type[mod_no] = MOD_TYPE_FXS; hw->hwcard->rm_mod_type[mod_no+1] = MOD_TYPE_FXS; @@ -814,7 +828,7 @@ static int sdla_save_a200_hw_probe_verbose(sdlahw_t* hw, int port) for(mod_no = 0; mod_no < MAX_REMORA_MODULES; mod_no += 2){ if (hw->hwcard->rm_mod_type[mod_no] != MOD_TYPE_NONE) continue; - value = sdla_shark_analog_read_fe(hw, mod_no, MOD_TYPE_FXO, 1, 2); + value = sdla_shark_rm_read_fe(hw, mod_no, MOD_TYPE_FXO, 1, 2); if (value == 0x03){ hw->hwcard->rm_mod_type[mod_no] = MOD_TYPE_FXO; hw->hwcard->rm_mod_type[mod_no+1] = MOD_TYPE_FXO; @@ -849,7 +863,13 @@ static int sdla_save_a200_hw_probe_verbose(sdlahw_t* hw, int port) sdla_memory_unmap(hw); return 0; } -#endif + +static int sdla_save_ISDN_hw_probe_verbose(sdlahw_t* hw, int port) +{ + + /* FIXME: Add code for ISDN card for module detection */ + return 0; +} #define AFT_CHIP_CFG_REG 0x40 #define AFT_CHIPCFG_SFR_IN_BIT 2 @@ -858,13 +878,14 @@ static int sdla_get_cpld_info(sdlahw_t* hw) { unsigned int reg, reg1; unsigned short cpld_off; - unsigned char status = 0, tmp = 0, adptr_sec = 0; + unsigned char status = 0, tmp = 0, adptr_sec = 0; + + AFT_FUNC_DEBUG(); if (sdla_memory_map(hw, SDLA_CPU_A)){ return -EINVAL; } -#if defined(SDLADRV_NEW) if (hw->hwcard->adptr_subtype == AFT_SUBTYPE_NORMAL){ switch(hw->hwcard->adptr_type){ case A101_ADPTR_1TE1: @@ -996,141 +1017,24 @@ static int sdla_get_cpld_info(sdlahw_t* hw) sdla_bus_write_4(hw, AFT_CHIP_CFG_REG, reg1); break; - } - break; - } - } -#else - - switch(hw->hwcard->adptr_type){ - case A101_ADPTR_1TE1: - case A101_ADPTR_2TE1: - cpld_off = AFT_SECURITY_CPLD_REG; - sdla_hw_read_cpld(hw, cpld_off, &tmp); - adptr_sec = AFT_GET_SECURITY(tmp); - switch(adptr_sec){ - case AFT_SECURITY_1LINE_UNCH: - case AFT_SECURITY_2LINE_UNCH: - hw->hwcard->adptr_security = AFT_SECURITY_UNCHAN; - break; - case AFT_SECURITY_1LINE_CH: - case AFT_SECURITY_2LINE_CH: - hw->hwcard->adptr_security = AFT_SECURITY_CHAN; - break; - default: - DEBUG_EVENT( - "%s: AFT-A101-2 Critical error: Unknown Security ID (0x%02X)!\n", - wan_drvname, adptr_sec); - break; - } - break; - - case A104_ADPTR_4TE1: - /* Enable memory access */ - sdla_bus_read_4(hw, AFT_CHIP_CFG_REG, ®1); - reg = reg1; - wan_clear_bit(AFT_CHIPCFG_SFR_IN_BIT, ®); - wan_clear_bit(AFT_CHIPCFG_SFR_EX_BIT, ®); - sdla_bus_write_4(hw, AFT_CHIP_CFG_REG, reg); - - if (hw->hwcard->adptr_subtype == AFT_SUBTYPE_SHARK){ - cpld_off = AFT_SH_CPLD_BOARD_STATUS_REG; - sdla_hw_read_cpld(hw, cpld_off, &status); - hw->hwcard->hwec_chan_no = A104_ECCHAN(AFT_SH_SECURITY(status)); - }else{ - - cpld_off = AFT_SECURITY_CPLD_REG; - sdla_hw_read_cpld(hw, cpld_off, &tmp); - adptr_sec = AFT_GET_SECURITY(tmp); - if (adptr_sec == AFT_SECURITY_1LINE_UNCH){ - hw->hwcard->adptr_security = AFT_SECURITY_UNCHAN; - }else if (adptr_sec == AFT_SECURITY_1LINE_CH){ - hw->hwcard->adptr_security = AFT_SECURITY_CHAN; - }else if (adptr_sec == 0x02){ - /*FIXME: ALEX CHANGE HARDCODED VALUE FOR SHARK */ - hw->hwcard->adptr_security = AFT_SECURITY_CHAN; - }else{ - DEBUG_EVENT( - "%s: AFT-A104 Critical error: Unknown Security ID (%02X)!\n", - wan_drvname, adptr_sec); - } - } - - /* Restore original value */ - sdla_bus_write_4(hw, AFT_CHIP_CFG_REG, reg1); - break; - - case A108_ADPTR_8TE1: - /* Enable memory access */ - sdla_bus_read_4(hw, AFT_CHIP_CFG_REG, ®1); - reg = reg1; - wan_clear_bit(AFT_CHIPCFG_SFR_IN_BIT, ®); - wan_clear_bit(AFT_CHIPCFG_SFR_EX_BIT, ®); - sdla_bus_write_4(hw, AFT_CHIP_CFG_REG, reg); - - if (hw->hwcard->adptr_subtype == AFT_SUBTYPE_SHARK){ - cpld_off = AFT_SH_CPLD_BOARD_STATUS_REG; - sdla_hw_read_cpld(hw, cpld_off, &status); - hw->hwcard->hwec_chan_no = A108_ECCHAN(AFT_SH_SECURITY(status)); - } - - /* Restore original value */ - sdla_bus_write_4(hw, AFT_CHIP_CFG_REG, reg1); - break; - - case A300_ADPTR_U_1TE3: - /* By default, AFT-A300 is unchannelized! */ - hw->hwcard->adptr_security = AFT_SECURITY_UNCHAN; - break; - - case A200_ADPTR_ANALOG: - case A400_ADPTR_ANALOG: - /* Enable memory access */ - sdla_bus_read_4(hw, AFT_CHIP_CFG_REG, ®1); - reg = reg1; - wan_clear_bit(AFT_CHIPCFG_SFR_IN_BIT, ®); - wan_clear_bit(AFT_CHIPCFG_SFR_EX_BIT, ®); - sdla_bus_write_4(hw, AFT_CHIP_CFG_REG, reg); - - if (hw->hwcard->adptr_subtype == AFT_SUBTYPE_SHARK){ - cpld_off = A200_SH_CPLD_BOARD_STATUS_REG; - sdla_hw_read_cpld(hw, cpld_off, &status); - hw->hwcard->hwec_chan_no = A200_ECCHAN(AFT_SH_SECURITY(status)); - - if (hw->hwcard->hwec_chan_no){ - - /* Check EC access */ - /* Clear octasic reset */ - cpld_off = 0x00; - sdla_hw_write_cpld(hw, cpld_off, 0x01); - - /* Set octasic reset */ - cpld_off = 0x00; - sdla_hw_write_cpld(hw, cpld_off, 0x00); - } - } - - /* Restore original value */ - sdla_bus_write_4(hw, AFT_CHIP_CFG_REG, reg1); - break; - - case AFT_ADPTR_56K: - AFT_FUNC_DEBUG(); - /* Enable memory access */ - sdla_bus_read_4(hw, AFT_CHIP_CFG_REG, ®1); - reg = reg1; - wan_clear_bit(AFT_CHIPCFG_SFR_IN_BIT, ®); - wan_clear_bit(AFT_CHIPCFG_SFR_EX_BIT, ®); - sdla_bus_write_4(hw, AFT_CHIP_CFG_REG, reg); + case AFT_ADPTR_56K: + AFT_FUNC_DEBUG(); + /* Enable memory access */ + sdla_bus_read_4(hw, AFT_CHIP_CFG_REG, ®1); + reg = reg1; + wan_clear_bit(AFT_CHIPCFG_SFR_IN_BIT, ®); + wan_clear_bit(AFT_CHIPCFG_SFR_EX_BIT, ®); + sdla_bus_write_4(hw, AFT_CHIP_CFG_REG, reg); - cpld_off = AFT_SH_CPLD_BOARD_STATUS_REG; - sdla_hw_read_cpld(hw, cpld_off, &status); - hw->hwcard->hwec_chan_no = 0; - - break; - + cpld_off = AFT_SH_CPLD_BOARD_STATUS_REG; + sdla_hw_read_cpld(hw, cpld_off, &status); + hw->hwcard->hwec_chan_no = 0; + + break; + } + break; + } } -#endif sdla_memory_unmap(hw); return 0; } @@ -1340,16 +1244,16 @@ static int sdla_aft_hw_select (sdlahw_card_t* hwcard, int cpu_no, int irq, void* sdla_get_adptr_name(hw); sdla_save_hw_probe(hw, 0); number_of_cards += 1; - if (hwcard->adptr_subtype == AFT_SUBTYPE_NORMAL){ + if (hwcard->adptr_subtype == AFT_SUBTYPE_NORMAL){ hwcard->cfg_type = WANOPT_AFT; }else if (hwcard->adptr_subtype == AFT_SUBTYPE_SHARK){ hwcard->cfg_type = WANOPT_AFT101; } - DEBUG_EVENT( - "%s: %s T1/E1 card found (%s rev.%X), cpu(s) 1, bus #%d, slot #%d, irq #%d\n", + "%s: %s%s T1/E1 card found (%s rev.%X), cpu(s) 1, bus #%d, slot #%d, irq #%d\n", wan_drvname, hwcard->adptr_name, + AFT_PCIEXPRESS_DECODE(hwcard), AFT_CORE_ID_DECODE(hwcard->core_id), hwcard->core_rev, hwcard->bus_no, hwcard->slot_no, irq); @@ -1377,9 +1281,10 @@ static int sdla_aft_hw_select (sdlahw_card_t* hwcard, int cpu_no, int irq, void* #endif if (cpu_no == SDLA_CPU_A){ DEBUG_EVENT( - "%s: %s T1/E1 card found (%s rev.%X), cpu(s) 2, bus #%d, slot #%d, irq #%d\n", + "%s: %s%s T1/E1 card found (%s rev.%X), cpu(s) 2, bus #%d, slot #%d, irq #%d\n", wan_drvname, hwcard->adptr_name, + AFT_PCIEXPRESS_DECODE(hwcard), AFT_CORE_ID_DECODE(hwcard->core_id), hwcard->core_rev, hwcard->bus_no, hwcard->slot_no, irq); @@ -1393,9 +1298,10 @@ static int sdla_aft_hw_select (sdlahw_card_t* hwcard, int cpu_no, int irq, void* sdla_save_hw_probe(hw, 1); number_of_cards += 1; DEBUG_EVENT( - "%s: %s T1/E1 card found (%s rev.%X), cpu(s) 1, line(s) 2, bus #%d, slot #%d, irq #%d\n", + "%s: %s%s T1/E1 card found (%s rev.%X), cpu(s) 1, line(s) 2, bus #%d, slot #%d, irq #%d\n", wan_drvname, hwcard->adptr_name, + AFT_PCIEXPRESS_DECODE(hwcard), AFT_CORE_ID_DECODE(hwcard->core_id), hwcard->core_rev, hwcard->bus_no, hwcard->slot_no, irq); @@ -1419,9 +1325,10 @@ static int sdla_aft_hw_select (sdlahw_card_t* hwcard, int cpu_no, int irq, void* sdla_save_hw_probe(hw, 3); number_of_cards ++; DEBUG_EVENT( - "%s: %s T1/E1 card found (%s rev.%X), cpu(s) 1, line(s) 4, bus #%d, slot #%d, irq #%d\n", + "%s: %s%s T1/E1 card found (%s rev.%X), cpu(s) 1, line(s) 4, bus #%d, slot #%d, irq #%d\n", wan_drvname, hwcard->adptr_name, + AFT_PCIEXPRESS_DECODE(hwcard), AFT_CORE_ID_DECODE(hwcard->core_id), hwcard->core_rev, hwcard->bus_no, hwcard->slot_no, irq); @@ -1452,9 +1359,10 @@ static int sdla_aft_hw_select (sdlahw_card_t* hwcard, int cpu_no, int irq, void* sdla_save_hw_probe(hw, 7); number_of_cards ++; DEBUG_EVENT( - "%s: %s T1/E1 card found (%s rev.%X), cpu(s) 1, line(s) 8, bus #%d, slot #%d, irq #%d\n", + "%s: %s%s T1/E1 card found (%s rev.%X), cpu(s) 1, line(s) 8, bus #%d, slot #%d, irq #%d\n", wan_drvname, hwcard->adptr_name, + AFT_PCIEXPRESS_DECODE(hwcard), AFT_CORE_ID_DECODE(hwcard->core_id), hwcard->core_rev, hwcard->bus_no, hwcard->slot_no, irq); @@ -1472,9 +1380,10 @@ static int sdla_aft_hw_select (sdlahw_card_t* hwcard, int cpu_no, int irq, void* sdla_save_hw_probe(hw, 0); number_of_cards += 1; DEBUG_EVENT( - "%s: %s T3/E3 card found (%s rev.%X), cpu(s) 1, bus #%d, slot #%d, irq #%d\n", + "%s: %s%s T3/E3 card found (%s rev.%X), cpu(s) 1, bus #%d, slot #%d, irq #%d\n", wan_drvname, hwcard->adptr_name, + AFT_PCIEXPRESS_DECODE(hwcard), AFT_CORE_ID_DECODE(hwcard->core_id), hwcard->core_rev, hwcard->bus_no, hwcard->slot_no, irq); @@ -1491,21 +1400,44 @@ static int sdla_aft_hw_select (sdlahw_card_t* hwcard, int cpu_no, int irq, void* sdla_get_cpld_info(hw); sdla_get_adptr_name(hw); sdla_save_hw_probe(hw, 0); -#if defined(SDLADRV_A200_PROBE) /* Verify FXS/FXO modules */ - sdla_save_a200_hw_probe_verbose(hw, 0); -#endif + sdla_save_Remora_hw_probe_verbose(hw, 0); number_of_cards += 1; DEBUG_EVENT( - "%s: %s FXO/FXS card found (%s rev.%X), cpu(s) 1, bus #%d, slot #%d, irq #%d\n", + "%s: %s%s FXO/FXS card found (%s rev.%X), cpu(s) 1, bus #%d, slot #%d, irq #%d\n", wan_drvname, hwcard->adptr_name, + AFT_PCIEXPRESS_DECODE(hwcard), AFT_CORE_ID_DECODE(hwcard->core_id), hwcard->core_rev, hwcard->bus_no, hwcard->slot_no, irq); break; + + case AFT_ADPTR_ISDN: + hwcard->cfg_type = WANOPT_AFT_ISDN; + sdla_adapter_cnt.aft_isdn_adapters++; + if ((hw = sdla_hw_register(hwcard, cpu_no, irq, dev)) == NULL){ + return -EINVAL; + } + sdla_get_cpld_info(hw); + sdla_get_adptr_name(hw); + sdla_save_hw_probe(hw, 0); + /* Verify FXS/FXO modules */ + sdla_save_ISDN_hw_probe_verbose(hw, 0); + + number_of_cards += 1; + DEBUG_EVENT( + "%s: %s%s ISDN BRI card found (%s rev.%X), cpu(s) 1, bus #%d, slot #%d, irq #%d\n", + wan_drvname, + hwcard->adptr_name, + AFT_PCIEXPRESS_DECODE(hwcard), + AFT_CORE_ID_DECODE(hwcard->core_id), + hwcard->core_rev, + hwcard->bus_no, hwcard->slot_no, irq); + break; + case AFT_ADPTR_56K: hwcard->cfg_type = WANOPT_AFT_56K; sdla_adapter_cnt.aft_56k_adapters++; @@ -1527,8 +1459,6 @@ static int sdla_aft_hw_select (sdlahw_card_t* hwcard, int cpu_no, int irq, void* hwcard->core_rev, hwcard->bus_no, hwcard->slot_no, irq); break; - - default: #if 0 @@ -1584,6 +1514,7 @@ static int sdla_pci_probe(sdlahw_t *hw) WAN_ASSERT(hw == NULL); WAN_ASSERT(hw->hwcard == NULL); tmp_hwcard = hw->hwcard; + while ((pci_dev = pci_get_device(V3_VENDOR_ID, V3_DEVICE_ID, pci_dev)) != NULL) { @@ -1621,44 +1552,16 @@ static int sdla_pci_probe(sdlahw_t *hw) /* Search for Pulsar PCI cards */ pci_dev = NULL; + while ((pci_dev = pci_get_device(PCI_VENDOR_ID_GSI, PCI_DEVICE_ID_GSI_ADSL, pci_dev)) != NULL) { tmp_hwcard->pci_dev = pci_dev; sdla_pci_read_config_word(hw, PCI_SUBSYS_ID_WORD, &pci_subsystem_id); -#if 0 if ((pci_subsystem_id & 0xFF) != S518_ADPTR_1_CPU_ADSL){ continue; } -#else - pci_subsystem_id = S518_ADPTR_1_CPU_ADSL; -#endif - - hwcard = sdla_card_register(SDLA_PCI_CARD, - ((pci_dev->devfn >> 3) & PCI_DEV_SLOT_MASK), - pci_dev->bus->number, - 0); - if (hwcard == NULL){ - continue; - } - hwcard->adptr_type = pci_subsystem_id & 0xFF; - hwcard->pci_dev = pci_dev; - - number_pci_cards += - sdla_adsl_hw_select(hwcard, SDLA_CPU_A, pci_dev->irq, NULL); - - } - - /* Search for Pulsar PCI cards */ - pci_dev = NULL; - while ((pci_dev = pci_get_device(PCI_VENDOR_ID_GSI, PCI_DEVICE_ID_GSI_ADSL_V2, pci_dev)) - != NULL) { - - tmp_hwcard->pci_dev = pci_dev; - sdla_pci_read_config_word(hw, PCI_SUBSYS_ID_WORD, &pci_subsystem_id); - - pci_subsystem_id=S518_ADPTR_1_CPU_ADSL; hwcard = sdla_card_register(SDLA_PCI_CARD, ((pci_dev->devfn >> 3) & PCI_DEV_SLOT_MASK), @@ -1757,7 +1660,12 @@ static int sdla_pci_probe(sdlahw_t *hw) hwcard->adptr_type = A400_ADPTR_ANALOG; hwcard->adptr_subtype = AFT_SUBTYPE_SHARK; break; - + + case AFT_ISDN_BRI_SHARK_SUBSYS_VENDOR: + hwcard->adptr_type = AFT_ADPTR_ISDN; + hwcard->adptr_subtype = AFT_SUBTYPE_SHARK; + break; + case AFT_56K_SHARK_SUBSYS_VENDOR: hwcard->adptr_type = AFT_ADPTR_56K; hwcard->adptr_subtype = AFT_SUBTYPE_SHARK; @@ -1771,15 +1679,15 @@ static int sdla_pci_probe(sdlahw_t *hw) ((pci_dev->devfn >> 3) & PCI_DEV_SLOT_MASK)); continue; } - /* Detect PCI Express cards (only valid for production test) */ - switch(PCI_subsys_vendor){ + switch(PCI_subsys_vendor){ case A200_REMORA_SHARK_SUBSYS_VENDOR: - case A400_REMORA_SHARK_SUBSYS_VENDOR: + case A400_REMORA_SHARK_SUBSYS_VENDOR: case AFT_1TE1_SHARK_SUBSYS_VENDOR: case AFT_2TE1_SHARK_SUBSYS_VENDOR: case AFT_4TE1_SHARK_SUBSYS_VENDOR: case AFT_8TE1_SHARK_SUBSYS_VENDOR: + case AFT_ISDN_BRI_SHARK_SUBSYS_VENDOR: case AFT_56K_SHARK_SUBSYS_VENDOR: if (pci_dev->bus == NULL) break; bus = pci_dev->bus; @@ -2217,7 +2125,12 @@ unsigned int sdla_hw_probe(void) 0); } if (hwcard == NULL){ - continue; + /* This is only for cards that has more then + ** one CPU. */ + hwcard = sdla_card_search(SDLA_PCI_CARD, + sdladev_slot(dev), + sdladev_bus(dev), + 0); } hwcard->adptr_type = dev->adapter_type; hwcard->adptr_subtype = dev->adapter_subtype; @@ -2615,7 +2528,7 @@ void* sdla_register(sdlahw_iface_t* hw_iface, wandev_conf_t* conf, char* devname hwcard = hw->hwcard; hw_iface->setup = sdla_setup; - hw_iface->down = sdla_down; + hw_iface->hw_down = sdla_down; #if defined(CONFIG_PRODUCT_WANPIPE_GENERIC) hw_iface->load = sdla_load; #endif @@ -2717,6 +2630,7 @@ void* sdla_register(sdlahw_iface_t* hw_iface, wandev_conf_t* conf, char* devname case WANOPT_AFT108: case WANOPT_AFT300: case WANOPT_AFT_ANALOG: + case WANOPT_AFT_ISDN: case WANOPT_AFT_56K: hwcard->type = SDLA_AFT; hw_iface->set_bit = sdla_set_bit; @@ -2735,13 +2649,42 @@ void* sdla_register(sdlahw_iface_t* hw_iface, wandev_conf_t* conf, char* devname hw_iface->write_cpld = sdla_hw_write_cpld; switch(hw->hwcard->adptr_type){ - + case A101_ADPTR_1TE1: + case A101_ADPTR_2TE1: + if (hw->hwcard->adptr_subtype == AFT_SUBTYPE_NORMAL){ + hw_iface->fe_read = sdla_te1_read_fe; + hw_iface->fe_write = sdla_te1_write_fe; + }else{ + hw_iface->fe_read = sdla_shark_te1_read_fe; + hw_iface->fe_write = sdla_shark_te1_write_fe; + } + break; + case A104_ADPTR_4TE1: + case A108_ADPTR_8TE1: + hw_iface->fe_read = sdla_shark_te1_read_fe; + hw_iface->fe_write = sdla_shark_te1_write_fe; + break; + case AFT_ADPTR_56K: + hw_iface->fe_read = sdla_shark_56k_read_fe; + hw_iface->fe_write = sdla_shark_56k_write_fe; + break; + case A200_ADPTR_ANALOG: + case A400_ADPTR_ANALOG: + hw_iface->fe_read = sdla_shark_rm_read_fe; + hw_iface->fe_write = sdla_shark_rm_write_fe; + case AFT_ADPTR_ISDN: + DEBUG_EVENT("%s: Front-End interface functions are not defined!\n", + devname); + break; + } + switch(hw->hwcard->adptr_type){ case A101_ADPTR_1TE1: case A101_ADPTR_2TE1: case A104_ADPTR_4TE1: case A108_ADPTR_8TE1: case A200_ADPTR_ANALOG: case A400_ADPTR_ANALOG: + case AFT_ADPTR_ISDN: case AFT_ADPTR_56K: DEBUG_EVENT("%s: Found: %s card, CPU %c, PciSlot=%d, PciBus=%d, Port=%d\n", devname, @@ -2881,6 +2824,7 @@ static int sdla_register_check (wandev_conf_t* conf, char* devname) break; case WANOPT_AFT: + case WANOPT_AFT101: case WANOPT_AFT102: if (conf->auto_pci_cfg && sdla_adapter_cnt.aft101_adapters > 1){ DEBUG_EVENT( "%s: HW Auto PCI failed: Multiple AFT-101/102 cards found! \n" @@ -2931,6 +2875,7 @@ static int sdla_register_check (wandev_conf_t* conf, char* devname) } break; + case WANOPT_AFT_56K: if (conf->auto_pci_cfg && sdla_adapter_cnt.aft_56k_adapters > 1){ DEBUG_EVENT( "%s: HW Auto PCI failed: Multiple AFT-56K cards found! \n" @@ -2941,7 +2886,6 @@ static int sdla_register_check (wandev_conf_t* conf, char* devname) } break; - default: DEBUG_EVENT("%s: Unsupported Sangoma Card (0x%X) requested by user!\n", devname,conf->card_type); @@ -5616,104 +5560,30 @@ static sdlahw_t* sdla_find_adapter(wandev_conf_t* conf, char* devname) case WANOPT_AFT_ANALOG: case WANOPT_AFT_56K: if (conf->auto_pci_cfg){ - - if (hw->cpu_no == cpu_no && - conf->card_type == WANOPT_AFT && - hw->hwcard->cfg_type == WANOPT_AFT101) { - /* Remap the card type to standard - A104 Shark style. We are allowing - and old config file for A101/2-SH */ - conf->config_id = WANCONFIG_AFT_TE1; - conf->card_type = WANOPT_AFT104; - conf->fe_cfg.line_no=1; - goto adapter_found; - } - - /* Allow old A102 config for A102 SHARK */ - if (hw->cpu_no == cpu_no && - conf->card_type == WANOPT_AFT && - hw->hwcard->cfg_type == WANOPT_AFT102) { - /* Remap the card type to standard - A104 Shark style. We are allowing - and old config file for A101/2-SH */ - conf->config_id = WANCONFIG_AFT_TE1; - conf->card_type = WANOPT_AFT104; - if (cpu_no == SDLA_CPU_A) { - conf->fe_cfg.line_no=1; - } else { - conf->fe_cfg.line_no=2; - } - goto adapter_found; - } - - if (conf->card_type == WANOPT_S51X && - IS_56K_MEDIA(&conf->fe_cfg) && - hw->hwcard->cfg_type == WANOPT_AFT_56K) { - /* Remap the old 56K card type to standard - AFT 56K Shark style. We are allowing - and old config file for 56K */ - conf->card_type = WANOPT_AFT_56K; - conf->config_id = WANCONFIG_AFT_56K; - conf->fe_cfg.line_no=1; - goto adapter_found; - - } - if (hw->cpu_no == cpu_no && hw->hwcard->cfg_type == conf->card_type){ goto adapter_found; } }else{ - /* Allow old A101 config for A101 SHARK */ - if (conf->card_type == WANOPT_AFT && - hw->hwcard->slot_no == conf->PCI_slot_no && - hw->hwcard->bus_no == conf->pci_bus_no && - hw->hwcard->cfg_type == WANOPT_AFT101) { - /* Remap the card type to standard - A104 Shark style. We are allowing - and old config file for A101/2-SH */ - conf->config_id = WANCONFIG_AFT_TE1; - conf->card_type = WANOPT_AFT104; - conf->fe_cfg.line_no=1; - goto adapter_found; - - } - /* Allow old A102 config for A102 SHARK */ - if (conf->card_type == WANOPT_AFT && + /* Allow old A102 config for A102 SHARK */ + if (conf->card_type == WANOPT_AFT && hw->hwcard->slot_no == conf->PCI_slot_no && hw->hwcard->bus_no == conf->pci_bus_no && hw->hwcard->cfg_type == WANOPT_AFT102) { /* Remap the card type to standard A104 Shark style. We are allowing - and old config file for A101/2-SH */ - conf->config_id = WANCONFIG_AFT_TE1; + and old config file for A102-SH */ conf->card_type = WANOPT_AFT104; + conf->config_id = WANCONFIG_AFT_TE1; if (cpu_no == SDLA_CPU_A) { conf->fe_cfg.line_no=1; } else { conf->fe_cfg.line_no=2; } goto adapter_found; - } - - - - if (conf->card_type == WANOPT_S51X && - IS_56K_MEDIA(&conf->fe_cfg) && - hw->hwcard->slot_no == conf->PCI_slot_no && - hw->hwcard->bus_no == conf->pci_bus_no && - hw->hwcard->cfg_type == WANOPT_AFT_56K) { - /* Remap the old 56K card type to standard - AFT 56K Shark style. We are allowing - and old config file for 56K */ - conf->card_type = WANOPT_AFT_56K; - conf->config_id = WANCONFIG_AFT_56K; - conf->fe_cfg.line_no=1; - goto adapter_found; - } - + } if ((hw->hwcard->slot_no == conf->PCI_slot_no) && (hw->hwcard->bus_no == conf->pci_bus_no) && @@ -5744,7 +5614,7 @@ static sdlahw_t* sdla_find_adapter(wandev_conf_t* conf, char* devname) if ((hw->hwcard->slot_no == conf->PCI_slot_no) && (hw->hwcard->bus_no == conf->pci_bus_no)){ - + switch (hw->hwcard->cfg_type){ case WANOPT_AFT101: case WANOPT_AFT102: @@ -5776,7 +5646,6 @@ adapter_found: case A200_ADPTR_ANALOG: case A400_ADPTR_ANALOG: case AFT_ADPTR_56K: - conf->comm_port = 0; conf->fe_cfg.line_no = 0; break; @@ -5928,7 +5797,6 @@ adapter_found: case WANOPT_AFT300: case WANOPT_AFT_ANALOG: case WANOPT_AFT_56K: - DEBUG_EVENT( "%s: Error, %s card not found on bus #%d, slot #%d, cpu %c, line %d\n", devname, @@ -6109,7 +5977,7 @@ static int sdla_is_same_hwcard(void* phw1, void *phw2) */ #if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) static int -sdla_set_intrhand(void* phw, void (*isr_func)(void*), void* arg, int line_no) +sdla_set_intrhand(void* phw, wan_pci_ifunc_t *isr_func, void* arg, int line_no) { sdlahw_t* hw = (sdlahw_t*)phw; sdladev_t* adapter = NULL; @@ -6653,11 +6521,10 @@ static int sdla_pci_bridge_read_config_dword(void* phw, int reg, u32* value) WAN_ASSERT(hw == NULL); SDLA_MAGIC(hw); WAN_ASSERT(hw->hwcard == NULL); - - if (hw->hwcard->pci_bridge_dev == NULL){ - return 0; - } - + if (hw->hwcard->pci_bridge_dev == NULL){ + *value = 0xFFFFFFFF; + return 0; + } card = hw->hwcard; #if defined(__FreeBSD__) # if (__FreeBSD_version > 400000) @@ -6682,11 +6549,9 @@ static int sdla_pci_bridge_write_config_dword(void* phw, int reg, u32 value) WAN_ASSERT(hw == NULL); SDLA_MAGIC(hw); WAN_ASSERT(hw->hwcard == NULL); - - if (hw->hwcard->pci_bridge_dev == NULL){ + if (hw->hwcard->pci_bridge_dev == NULL){ return 0; - } - + } card = hw->hwcard; #if defined(__FreeBSD__) # if (__FreeBSD_version > 400000) @@ -6986,7 +6851,7 @@ static int sdla_hw_read_cpld(void *phw, u16 off, u8 *data) sdla_bus_read_1(hw, AFT_MCPU_INTERFACE, data); /* Restore the original address */ sdla_bus_write_2(hw, AFT_MCPU_INTERFACE_ADDR, org_off); - break; + break; case AFT_ADPTR_56K: off |= AFT56K_BIT_DEV_ADDR_CPLD; @@ -6994,7 +6859,6 @@ static int sdla_hw_read_cpld(void *phw, u16 off, u8 *data) sdla_bus_write_2(hw, AFT56K_MCPU_INTERFACE_ADDR, off); sdla_bus_read_1(hw, AFT56K_MCPU_INTERFACE, data); break; - default: DEBUG_EVENT("%s: ERROR: Invalid read access to cpld!\n", hw->devname); @@ -7076,6 +6940,9 @@ static int sdla_hw_write_cpld(void *phw, u16 off, u8 data) sdlahw_t* hw = (sdlahw_t*)phw; u16 org_off; + DEBUG_56K("%s: hw->hwcard->adptr_type: 0x%X\n", + hw->devname, hw->hwcard->adptr_type); + #if 1 if (hw->hwcard->adptr_subtype == AFT_SUBTYPE_NORMAL){ switch(hw->hwcard->adptr_type){ @@ -7103,7 +6970,7 @@ static int sdla_hw_write_cpld(void *phw, u16 off, u8 data) sdla_bus_write_2(hw, AFT_MCPU_INTERFACE_ADDR, org_off); break; default: - DEBUG_EVENT("%s: ERROR: Invalid write access to cpld!\n", + DEBUG_EVENT("%s: ERROR: (1)Invalid write access to cpld!\n", hw->devname); return -EINVAL; } @@ -7125,7 +6992,7 @@ static int sdla_hw_write_cpld(void *phw, u16 off, u8 data) sdla_bus_write_2(hw, AFT_MCPU_INTERFACE_ADDR, org_off); break; default: - DEBUG_EVENT("%s: ERROR: Invalid write access to cpld!\n", + DEBUG_EVENT("%s: ERROR: (2)Invalid write access to cpld!\n", hw->devname); return -EINVAL; } @@ -7148,7 +7015,7 @@ static int sdla_hw_write_cpld(void *phw, u16 off, u8 data) sdla_bus_write_2(hw, AFT_MCPU_INTERFACE_ADDR, org_off); break; default: - DEBUG_EVENT("%s: ERROR: Invalid write access to cpld!\n", + DEBUG_EVENT("%s: ERROR: (3)Invalid write access to cpld!\n", hw->devname); return -EINVAL; } @@ -7167,23 +7034,22 @@ static int sdla_hw_write_cpld(void *phw, u16 off, u8 data) sdla_bus_write_1(hw, AFT_MCPU_INTERFACE, data); /* Restore the original address */ sdla_bus_write_2(hw, AFT_MCPU_INTERFACE_ADDR, org_off); - break; + break; case AFT_ADPTR_56K: off |= AFT56K_BIT_DEV_ADDR_CPLD; sdla_bus_write_2(hw, AFT56K_MCPU_INTERFACE_ADDR, off); sdla_bus_write_1(hw, AFT56K_MCPU_INTERFACE, data); break; - default: - DEBUG_EVENT("%s: ERROR: Invalid write access to cpld!\n", + DEBUG_EVENT("%s: ERROR: (4)Invalid write access to cpld!\n", hw->devname); return -EINVAL; } break; } }else{ - DEBUG_EVENT("%s: ERROR: Invalid write access to cpld!\n", + DEBUG_EVENT("%s: ERROR: (5)Invalid write access to cpld!\n", hw->devname); return -EINVAL; } diff --git a/patches/kdrivers/src/net/sdladrv_fe.c b/patches/kdrivers/src/net/sdladrv_fe.c index adb5637..75d8ad2 100644 --- a/patches/kdrivers/src/net/sdladrv_fe.c +++ b/patches/kdrivers/src/net/sdladrv_fe.c @@ -1,835 +1,822 @@ -/***************************************************************************** -* sdladrv_fe.c SDLA FE interface support Module. -* -* -* Author: Alex Feldman -* -* Copyright: (c) 2006 Sangoma Technologies 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 of the License, or (at your option) any later version. -* ============================================================================ -* Aug 10, 2006 Alex Feldman Initial version -*****************************************************************************/ - -/***************************************************************************** - * Notes: - * ------ - ****************************************************************************/ - - -#define __SDLA_HW_LEVEL -#define __SDLADRV__ - -#define SDLADRV_NEW - -/*************************************************************************** -**** I N C L U D E F I L E S **** -***************************************************************************/ -#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) -# include -# include -# include -# include -# include -# include -# include -# include -# include -#elif defined(__LINUX__)||defined(__KERNEL__) -# define _K22X_MODULE_FIX_ -# include -# include -# include -# include -# include -# include /* SDLA firmware module definitions */ -# include /* SDLA PCI hardware definitions */ -# include -# include /* API definitions */ -#else -# error "Unsupported Operating System!" -#endif - -/*************************************************************************** -**** M A C R O S / D E F I N E S **** -***************************************************************************/ -#define BIT_DEV_ADDR_CLEAR 0x600 -#define BIT_DEV_ADDR_CPLD 0x200 -#define XILINX_MCPU_INTERFACE 0x44 -#define XILINX_MCPU_INTERFACE_ADDR 0x46 - -#undef NC_WARN_FIX -/*************************************************************************** -**** F U N C T I O N P R O T O T Y P E S **** -***************************************************************************/ -#ifdef NC_WARN_FIX -static int sdla_te1_write_fe(void* phw, ...); -static unsigned char sdla_te1_read_fe (void* phw, ...); -static int __sdla_shark_te1_write_fe(void *phw, ...); -static unsigned char __sdla_shark_te1_read_fe (void *phw, ...); -#endif - -#ifdef NC_WARN_FIX -static int sdla_shark_te1_write_fe(void *phw, ...); -static unsigned char sdla_shark_te1_read_fe (void *phw, ...); -#endif - -#ifdef NC_WARN_FIX -static int __sdla_shark_analog_write_fe (void* phw, ...); -static int sdla_shark_analog_write_fe (void* phw, ...); -#endif -static unsigned char __sdla_shark_analog_read_fe (void* phw, ...); -unsigned char sdla_shark_analog_read_fe (void* phw, ...); - -static int __sdla_shark_56k_write_fe(void *phw, ...); -int sdla_shark_56k_write_fe(void *phw, ...); -static u_int8_t __sdla_shark_56k_read_fe (void *phw, ...); -u_int8_t sdla_shark_56k_read_fe (void *phw, ...); - -extern int sdla_bus_write_1(void* phw, unsigned int offset, u8 value); -extern int sdla_bus_write_2(void* phw, unsigned int offset, u16 value); -extern int sdla_bus_write_4(void* phw, unsigned int offset, u32 value); -extern int sdla_bus_read_1(void* phw, unsigned int offset, u8* value); -extern int sdla_bus_read_2(void* phw, unsigned int offset, u16* value); -extern int sdla_bus_read_4(void* phw, unsigned int offset, u32* value); - -extern int sdla_hw_fe_test_and_set_bit(void *phw, int value); -extern int sdla_hw_fe_test_bit(void *phw, int value); -extern int sdla_hw_fe_clear_bit(void *phw, int value); -extern int sdla_hw_fe_set_bit(void *phw, int value); - -/*************************************************************************** -**** G L O B A L D A T A **** -***************************************************************************/ - -/*************************************************************************** -**** F U N C T I O N D E F I N I T I O N **** -***************************************************************************/ - - - -/*************************************************************************** - Front End T1/E1 interface for Normal cards -***************************************************************************/ -#ifdef NC_WARN_FIX -static int sdla_te1_write_fe(void* phw, ...) -{ - sdlahw_t* hw = (sdlahw_t*)phw; - va_list args; - u16 qaccess, off; - u8 value; -// u8 qaccess = card->wandev.state == WAN_CONNECTED ? 1 : 0; - - va_start(args, phw); - qaccess = (u16)va_arg(args, int); - off = (u16)va_arg(args, int); - value = (u8)va_arg(args, int); - va_end(args); - - off &= ~BIT_DEV_ADDR_CLEAR; - sdla_bus_write_2(hw, XILINX_MCPU_INTERFACE_ADDR, off); - /* AF: Sep 10, 2003 - * IMPORTANT - * This delays are required to avoid bridge optimization - * (combining two writes together) - */ - if (!qaccess){ - WP_DELAY(5); - } - sdla_bus_write_1(hw, XILINX_MCPU_INTERFACE, value); - if (!qaccess){ - WP_DELAY(5); - } - return 0; -} - - -/*============================================================================ - * Read TE1/56K Front end registers - */ -static unsigned char sdla_te1_read_fe (void* phw, ...) -{ - sdlahw_t* hw = (sdlahw_t*)phw; - va_list args; - u16 qaccess, off; - u8 tmp; -// u8 qaccess = card->wandev.state == WAN_CONNECTED ? 1 : 0; - - va_start(args, phw); - qaccess = (u16)va_arg(args, int); - off = (u16)va_arg(args, int); - va_end(args); - - off &= ~BIT_DEV_ADDR_CLEAR; - sdla_bus_write_2(hw, XILINX_MCPU_INTERFACE_ADDR, off); - sdla_bus_read_1(hw,XILINX_MCPU_INTERFACE, &tmp); - - if (!qaccess){ - WP_DELAY(5); - } - return tmp; -} -#endif - - -/*************************************************************************** - Front End T1/E1 interface for Shark subtype cards -***************************************************************************/ -#ifdef NC_WARN_FIX -static int __sdla_shark_te1_write_fe (void *phw, ...) -{ - sdlahw_t* hw = (sdlahw_t*)phw; - va_list args; - int org_off, qaccess, line_no, off, value; -// u8 qaccess = card->wandev.state == WAN_CONNECTED ? 1 : 0; - - va_start(args, phw); - qaccess = (int)va_arg(args, int); - line_no = (int)va_arg(args, int); - off = (int)va_arg(args, int); - value = (int)va_arg(args, int); - va_end(args); - - if (hw->hwcard->core_id == AFT_PMC_FE_CORE_ID){ - off &= ~AFT4_BIT_DEV_ADDR_CLEAR; - }else if (hw->hwcard->core_id == AFT_DS_FE_CORE_ID){ - if (off & 0x800) off |= 0x2000; - if (off & 0x1000) off |= 0x4000; - off &= ~AFT8_BIT_DEV_ADDR_CLEAR; - if (hw->hwcard->adptr_type == A101_ADPTR_2TE1 && line_no == 1){ - off |= AFT8_BIT_DEV_MAXIM_ADDR_CPLD; - } - } - - sdla_bus_read_2(hw, AFT_MCPU_INTERFACE_ADDR, (u16*)&org_off); - - sdla_bus_write_2(hw,AFT_MCPU_INTERFACE_ADDR, (u16)off); - - /* AF: Sep 10, 2003 - * IMPORTANT - * This delays are required to avoid bridge optimization - * (combining two writes together) - */ - if (!qaccess){ - WP_DELAY(5); - } - - sdla_bus_write_1(hw, AFT_MCPU_INTERFACE, (u8)value); - if (!qaccess){ - WP_DELAY(5); - } - - sdla_bus_write_2(hw, AFT_MCPU_INTERFACE_ADDR, org_off); - - if (!qaccess){ - WP_DELAY(5); - } - return 0; -} - -static int sdla_shark_te1_write_fe (void *phw, ...) -{ - sdlahw_t* hw = (sdlahw_t*)phw; - va_list args; - int qaccess, line_no, off, value; - - if (sdla_hw_fe_test_and_set_bit(hw,0)){ - if (WAN_NET_RATELIMIT()){ - DEBUG_EVENT( - "%s: %s:%d: Critical Error: Re-entry in FE!\n", - hw->devname, - __FUNCTION__,__LINE__); - } - return -EINVAL; - } - - va_start(args, phw); - qaccess = (int)va_arg(args, int); - line_no = (int)va_arg(args, int); - off = (int)va_arg(args, int); - value = (int)va_arg(args, int); - va_end(args); - - __sdla_shark_te1_write_fe(hw, qaccess, line_no, off, value); - - sdla_hw_fe_clear_bit(hw,0); - return 0; -} -#endif - -/*============================================================================ - * Read TE1/56K Front end registers - */ -#ifdef NC_WARN_FIX -static unsigned char __sdla_shark_te1_read_fe (void *phw, ...) -{ - sdlahw_t* hw = (sdlahw_t*)phw; - va_list args; - int org_off, qaccess, line_no, off, tmp; -// u8 qaccess = card->wandev.state == WAN_CONNECTED ? 1 : 0; - - va_start(args, phw); - qaccess = (int)va_arg(args, int); - line_no = (int)va_arg(args, int); - off = (int)va_arg(args, int); - va_end(args); - - if (hw->hwcard->core_id == AFT_PMC_FE_CORE_ID){ - off &= ~AFT4_BIT_DEV_ADDR_CLEAR; - }else if (hw->hwcard->core_id == AFT_DS_FE_CORE_ID){ - if (off & 0x800) off |= 0x2000; - if (off & 0x1000) off |= 0x4000; - off &= ~AFT8_BIT_DEV_ADDR_CLEAR; - if (hw->hwcard->adptr_type == A101_ADPTR_2TE1 && line_no == 1){ - off |= AFT8_BIT_DEV_MAXIM_ADDR_CPLD; - } - } - - sdla_bus_read_2(hw, AFT_MCPU_INTERFACE_ADDR, (u16*)&org_off); - - sdla_bus_write_2(hw, AFT_MCPU_INTERFACE_ADDR, (u16)off); - - sdla_bus_read_1(hw,AFT_MCPU_INTERFACE, (u8*)&tmp); - if (!qaccess){ - WP_DELAY(5); - } - - sdla_bus_write_2(hw, AFT_MCPU_INTERFACE_ADDR, (u16)org_off); - - if (!qaccess){ - WP_DELAY(5); - } - return tmp; -} - -static unsigned char sdla_shark_te1_read_fe (void *phw, ...) -{ - sdlahw_t* hw = (sdlahw_t*)phw; - va_list args; - int qaccess, line_no, off; - unsigned char tmp; - - if (sdla_hw_fe_test_and_set_bit(hw,0)){ - if (WAN_NET_RATELIMIT()){ - DEBUG_EVENT("%s: %s:%d: Critical Error: Re-entry in FE!\n", - hw->devname, __FUNCTION__,__LINE__); - } - return 0x00; - } - - va_start(args, phw); - qaccess = (int)va_arg(args, int); - line_no = (int)va_arg(args, int); - off = (int)va_arg(args, int); - va_end(args); - - tmp = __sdla_shark_te1_read_fe(hw, qaccess, line_no, off); - - sdla_hw_fe_clear_bit(hw,0); - return tmp; -} -#endif - - - -/*************************************************************************** - 56K Front End interface for Shark subtype cards -***************************************************************************/ - -/*============================================================================ - * Write 56k Front end registers - */ -static int __sdla_shark_56k_write_fe (void *phw, ...) -{ - sdlahw_t* hw = (sdlahw_t*)phw; - va_list args; - u_int16_t qaccess, line_no, off; - u_int8_t value; -// u8 qaccess = card->wandev.state == WAN_CONNECTED ? 1 : 0; - - va_start(args, phw); - qaccess = (u_int16_t)va_arg(args, int); - line_no = (u_int16_t)va_arg(args, int); - off = (u_int16_t)va_arg(args, int); - value = (u_int8_t)va_arg(args, int); - va_end(args); - - off &= ~AFT8_BIT_DEV_ADDR_CLEAR; - - sdla_bus_write_2(hw,0x46, (u16)off); - - sdla_bus_write_2(hw,0x44, (u16)value); - - if (!qaccess){ - WP_DELAY(5); - } - - return 0; -} - -int sdla_shark_56k_write_fe (void *phw, ...) -{ - sdlahw_t* hw = (sdlahw_t*)phw; - va_list args; - u_int16_t qaccess, line_no, off; - u_int8_t value; - - if (sdla_hw_fe_test_and_set_bit(hw,0)){ - if (WAN_NET_RATELIMIT()){ - DEBUG_EVENT( - "%s: %s:%d: Critical Error: Re-entry in FE!\n", - hw->devname, - __FUNCTION__,__LINE__); - } - return -EINVAL; - } - - va_start(args, phw); - qaccess = (u_int16_t)va_arg(args, int); - line_no = (u_int16_t)va_arg(args, int); - off = (u_int16_t)va_arg(args, int); - value = (u_int8_t)va_arg(args, int); - va_end(args); - - __sdla_shark_56k_write_fe(hw, qaccess, line_no, off, value); - - sdla_hw_fe_clear_bit(hw,0); - return 0; -} - -/*============================================================================ - * Read 56k Front end registers - */ -static u_int8_t __sdla_shark_56k_read_fe (void *phw, ...) -{ - sdlahw_t* hw = (sdlahw_t*)phw; - va_list args; - u_int16_t qaccess, line_no, off; - u_int32_t tmp; -// u8 qaccess = card->wandev.state == WAN_CONNECTED ? 1 : 0; - - va_start(args, phw); - qaccess = (u_int16_t)va_arg(args, int); - line_no = (u_int16_t)va_arg(args, int); - off = (u_int8_t)va_arg(args, int); - va_end(args); - - off &= ~AFT8_BIT_DEV_ADDR_CLEAR; - - sdla_bus_write_2(hw,0x46, (u16)off); - - sdla_bus_read_4(hw,0x44, &tmp); - - if (!qaccess){ - WP_DELAY(5); - } - - return (u_int8_t)tmp; -} - -u_int8_t sdla_shark_56k_read_fe (void *phw, ...) -{ - sdlahw_t* hw = (sdlahw_t*)phw; - va_list args; - u_int16_t qaccess, line_no, off; - u_int8_t tmp; - - if (sdla_hw_fe_test_and_set_bit(hw,0)){ - if (WAN_NET_RATELIMIT()){ - DEBUG_EVENT("%s: %s:%d: Critical Error: Re-entry in FE!\n", - hw->devname, __FUNCTION__,__LINE__); - } - return 0x00; - } - - va_start(args, phw); - qaccess = (u_int16_t)va_arg(args, int); - line_no = (u_int16_t)va_arg(args, int); - off = (u_int16_t)va_arg(args, int); - va_end(args); - - tmp = __sdla_shark_56k_read_fe(hw, qaccess, line_no, off); - - sdla_hw_fe_clear_bit(hw,0); - return tmp; -} - - - - -/*************************************************************************** - Front End FXS/FXO interface for Shark subtype cards -***************************************************************************/ -/*============================================================================ - * Read TE1/56K Front end registers - */ -#ifdef NC_WARN_FIX -int __sdla_shark_analog_write_fe (void* phw, ...) -{ - sdlahw_t *hw = (sdlahw_t*)phw; - va_list args; - int mod_no, type, chain; - int reg, value; - u32 data = 0; - unsigned char cs = 0x00, ctrl_byte = 0x00; - int i; - - va_start(args, phw); - mod_no = va_arg(args, int); - type = va_arg(args, int); - chain = va_arg(args, int); - reg = va_arg(args, int); - value = va_arg(args, int); - va_end(args); -#if 0 - if (!wan_test_bit(mod_no, card->fe.fe_param.remora.module_map)){ - DEBUG_EVENT("%s: %s:%d: Internal Error: Module %d\n", - card->devname, __FUNCTION__,__LINE__,mod_no); - return -EINVAL; - } -#endif - DEBUG_RM("%s:%d: Module %d: Write Remora Front-End code (reg %d, value %02X)!\n", - __FUNCTION__,__LINE__, - mod_no, reg, (u8)value); - - /* bit 0-7: data byte */ - data = value & 0xFF; - if (type == MOD_TYPE_FXO){ - - /* bit 8-15: register number */ - data |= (reg & 0xFF) << 8; - - /* bit 16-23: chip select byte - ** bit 16 - ** - ** - ** */ - cs = 0x20; - cs |= MOD_SPI_CS_FXO_WRITE; - if (mod_no % 2 == 0){ - /* Select second chip in a chain */ - cs |= MOD_SPI_CS_FXO_CHIP_1; - } - data |= (cs & 0xFF) << 16; - - /* bit 24-31: ctrl byte - ** bit 24 - ** - ** - ** */ - ctrl_byte = mod_no / 2; -#if !defined(SPI2STEP) - if (hw->hwcard->core_rev > 3){ - ctrl_byte |= MOD_SPI_CTRL_START; - }else{ - ctrl_byte |= MOD_SPI_CTRL_V3_START; - } -#endif - ctrl_byte |= MOD_SPI_CTRL_CHAIN; /* always chain */ - data |= ctrl_byte << 24; - - }else if (type == MOD_TYPE_FXS){ - - /* bit 8-15: register byte */ - reg = reg & 0x7F; - reg |= MOD_SPI_ADDR_FXS_WRITE; - data |= (reg & 0xFF) << 8; - - /* bit 16-23: chip select byte - ** bit 16 - ** - ** - ** */ - if (mod_no % 2){ - /* Select first chip in a chain */ - cs = MOD_SPI_CS_FXS_CHIP_0; - }else{ - /* Select second chip in a chain */ - cs = MOD_SPI_CS_FXS_CHIP_1; - } - data |= cs << 16; - - /* bit 24-31: ctrl byte - ** bit 24 - ** - ** - ** */ - ctrl_byte = mod_no / 2; -#if !defined(SPI2STEP) - if (hw->hwcard->core_rev > 3){ - ctrl_byte |= MOD_SPI_CTRL_START; - }else{ - ctrl_byte |= MOD_SPI_CTRL_V3_START; - } -#endif - ctrl_byte |= MOD_SPI_CTRL_FXS; - if (chain){ - ctrl_byte |= MOD_SPI_CTRL_CHAIN; - } - data |= ctrl_byte << 24; - - }else{ - DEBUG_EVENT("%s: Module %d: Unsupported module type %d!\n", - hw->devname, mod_no, type); - return -EINVAL; - } - - sdla_bus_write_4(hw, SPI_INTERFACE_REG, data); -#if defined(SPI2STEP) - WP_DELAY(1); - if (hw->hwcard->core_rev > 3){ - data |= MOD_SPI_START; - }else{ - data |= MOD_SPI_V3_START; - } - sdla_bus_write_4(hw, SPI_INTERFACE_REG, data); -#endif -#if 0 - DEBUG_EVENT("%s: %s: Module %d - Execute SPI command %08X\n", - card->fe.name, - __FUNCTION__, - mod_no, - data); -#endif - - for (i=0;i<10;i++){ - WP_DELAY(10); - sdla_bus_read_4(hw, SPI_INTERFACE_REG, &data); - - if (data & MOD_SPI_BUSY){ - continue; - } - } - - if (data & MOD_SPI_BUSY) { - DEBUG_EVENT("%s: Module %d: Critical Error (%s:%d)!\n", - hw->devname, mod_no, - __FUNCTION__,__LINE__); - return -EINVAL; - } - return 0; -} - -static int sdla_shark_analog_write_fe (void* phw, ...) -{ - sdlahw_t *hw = (sdlahw_t*)phw; - va_list args; - int mod_no, type, chain, reg, value; -#if defined(WAN_DEBUG_FE) - char *fname; - int fline; -#endif - - va_start(args, phw); - mod_no = va_arg(args, int); - type = va_arg(args, int); - chain = va_arg(args, int); - reg = va_arg(args, int); - value = va_arg(args, int); -#if defined(WAN_DEBUG_FE) - fname = va_arg(args, char*); - fline = va_arg(args, int); -#endif - va_end(args); - - if (sdla_hw_fe_test_and_set_bit(hw,0)){ -#if defined(WAN_DEBUG_FE) - DEBUG_EVENT("%s: %s:%d: Critical Error: Re-entry in FE (%s:%d)!\n", - hw->devname, __FUNCTION__,__LINE__, fname, fline); -#else - DEBUG_EVENT("%s: %s:%d: Critical Error: Re-entry in FE!\n", - hw->devname, __FUNCTION__,__LINE__); -#endif - return -EINVAL; - } - - __sdla_shark_analog_write_fe(hw, mod_no, type, chain, reg, value); - - sdla_hw_fe_clear_bit(hw,0); - return 0; -} -#endif - -static unsigned char __sdla_shark_analog_read_fe (void* phw, ...) -{ - sdlahw_t *hw = (sdlahw_t*)phw; - va_list args; - int mod_no, type, chain, reg; - u32 data = 0; - unsigned char cs = 0x00, ctrl_byte = 0x00; - int i; - - va_start(args, phw); - mod_no = va_arg(args, int); - type = va_arg(args, int); - chain = va_arg(args, int); - reg = va_arg(args, int); - va_end(args); -#if 0 - if (!wan_test_bit(mod_no, card->fe.fe_param.remora.module_map)){ - DEBUG_EVENT("%s: %s:%d: Internal Error: Module %d\n", - card->devname, __FUNCTION__,__LINE__,mod_no); - return 0x00; - } -#endif - DEBUG_RM("%s:%d: %s: Module %d: Read Remora Front-End code (reg %d)!\n", - __FUNCTION__,__LINE__, - hw->devname, mod_no, reg); - - /* bit 0-7: data byte */ - data = 0x00; - if (type == MOD_TYPE_FXO){ - - /* bit 8-15: register byte */ - data |= (reg & 0xFF) << 8; - - /* bit 16-23: chip select byte - ** bit 16 - ** - ** - ** */ - cs = 0x20; - cs |= MOD_SPI_CS_FXO_READ; - if (mod_no % 2 == 0){ - /* Select second chip in a chain */ - cs |= MOD_SPI_CS_FXO_CHIP_1; - } - data |= (cs & 0xFF) << 16; - - /* bit 24-31: ctrl byte - ** bit 24 - ** - ** - ** */ - ctrl_byte = mod_no / 2; -#if !defined(SPI2STEP) - if (hw->hwcard->core_rev > 3){ - ctrl_byte |= MOD_SPI_CTRL_START; - }else{ - ctrl_byte |= MOD_SPI_CTRL_V3_START; - } -#endif - ctrl_byte |= MOD_SPI_CTRL_CHAIN; /* always chain */ - data |= ctrl_byte << 24; - - }else if (type == MOD_TYPE_FXS){ - - /* bit 8-15: register byte */ - reg = reg & 0x7F; - reg |= MOD_SPI_ADDR_FXS_READ; - data |= (reg & 0xFF) << 8; - - /* bit 16-23: chip select byte - ** bit 16 - ** - ** - ** */ - if (mod_no % 2){ - /* Select first chip in a chain */ - cs = MOD_SPI_CS_FXS_CHIP_0; - }else{ - /* Select second chip in a chain */ - cs = MOD_SPI_CS_FXS_CHIP_1; - } - data |= cs << 16; - - /* bit 24-31: ctrl byte - ** bit 24 - ** - ** - ** */ - ctrl_byte = mod_no / 2; -#if !defined(SPI2STEP) - if (hw->hwcard->core_rev > 3){ - ctrl_byte |= MOD_SPI_CTRL_START; - }else{ - ctrl_byte |= MOD_SPI_CTRL_V3_START; - } -#endif - ctrl_byte |= MOD_SPI_CTRL_FXS; - if (chain){ - ctrl_byte |= MOD_SPI_CTRL_CHAIN; - } - data |= ctrl_byte << 24; - - }else{ - DEBUG_EVENT("%s: Module %d: Unsupported module type %d!\n", - hw->devname, mod_no, type); - return -EINVAL; - } - - sdla_bus_write_4(hw, SPI_INTERFACE_REG, data); -#if defined(SPI2STEP) - WP_DELAY(1); - if (hw->hwcard->core_rev > 3){ - data |= MOD_SPI_START; - }else{ - data |= MOD_SPI_V3_START; - } - sdla_bus_write_4(hw, SPI_INTERFACE_REG, data); -#endif -#if 0 - DEBUG_EVENT("%s: %s: Module %d - Execute SPI command %08X\n", - hw->devname, - __FUNCTION__, - mod_no, - data); -#endif - for (i=0;i<10;i++){ - WP_DELAY(10); - sdla_bus_read_4(hw, SPI_INTERFACE_REG, &data); - if (data & MOD_SPI_BUSY) { - continue; - } - } - - if (data & MOD_SPI_BUSY){ - DEBUG_EVENT("%s: Module %d: Critical Error (%s:%d)!\n", - hw->devname, mod_no, - __FUNCTION__,__LINE__); - return 0xFF; - } - - return (u8)(data & 0xFF); -} - -unsigned char sdla_shark_analog_read_fe (void* phw, ...) -{ - sdlahw_t *hw = (sdlahw_t*)phw; - va_list args; - int mod_no, type, chain, reg; - unsigned char data = 0; -#if defined(WAN_DEBUG_FE) - char *fname; - int fline; -#endif - - va_start(args, phw); - mod_no = va_arg(args, int); - type = va_arg(args, int); - chain = va_arg(args, int); - reg = va_arg(args, int); -#if defined(WAN_DEBUG_FE) - fname = va_arg(args, char*); - fline = va_arg(args, int); -#endif - va_end(args); - - if (sdla_hw_fe_test_and_set_bit(hw,0)){ -#if defined(WAN_DEBUG_FE) - DEBUG_EVENT("%s: %s:%d: Critical Error: Re-entry in FE (%s:%d)!\n", - hw->devname, __FUNCTION__,__LINE__,fname,fline); -#else - DEBUG_EVENT("%s: %s:%d: Critical Error: Re-entry in FE!\n", - hw->devname, __FUNCTION__,__LINE__); -#endif - return 0x00; - } - data = __sdla_shark_analog_read_fe (hw, mod_no, type, chain, reg); - - sdla_hw_fe_clear_bit(hw,0); - return data; -} +/***************************************************************************** +* sdladrv_fe.c SDLA FE interface support Module. +* +* +* Author: Alex Feldman +* +* Copyright: (c) 2006 Sangoma Technologies 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 of the License, or (at your option) any later version. +* ============================================================================ +* Aug 10, 2006 Alex Feldman Initial version +*****************************************************************************/ + +/***************************************************************************** + * Notes: + * ------ + ****************************************************************************/ + + +#define __SDLA_HW_LEVEL +#define __SDLADRV__ + +#define SDLADRV_NEW + +/*************************************************************************** +**** I N C L U D E F I L E S **** +***************************************************************************/ +#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) +# include +# include +# include +# include +# include +# include +# include +# include +# include +#elif defined(__LINUX__)||defined(__KERNEL__) +# define _K22X_MODULE_FIX_ +# include +# include +# include +# include +# include +# include /* SDLA firmware module definitions */ +# include /* SDLA PCI hardware definitions */ +# include +# include /* API definitions */ +#else +# error "Unsupported Operating System!" +#endif + +/*************************************************************************** +**** M A C R O S / D E F I N E S **** +***************************************************************************/ +#define BIT_DEV_ADDR_CLEAR 0x600 +#define BIT_DEV_ADDR_CPLD 0x200 +#define XILINX_MCPU_INTERFACE 0x44 +#define XILINX_MCPU_INTERFACE_ADDR 0x46 + +/*************************************************************************** +**** F U N C T I O N P R O T O T Y P E S **** +***************************************************************************/ +int sdla_te1_write_fe(void* phw, ...); +u_int8_t sdla_te1_read_fe (void* phw, ...); + +static int __sdla_shark_te1_write_fe(void *phw, ...); +int sdla_shark_te1_write_fe(void *phw, ...); +static u_int8_t __sdla_shark_te1_read_fe (void *phw, ...); +u_int8_t sdla_shark_te1_read_fe (void *phw, ...); + +static int __sdla_shark_rm_write_fe (void* phw, ...); +int sdla_shark_rm_write_fe (void* phw, ...); +static u_int8_t __sdla_shark_rm_read_fe (void* phw, ...); +u_int8_t sdla_shark_rm_read_fe (void* phw, ...); + +static int __sdla_shark_56k_write_fe(void *phw, ...); +int sdla_shark_56k_write_fe(void *phw, ...); +static u_int8_t __sdla_shark_56k_read_fe (void *phw, ...); +u_int8_t sdla_shark_56k_read_fe (void *phw, ...); + +extern int sdla_bus_write_1(void* phw, unsigned int offset, u8 value); +extern int sdla_bus_write_2(void* phw, unsigned int offset, u16 value); +extern int sdla_bus_write_4(void* phw, unsigned int offset, u32 value); +extern int sdla_bus_read_1(void* phw, unsigned int offset, u8* value); +extern int sdla_bus_read_2(void* phw, unsigned int offset, u16* value); +extern int sdla_bus_read_4(void* phw, unsigned int offset, u32* value); + +extern int sdla_hw_fe_test_and_set_bit(void *phw, int value); +extern int sdla_hw_fe_test_bit(void *phw, int value); +extern int sdla_hw_fe_clear_bit(void *phw, int value); +extern int sdla_hw_fe_set_bit(void *phw, int value); + +/*************************************************************************** +**** G L O B A L D A T A **** +***************************************************************************/ + +/*************************************************************************** +**** F U N C T I O N D E F I N I T I O N **** +***************************************************************************/ + + + +/*************************************************************************** + Front End T1/E1 interface for Normal cards +***************************************************************************/ +int sdla_te1_write_fe(void* phw, ...) +{ + sdlahw_t* hw = (sdlahw_t*)phw; + va_list args; + u16 qaccess, off, line_no; + u8 value; +// u8 qaccess = card->wandev.state == WAN_CONNECTED ? 1 : 0; + + va_start(args, phw); + qaccess = (u16)va_arg(args, int); + line_no = (u16)va_arg(args, int); + off = (u16)va_arg(args, int); + value = (u8)va_arg(args, int); + va_end(args); + + off &= ~BIT_DEV_ADDR_CLEAR; + sdla_bus_write_2(hw, XILINX_MCPU_INTERFACE_ADDR, off); + /* AF: Sep 10, 2003 + * IMPORTANT + * This delays are required to avoid bridge optimization + * (combining two writes together) + */ + if (!qaccess){ + WP_DELAY(5); + } + sdla_bus_write_1(hw, XILINX_MCPU_INTERFACE, value); + if (!qaccess){ + WP_DELAY(5); + } + return 0; +} + + +/*============================================================================ + * Read TE1/56K Front end registers + */ +u_int8_t sdla_te1_read_fe (void* phw, ...) +{ + sdlahw_t* hw = (sdlahw_t*)phw; + va_list args; + u_int16_t qaccess, line_no, off; + u_int8_t tmp; +// u8 qaccess = card->wandev.state == WAN_CONNECTED ? 1 : 0; + + va_start(args, phw); + qaccess = (u_int16_t)va_arg(args, int); + line_no = (u_int16_t)va_arg(args, int); + off = (u_int8_t)va_arg(args, int); + va_end(args); + + off &= ~BIT_DEV_ADDR_CLEAR; + sdla_bus_write_2(hw, XILINX_MCPU_INTERFACE_ADDR, off); + sdla_bus_read_1(hw,XILINX_MCPU_INTERFACE, &tmp); + + if (!qaccess){ + WP_DELAY(5); + } + return tmp; +} + +/*************************************************************************** + Front End T1/E1 interface for Shark subtype cards +***************************************************************************/ +static int __sdla_shark_te1_write_fe (void *phw, ...) +{ + sdlahw_t* hw = (sdlahw_t*)phw; + va_list args; + u_int16_t org_off, qaccess, line_no, off; + u_int8_t value; +// u8 qaccess = card->wandev.state == WAN_CONNECTED ? 1 : 0; + + va_start(args, phw); + qaccess = (u_int16_t)va_arg(args, int); + line_no = (u_int16_t)va_arg(args, int); + off = (u_int16_t)va_arg(args, int); + value = (u_int8_t)va_arg(args, int); + va_end(args); + + if (hw->hwcard->core_id == AFT_PMC_FE_CORE_ID){ + off &= ~AFT4_BIT_DEV_ADDR_CLEAR; + }else if (hw->hwcard->core_id == AFT_DS_FE_CORE_ID){ + if (off & 0x800) off |= 0x2000; + if (off & 0x1000) off |= 0x4000; + off &= ~AFT8_BIT_DEV_ADDR_CLEAR; + if (hw->hwcard->adptr_type == A101_ADPTR_2TE1 && line_no == 1){ + off |= AFT8_BIT_DEV_MAXIM_ADDR_CPLD; + } + } + + sdla_bus_read_2(hw, AFT_MCPU_INTERFACE_ADDR, (u16*)&org_off); + + sdla_bus_write_2(hw,AFT_MCPU_INTERFACE_ADDR, (u16)off); + + /* AF: Sep 10, 2003 + * IMPORTANT + * This delays are required to avoid bridge optimization + * (combining two writes together) + */ + if (!qaccess){ + WP_DELAY(5); + } + + sdla_bus_write_1(hw, AFT_MCPU_INTERFACE, (u8)value); + if (!qaccess){ + WP_DELAY(5); + } + + sdla_bus_write_2(hw, AFT_MCPU_INTERFACE_ADDR, org_off); + + if (!qaccess){ + WP_DELAY(5); + } + return 0; +} + +int sdla_shark_te1_write_fe (void *phw, ...) +{ + sdlahw_t* hw = (sdlahw_t*)phw; + va_list args; + u_int16_t qaccess, line_no, off; + u_int8_t value; + + if (sdla_hw_fe_test_and_set_bit(hw,0)){ + if (WAN_NET_RATELIMIT()){ + DEBUG_EVENT( + "%s: %s:%d: Critical Error: Re-entry in FE!\n", + hw->devname, + __FUNCTION__,__LINE__); + } + return -EINVAL; + } + + va_start(args, phw); + qaccess = (u_int16_t)va_arg(args, int); + line_no = (u_int16_t)va_arg(args, int); + off = (u_int16_t)va_arg(args, int); + value = (u_int8_t)va_arg(args, int); + va_end(args); + + __sdla_shark_te1_write_fe(hw, qaccess, line_no, off, value); + + sdla_hw_fe_clear_bit(hw,0); + return 0; +} + +/*============================================================================ + * Read TE1 Front end registers + */ +static u_int8_t __sdla_shark_te1_read_fe (void *phw, ...) +{ + sdlahw_t* hw = (sdlahw_t*)phw; + va_list args; + u_int16_t org_off, qaccess, line_no, off; + u_int8_t tmp; +// u8 qaccess = card->wandev.state == WAN_CONNECTED ? 1 : 0; + + va_start(args, phw); + qaccess = (u_int16_t)va_arg(args, int); + line_no = (u_int16_t)va_arg(args, int); + off = (u_int8_t)va_arg(args, int); + va_end(args); + + if (hw->hwcard->core_id == AFT_PMC_FE_CORE_ID){ + off &= ~AFT4_BIT_DEV_ADDR_CLEAR; + }else if (hw->hwcard->core_id == AFT_DS_FE_CORE_ID){ + if (off & 0x800) off |= 0x2000; + if (off & 0x1000) off |= 0x4000; + off &= ~AFT8_BIT_DEV_ADDR_CLEAR; + if (hw->hwcard->adptr_type == A101_ADPTR_2TE1 && line_no == 1){ + off |= AFT8_BIT_DEV_MAXIM_ADDR_CPLD; + } + } + + sdla_bus_read_2(hw, AFT_MCPU_INTERFACE_ADDR, (u16*)&org_off); + + sdla_bus_write_2(hw, AFT_MCPU_INTERFACE_ADDR, (u16)off); + + sdla_bus_read_1(hw,AFT_MCPU_INTERFACE, (u8*)&tmp); + if (!qaccess){ + WP_DELAY(5); + } + + sdla_bus_write_2(hw, AFT_MCPU_INTERFACE_ADDR, (u16)org_off); + + if (!qaccess){ + WP_DELAY(5); + } + return tmp; +} + +u_int8_t sdla_shark_te1_read_fe (void *phw, ...) +{ + sdlahw_t* hw = (sdlahw_t*)phw; + va_list args; + u_int16_t qaccess, line_no, off; + u_int8_t tmp; + + if (sdla_hw_fe_test_and_set_bit(hw,0)){ + if (WAN_NET_RATELIMIT()){ + DEBUG_EVENT("%s: %s:%d: Critical Error: Re-entry in FE!\n", + hw->devname, __FUNCTION__,__LINE__); + } + return 0x00; + } + + va_start(args, phw); + qaccess = (u_int16_t)va_arg(args, int); + line_no = (u_int16_t)va_arg(args, int); + off = (u_int16_t)va_arg(args, int); + va_end(args); + + tmp = __sdla_shark_te1_read_fe(hw, qaccess, line_no, off); + + sdla_hw_fe_clear_bit(hw,0); + return tmp; +} + +/*************************************************************************** + 56K Front End interface for Shark subtype cards +***************************************************************************/ + +/*============================================================================ + * Write 56k Front end registers + */ +static int __sdla_shark_56k_write_fe (void *phw, ...) +{ + sdlahw_t* hw = (sdlahw_t*)phw; + va_list args; + u_int16_t qaccess, line_no, off; + u_int8_t value; +// u8 qaccess = card->wandev.state == WAN_CONNECTED ? 1 : 0; + + va_start(args, phw); + qaccess = (u_int16_t)va_arg(args, int); + line_no = (u_int16_t)va_arg(args, int); + off = (u_int16_t)va_arg(args, int); + value = (u_int8_t)va_arg(args, int); + va_end(args); + + off &= ~AFT8_BIT_DEV_ADDR_CLEAR; + + sdla_bus_write_2(hw,0x46, (u16)off); + + sdla_bus_write_2(hw,0x44, (u16)value); + + if (!qaccess){ + WP_DELAY(5); + } + + return 0; +} + +int sdla_shark_56k_write_fe (void *phw, ...) +{ + sdlahw_t* hw = (sdlahw_t*)phw; + va_list args; + u_int16_t qaccess, line_no, off; + u_int8_t value; + + if (sdla_hw_fe_test_and_set_bit(hw,0)){ + if (WAN_NET_RATELIMIT()){ + DEBUG_EVENT( + "%s: %s:%d: Critical Error: Re-entry in FE!\n", + hw->devname, + __FUNCTION__,__LINE__); + } + return -EINVAL; + } + + va_start(args, phw); + qaccess = (u_int16_t)va_arg(args, int); + line_no = (u_int16_t)va_arg(args, int); + off = (u_int16_t)va_arg(args, int); + value = (u_int8_t)va_arg(args, int); + va_end(args); + + __sdla_shark_56k_write_fe(hw, qaccess, line_no, off, value); + + sdla_hw_fe_clear_bit(hw,0); + return 0; +} + +/*============================================================================ + * Read 56k Front end registers + */ +static u_int8_t __sdla_shark_56k_read_fe (void *phw, ...) +{ + sdlahw_t* hw = (sdlahw_t*)phw; + va_list args; + u_int16_t qaccess, line_no, off; + u_int32_t tmp; +// u8 qaccess = card->wandev.state == WAN_CONNECTED ? 1 : 0; + + va_start(args, phw); + qaccess = (u_int16_t)va_arg(args, int); + line_no = (u_int16_t)va_arg(args, int); + off = (u_int8_t)va_arg(args, int); + va_end(args); + + off &= ~AFT8_BIT_DEV_ADDR_CLEAR; + + sdla_bus_write_2(hw,0x46, (u16)off); + + sdla_bus_read_4(hw,0x44, &tmp); + + if (!qaccess){ + WP_DELAY(5); + } + + return (u_int8_t)tmp; +} + +u_int8_t sdla_shark_56k_read_fe (void *phw, ...) +{ + sdlahw_t* hw = (sdlahw_t*)phw; + va_list args; + u_int16_t qaccess, line_no, off; + u_int8_t tmp; + + if (sdla_hw_fe_test_and_set_bit(hw,0)){ + if (WAN_NET_RATELIMIT()){ + DEBUG_EVENT("%s: %s:%d: Critical Error: Re-entry in FE!\n", + hw->devname, __FUNCTION__,__LINE__); + } + return 0x00; + } + + va_start(args, phw); + qaccess = (u_int16_t)va_arg(args, int); + line_no = (u_int16_t)va_arg(args, int); + off = (u_int16_t)va_arg(args, int); + va_end(args); + + tmp = __sdla_shark_56k_read_fe(hw, qaccess, line_no, off); + + sdla_hw_fe_clear_bit(hw,0); + return tmp; +} + + +/*************************************************************************** + Front End FXS/FXO interface for Shark subtype cards +***************************************************************************/ +/*============================================================================ + * Read TE1/56K Front end registers + */ +static int __sdla_shark_rm_write_fe (void* phw, ...) +{ + sdlahw_t *hw = (sdlahw_t*)phw; + va_list args; + int mod_no, type, chain; + int reg, value; + u32 data = 0; + unsigned char cs = 0x00, ctrl_byte = 0x00; + int i; + + va_start(args, phw); + mod_no = va_arg(args, int); + type = va_arg(args, int); + chain = va_arg(args, int); + reg = va_arg(args, int); + value = va_arg(args, int); + va_end(args); +#if 0 + if (!wan_test_bit(mod_no, card->fe.fe_param.remora.module_map)){ + DEBUG_EVENT("%s: %s:%d: Internal Error: Module %d\n", + card->devname, __FUNCTION__,__LINE__,mod_no); + return -EINVAL; + } +#endif + DEBUG_RM("%s:%d: Module %d: Write RM FE code (reg %d, value %02X)!\n", + __FUNCTION__,__LINE__, + /*FIXME: hw->devname,*/mod_no, reg, (u8)value); + + /* bit 0-7: data byte */ + data = value & 0xFF; + if (type == MOD_TYPE_FXO){ + + /* bit 8-15: register number */ + data |= (reg & 0xFF) << 8; + + /* bit 16-23: chip select byte + ** bit 16 + ** + ** + ** */ + cs = 0x20; + cs |= MOD_SPI_CS_FXO_WRITE; + if (mod_no % 2 == 0){ + /* Select second chip in a chain */ + cs |= MOD_SPI_CS_FXO_CHIP_1; + } + data |= (cs & 0xFF) << 16; + + /* bit 24-31: ctrl byte + ** bit 24 + ** + ** + ** */ + ctrl_byte = mod_no / 2; +#if !defined(SPI2STEP) + if (hw->hwcard->core_rev > 3){ + ctrl_byte |= MOD_SPI_CTRL_START; + }else{ + ctrl_byte |= MOD_SPI_CTRL_V3_START; + } +#endif + ctrl_byte |= MOD_SPI_CTRL_CHAIN; /* always chain */ + data |= ctrl_byte << 24; + + }else if (type == MOD_TYPE_FXS){ + + /* bit 8-15: register byte */ + reg = reg & 0x7F; + reg |= MOD_SPI_ADDR_FXS_WRITE; + data |= (reg & 0xFF) << 8; + + /* bit 16-23: chip select byte + ** bit 16 + ** + ** + ** */ + if (mod_no % 2){ + /* Select first chip in a chain */ + cs = MOD_SPI_CS_FXS_CHIP_0; + }else{ + /* Select second chip in a chain */ + cs = MOD_SPI_CS_FXS_CHIP_1; + } + data |= cs << 16; + + /* bit 24-31: ctrl byte + ** bit 24 + ** + ** + ** */ + ctrl_byte = mod_no / 2; +#if !defined(SPI2STEP) + if (hw->hwcard->core_rev > 3){ + ctrl_byte |= MOD_SPI_CTRL_START; + }else{ + ctrl_byte |= MOD_SPI_CTRL_V3_START; + } +#endif + ctrl_byte |= MOD_SPI_CTRL_FXS; + if (chain){ + ctrl_byte |= MOD_SPI_CTRL_CHAIN; + } + data |= ctrl_byte << 24; + + }else{ + DEBUG_EVENT("%s: Module %d: Unsupported module type %d!\n", + hw->devname, mod_no, type); + return -EINVAL; + } + + sdla_bus_write_4(hw, SPI_INTERFACE_REG, data); +#if defined(SPI2STEP) + WP_DELAY(1); + if (hw->hwcard->core_rev > 3){ + data |= MOD_SPI_START; + }else{ + data |= MOD_SPI_V3_START; + } + sdla_bus_write_4(hw, SPI_INTERFACE_REG, data); +#endif +#if 0 + DEBUG_EVENT("%s: %s: Module %d - Execute SPI command %08X\n", + card->fe.name, + __FUNCTION__, + mod_no, + data); +#endif + + for (i=0;i<10;i++){ + WP_DELAY(10); + sdla_bus_read_4(hw, SPI_INTERFACE_REG, &data); + + if (data & MOD_SPI_BUSY){ + continue; + } + } + + if (data & MOD_SPI_BUSY) { + DEBUG_EVENT("%s: Module %d: Critical Error (%s:%d)!\n", + hw->devname, mod_no, + __FUNCTION__,__LINE__); + return -EINVAL; + } + return 0; +} + +int sdla_shark_rm_write_fe (void* phw, ...) +{ + sdlahw_t *hw = (sdlahw_t*)phw; + va_list args; + int mod_no, type, chain, reg, value; +#if defined(WAN_DEBUG_FE) + char *fname; + int fline; +#endif + + va_start(args, phw); + mod_no = va_arg(args, int); + type = va_arg(args, int); + chain = va_arg(args, int); + reg = va_arg(args, int); + value = va_arg(args, int); +#if defined(WAN_DEBUG_FE) + fname = va_arg(args, char*); + fline = va_arg(args, int); +#endif + va_end(args); + + if (sdla_hw_fe_test_and_set_bit(hw,0)){ +#if defined(WAN_DEBUG_FE) + DEBUG_EVENT("%s: %s:%d: Critical Error: Re-entry in FE (%s:%d)!\n", + hw->devname, __FUNCTION__,__LINE__, fname, fline); +#else + DEBUG_EVENT("%s: %s:%d: Critical Error: Re-entry in FE!\n", + hw->devname, __FUNCTION__,__LINE__); +#endif + return -EINVAL; + } + + __sdla_shark_rm_write_fe(hw, mod_no, type, chain, reg, value); + + sdla_hw_fe_clear_bit(hw,0); + return 0; +} + +static u_int8_t __sdla_shark_rm_read_fe (void* phw, ...) +{ + sdlahw_t *hw = (sdlahw_t*)phw; + va_list args; + int mod_no, type, chain, reg; + u32 data = 0; + unsigned char cs = 0x00, ctrl_byte = 0x00; + int i; + + va_start(args, phw); + mod_no = va_arg(args, int); + type = va_arg(args, int); + chain = va_arg(args, int); + reg = va_arg(args, int); + va_end(args); +#if 0 + if (!wan_test_bit(mod_no, card->fe.fe_param.remora.module_map)){ + DEBUG_EVENT("%s: %s:%d: Internal Error: Module %d\n", + card->devname, __FUNCTION__,__LINE__,mod_no); + return 0x00; + } +#endif + DEBUG_RM("%s:%d: Module %d: Read RM FE code (reg %d)!\n", + __FUNCTION__,__LINE__, + /*FIXME: hw->devname, */mod_no, reg); + + /* bit 0-7: data byte */ + data = 0x00; + if (type == MOD_TYPE_FXO){ + + /* bit 8-15: register byte */ + data |= (reg & 0xFF) << 8; + + /* bit 16-23: chip select byte + ** bit 16 + ** + ** + ** */ + cs = 0x20; + cs |= MOD_SPI_CS_FXO_READ; + if (mod_no % 2 == 0){ + /* Select second chip in a chain */ + cs |= MOD_SPI_CS_FXO_CHIP_1; + } + data |= (cs & 0xFF) << 16; + + /* bit 24-31: ctrl byte + ** bit 24 + ** + ** + ** */ + ctrl_byte = mod_no / 2; +#if !defined(SPI2STEP) + if (hw->hwcard->core_rev > 3){ + ctrl_byte |= MOD_SPI_CTRL_START; + }else{ + ctrl_byte |= MOD_SPI_CTRL_V3_START; + } +#endif + ctrl_byte |= MOD_SPI_CTRL_CHAIN; /* always chain */ + data |= ctrl_byte << 24; + + }else if (type == MOD_TYPE_FXS){ + + /* bit 8-15: register byte */ + reg = reg & 0x7F; + reg |= MOD_SPI_ADDR_FXS_READ; + data |= (reg & 0xFF) << 8; + + /* bit 16-23: chip select byte + ** bit 16 + ** + ** + ** */ + if (mod_no % 2){ + /* Select first chip in a chain */ + cs = MOD_SPI_CS_FXS_CHIP_0; + }else{ + /* Select second chip in a chain */ + cs = MOD_SPI_CS_FXS_CHIP_1; + } + data |= cs << 16; + + /* bit 24-31: ctrl byte + ** bit 24 + ** + ** + ** */ + ctrl_byte = mod_no / 2; +#if !defined(SPI2STEP) + if (hw->hwcard->core_rev > 3){ + ctrl_byte |= MOD_SPI_CTRL_START; + }else{ + ctrl_byte |= MOD_SPI_CTRL_V3_START; + } +#endif + ctrl_byte |= MOD_SPI_CTRL_FXS; + if (chain){ + ctrl_byte |= MOD_SPI_CTRL_CHAIN; + } + data |= ctrl_byte << 24; + + }else{ + DEBUG_EVENT("%s: Module %d: Unsupported module type %d!\n", + hw->devname, mod_no, type); + return -EINVAL; + } + + sdla_bus_write_4(hw, SPI_INTERFACE_REG, data); +#if defined(SPI2STEP) + WP_DELAY(1); + if (hw->hwcard->core_rev > 3){ + data |= MOD_SPI_START; + }else{ + data |= MOD_SPI_V3_START; + } + sdla_bus_write_4(hw, SPI_INTERFACE_REG, data); +#endif +#if 0 + DEBUG_EVENT("%s: %s: Module %d - Execute SPI command %08X\n", + hw->devname, + __FUNCTION__, + mod_no, + data); +#endif + for (i=0;i<10;i++){ + WP_DELAY(10); + sdla_bus_read_4(hw, SPI_INTERFACE_REG, &data); + if (data & MOD_SPI_BUSY) { + continue; + } + } + + if (data & MOD_SPI_BUSY){ + DEBUG_EVENT("%s: Module %d: Critical Error (%s:%d)!\n", + hw->devname, mod_no, + __FUNCTION__,__LINE__); + return 0xFF; + } + + return (u8)(data & 0xFF); +} + +u_int8_t sdla_shark_rm_read_fe (void* phw, ...) +{ + sdlahw_t *hw = (sdlahw_t*)phw; + va_list args; + int mod_no, type, chain, reg; + unsigned char data = 0; +#if defined(WAN_DEBUG_FE) + char *fname; + int fline; +#endif + + va_start(args, phw); + mod_no = va_arg(args, int); + type = va_arg(args, int); + chain = va_arg(args, int); + reg = va_arg(args, int); +#if defined(WAN_DEBUG_FE) + fname = va_arg(args, char*); + fline = va_arg(args, int); +#endif + va_end(args); + + if (sdla_hw_fe_test_and_set_bit(hw,0)){ +#if defined(WAN_DEBUG_FE) + DEBUG_EVENT("%s: %s:%d: Critical Error: Re-entry in FE (%s:%d)!\n", + hw->devname, __FUNCTION__,__LINE__,fname,fline); +#else + DEBUG_EVENT("%s: %s:%d: Critical Error: Re-entry in FE!\n", + hw->devname, __FUNCTION__,__LINE__); +#endif + return 0x00; + } + data = __sdla_shark_rm_read_fe (hw, mod_no, type, chain, reg); + + sdla_hw_fe_clear_bit(hw,0); + return data; +} + + diff --git a/patches/kdrivers/src/net/sdlamain.c b/patches/kdrivers/src/net/sdlamain.c index cc7ead9..4a8d18d 100644 --- a/patches/kdrivers/src/net/sdlamain.c +++ b/patches/kdrivers/src/net/sdlamain.c @@ -314,7 +314,11 @@ static int ioctl_dump (sdla_t* card, sdla_dump_t* u_dump); static int ioctl_exec (sdla_t* card, sdla_exec_t* u_exec, int); /* Miscellaneous functions */ -STATIC irqreturn_t sdla_isr (int irq, void* dev_id, struct pt_regs *regs); +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20) +STATIC WAN_IRQ_RETVAL sdla_isr (int irq, void* dev_id, struct pt_regs *regs); +#else +STATIC WAN_IRQ_RETVAL sdla_isr (int irq, void* dev_id); +#endif static void release_hw (sdla_t *card); @@ -375,12 +379,12 @@ int __init wanpipe_init(void) ncards=0; if (WANPIPE_VERSION_BETA){ - DEBUG_EVENT("%s Beta%s-%s %s %s\n", - fullname, WANPIPE_SUB_VERSION, WANPIPE_VERSION, + DEBUG_EVENT("%s Beta %s.%s %s %s\n", + fullname, WANPIPE_VERSION, WANPIPE_SUB_VERSION, WANPIPE_COPYRIGHT_DATES,WANPIPE_COMPANY); }else{ - DEBUG_EVENT("%s Stable %s-%s %s %s\n", - fullname, WANPIPE_VERSION, WANPIPE_SUB_VERSION, + DEBUG_EVENT("%s Stable %s.%s %s %s\n", + fullname, WANPIPE_VERSION,WANPIPE_SUB_VERSION, WANPIPE_COPYRIGHT_DATES,WANPIPE_COMPANY); } @@ -539,14 +543,13 @@ static int setup (wan_device_t* wandev, wandev_conf_t* conf) sdla_t* card; int err = 0; int irq=0; - - + /* Sanity checks */ if ((wandev == NULL) || (wandev->private == NULL) || (conf == NULL)){ - DEBUG_EVENT("%s: Failed Sdlamain Setup wandev %u, card %u, conf %u !\n", + DEBUG_EVENT("%s: Failed Sdlamain Setup wandev %p, card %p, conf %p !\n", wandev->name, - (unsigned int)wandev,(unsigned int)wandev->private, - (unsigned int)conf); + wandev,wandev->private, + conf); return -EFAULT; } @@ -570,14 +573,11 @@ static int setup (wan_device_t* wandev, wandev_conf_t* conf) wandev->del_if_cnt = 0; wandev->new_if_cnt = 0; wandev->config_id = conf->config_id; + switch(conf->config_id){ case WANCONFIG_AFT: conf->card_type = WANOPT_AFT; break; - case WANCONFIG_AFT_56K: - conf->card_type = WANOPT_AFT_56K; - conf->S514_CPU_no[0] = 'A'; - break; case WANCONFIG_AFT_TE1: conf->card_type = WANOPT_AFT104; conf->S514_CPU_no[0] = 'A'; @@ -590,9 +590,14 @@ static int setup (wan_device_t* wandev, wandev_conf_t* conf) conf->card_type = WANOPT_AFT300; conf->S514_CPU_no[0] = 'A'; break; + case WANCONFIG_AFT_56K: + conf->card_type = WANOPT_AFT_56K; + conf->S514_CPU_no[0] = 'A'; + break; } wandev->card_type = conf->card_type; + card->hw = sdla_register(&card->hw_iface, conf, card->devname); if (card->hw == NULL){ return -EINVAL; @@ -602,7 +607,7 @@ static int setup (wan_device_t* wandev, wandev_conf_t* conf) * could have changed our config_id, in order to * support A102 config file for A102-SH */ wandev->card_type = conf->card_type; - wandev->config_id = conf->config_id; + wandev->config_id = conf->config_id; /* Check for resource conflicts and setup the * card for piggibacking if necessary */ @@ -680,7 +685,7 @@ static int setup (wan_device_t* wandev, wandev_conf_t* conf) if (err){ DEBUG_EVENT("%s: Hardware setup Failed %i\n", card->devname,err); - card->hw_iface.down(card->hw); + card->hw_iface.hw_down(card->hw); sdla_unregister(&card->hw, card->devname); return err; } @@ -689,7 +694,7 @@ static int setup (wan_device_t* wandev, wandev_conf_t* conf) if (wanpipe_debug){ DEBUG_EVENT("%s: More than 2 debugging cards!\n", card->devname); - card->hw_iface.down(card->hw); + card->hw_iface.hw_down(card->hw); sdla_unregister(&card->hw, card->devname); return -EINVAL; } @@ -721,7 +726,7 @@ static int setup (wan_device_t* wandev, wandev_conf_t* conf) DEBUG_EVENT("%s: Can't reserve IRQ %d!\n", wandev->name, irq); - card->hw_iface.down(card->hw); + card->hw_iface.hw_down(card->hw); sdla_unregister(&card->hw, card->devname); return -EINVAL; } @@ -887,11 +892,11 @@ static int setup (wan_device_t* wandev, wandev_conf_t* conf) break; case WANCONFIG_AFT_TE1: - DEBUG_EVENT("%s: Starting AFT Quad Hardware Init.\n", + DEBUG_EVENT("%s: Starting AFT 2/4/8 Hardware Init.\n", card->devname); err = wp_aft_te1_init(card,conf); break; - + case WANCONFIG_AFT_56K: DEBUG_EVENT("%s: Starting AFT 56K Hardware Init.\n", card->devname); @@ -1442,8 +1447,8 @@ static void release_hw (sdla_t *card) * information of the master device */ DEBUG_EVENT("%s: Piggyback shutting down\n",card->devname); - if (card->hw_iface.down){ - card->hw_iface.down(card->next->hw); + if (card->hw_iface.hw_down){ + card->hw_iface.hw_down(card->next->hw); } if (card->wandev.config_id != WANCONFIG_BSC && card->wandev.config_id != WANCONFIG_POS){ @@ -1456,8 +1461,8 @@ static void release_hw (sdla_t *card) }else{ /* Master device shutting down */ DEBUG_EVENT("%s: Master shutting down\n",card->devname); - if (card->hw_iface.down){ - card->hw_iface.down(card->hw); + if (card->hw_iface.hw_down){ + card->hw_iface.hw_down(card->hw); } if (card->wandev.config_id != WANCONFIG_BSC && card->wandev.config_id != WANCONFIG_POS){ @@ -1476,8 +1481,8 @@ static void release_hw (sdla_t *card) }else{ DEBUG_EVENT("%s: Master shutting down\n",card->devname); - if (card->hw_iface.down){ - card->hw_iface.down(card->hw); + if (card->hw_iface.hw_down){ + card->hw_iface.hw_down(card->hw); } if (card->wandev.config_id != WANCONFIG_BSC && card->wandev.config_id != WANCONFIG_POS && @@ -1610,29 +1615,36 @@ static int ioctl_exec (sdla_t* card, sdla_exec_t* u_exec, int cmd) * o acknowledge SDLA hardware interrupt. * o call protocol-specific interrupt service routine, if any. */ -STATIC irqreturn_t sdla_isr (int irq, void* dev_id, struct pt_regs *regs) + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20) +STATIC WAN_IRQ_RETVAL sdla_isr (int irq, void* dev_id, struct pt_regs *regs) +#else +STATIC WAN_IRQ_RETVAL sdla_isr (int irq, void* dev_id) +#endif { #define card ((sdla_t*)dev_id) if (card && card->type == SDLA_AFT){ - + WAN_IRQ_RETVAL_DECL(val); + spin_lock(&card->wandev.lock); if (card->isr){ - card->isr(card); + WAN_IRQ_CALL(card->isr, (card), val); } spin_unlock(&card->wandev.lock); - WAN_IRQ_RETVAL(IRQ_HANDLED); + WAN_IRQ_RETURN(val); } if (card && card->type == SDLA_ADSL){ unsigned long flags; + WAN_IRQ_RETVAL_DECL(val); spin_lock_irqsave(&card->wandev.lock,flags); if (card->isr){ - card->isr(card); + WAN_IRQ_CALL(card->isr, (card), val); } spin_unlock_irqrestore(&card->wandev.lock,flags); - WAN_IRQ_RETVAL(IRQ_HANDLED); + WAN_IRQ_RETURN(val); } if(card->type == SDLA_S514) { /* handle interrrupt on S514 */ @@ -1647,7 +1659,7 @@ STATIC irqreturn_t sdla_isr (int irq, void* dev_id, struct pt_regs *regs) /* check if the interrupt is for this device */ if(!((unsigned char)int_status & (IRQ_CPU_A | IRQ_CPU_B))){ - WAN_IRQ_RETVAL(IRQ_NONE); + WAN_IRQ_RETURN(IRQ_NONE); } /* if the IRQ is for both CPUs on the same adapter, */ @@ -1679,7 +1691,7 @@ STATIC irqreturn_t sdla_isr (int irq, void* dev_id, struct pt_regs *regs) /* exit if the interrupt is for another CPU on the */ /* same IRQ */ if(!card_found_for_IRQ){ - WAN_IRQ_RETVAL(IRQ_NONE); + WAN_IRQ_RETURN(IRQ_NONE); } if (!card || @@ -1690,7 +1702,7 @@ STATIC irqreturn_t sdla_isr (int irq, void* dev_id, struct pt_regs *regs) if (card->hw_iface.intack){ card->hw_iface.intack(card->hw, int_status); } - WAN_IRQ_RETVAL(IRQ_NONE); + WAN_IRQ_RETURN(IRQ_NONE); } if (card->in_isr) { @@ -1699,7 +1711,7 @@ STATIC irqreturn_t sdla_isr (int irq, void* dev_id, struct pt_regs *regs) if (card->hw_iface.intack){ card->hw_iface.intack(card->hw, int_status); } - WAN_IRQ_RETVAL(IRQ_NONE); + WAN_IRQ_RETURN(IRQ_NONE); } spin_lock(&card->wandev.lock); @@ -1725,16 +1737,18 @@ STATIC irqreturn_t sdla_isr (int irq, void* dev_id, struct pt_regs *regs) spin_unlock(&card->next->wandev.lock); } spin_unlock(&card->wandev.lock); + + WAN_IRQ_RETURN(WAN_IRQ_HANDLED); }else{ /* handle interrupt on S508 adapter */ if (!card || ((card->wandev.state == WAN_UNCONFIGURED) && !card->configured)) - WAN_IRQ_RETVAL(IRQ_NONE); + WAN_IRQ_RETURN(IRQ_NONE); if (card->in_isr) { DEBUG_EVENT("%s: interrupt re-entrancy on IRQ %d!\n", card->devname, card->wandev.irq); - WAN_IRQ_RETVAL(IRQ_NONE); + WAN_IRQ_RETURN(IRQ_NONE); } spin_lock(&card->wandev.lock); @@ -1752,10 +1766,12 @@ STATIC irqreturn_t sdla_isr (int irq, void* dev_id, struct pt_regs *regs) spin_unlock(&card->next->wandev.lock); } spin_unlock(&card->wandev.lock); + + WAN_IRQ_RETURN(WAN_IRQ_HANDLED); } - WAN_IRQ_RETVAL(IRQ_HANDLED); + WAN_IRQ_RETURN(WAN_IRQ_NONE); #undef card } @@ -1804,13 +1820,9 @@ sdla_t * wanpipe_find_card_num (int num) } -int wanpipe_queue_tq (struct tq_struct *bh_pointer) +int wanpipe_queue_tq (wan_taskq_t *task) { -#if defined(LINUX_2_6) - schedule_work(bh_pointer); -#else - queue_task(bh_pointer,&tq_immediate); -#endif + WAN_TASKQ_SCHEDULE(task); return 0; } diff --git a/patches/kdrivers/src/net/wanpipe_abstr.c b/patches/kdrivers/src/net/wanpipe_abstr.c index 81210c7..0aeb5a5 100644 --- a/patches/kdrivers/src/net/wanpipe_abstr.c +++ b/patches/kdrivers/src/net/wanpipe_abstr.c @@ -1102,9 +1102,9 @@ unsigned char wpabs_get_last_trace_direction(void *trace_ptr) /* ** wpabs_bpf_report */ -int wpabs_bpf_report(void* dev, void* skb, int flag) +int wpabs_bpf_report(void* dev, void* skb, int flag, int dir) { - wan_bpf_report((netdevice_t*)dev, (netskb_t*)skb, flag); + wan_bpf_report((netdevice_t*)dev, (netskb_t*)skb, flag, dir); return 0; } diff --git a/patches/kdrivers/src/net/wanpipe_codec.c b/patches/kdrivers/src/net/wanpipe_codec.c index 7ef7ec0..13c1f03 100644 --- a/patches/kdrivers/src/net/wanpipe_codec.c +++ b/patches/kdrivers/src/net/wanpipe_codec.c @@ -27,7 +27,10 @@ # include # include #elif (defined __WINDOWS__) -# include +# include +# include +# include +# include #else # include # include @@ -39,12 +42,15 @@ wanpipe_codec_ops_t *WANPIPE_CODEC_OPS[WP_TDM_HW_CODING_MAX][WP_TDM_CODEC_MAX]; - +#ifdef __LINUX__ __init int wanpipe_codec_init(void) +#else +__init int wanpipe_codec_init(void) +#endif { - wanpipe_codec_ops_t *wp_codec_ops; #ifdef CONFIG_PRODUCT_WANPIPE_CODEC_SLINEAR_LAW + wanpipe_codec_ops_t *wp_codec_ops; wanpipe_codec_law_init(); @@ -82,7 +88,11 @@ __init int wanpipe_codec_init(void) return 0; } +#ifdef __LINUX__ +__exit int wanpipe_codec_free(void) +#else int wanpipe_codec_free(void) +#endif { int i,j; for (i = 0; i < WP_TDM_HW_CODING_MAX; i++){ @@ -94,5 +104,6 @@ int wanpipe_codec_free(void) } } + DEBUG_EVENT("WANPIPE: TDM Codecs unloaded.\n"); return 0; } diff --git a/patches/kdrivers/src/net/wanpipe_codec_law.c b/patches/kdrivers/src/net/wanpipe_codec_law.c index 8aa1fcc..a764c82 100644 --- a/patches/kdrivers/src/net/wanpipe_codec_law.c +++ b/patches/kdrivers/src/net/wanpipe_codec_law.c @@ -27,7 +27,17 @@ # include # include #elif (defined __WINDOWS__) -# include +# include +# include +# include +# include +# include +# include + +#define __init + +#define DBG_LAW if(1)DbgPrint + #else # include # include @@ -225,7 +235,7 @@ static inline short int __init wp_alaw2linear (uint8_t alaw) static int wanpipe_codec_convert_law2s(u8 *data, int len, - u16 *buf, + u16 *buf, u32 *power_ptr, enum wan_codec_source_format src_codec, u8 *gain, @@ -251,7 +261,12 @@ static int wanpipe_codec_convert_law2s(u8 *data, data[i]=gain[data[i]]; } if (usr) { - copy_to_user(&buf[i],&codec[ data[i] ],sizeof(u16)); +#if defined(__WINDOWS__) + DEBUG_EVENT("%s(): Error: copy_to_user() is NOT supported!!\n"); +#else + int err; + err=copy_to_user(&buf[i],&codec[ data[i] ],sizeof(u16)); +#endif } else { buf[i]=codec[ data[i] ]; } @@ -288,8 +303,13 @@ static int wanpipe_codec_convert_s2law(u16 *data, for (i=0;i>2]; +#endif }else{ buf[i] = codec[data[i]>>2]; } @@ -330,7 +350,7 @@ int wanpipe_codec_convert_alaw_2_s(u8 *data, { return wanpipe_codec_convert_law2s(data, len, - buf, + buf, power_ptr, WP_ALAW, gain, @@ -345,7 +365,7 @@ int wanpipe_codec_convert_s_2_ulaw(u16 *data, u8 usr) { return wanpipe_codec_convert_s2law(data, - len, + len, buf, WP_MULAW, gain, @@ -366,15 +386,17 @@ int wanpipe_codec_convert_s_2_alaw(u16 *data, usr); } - - +#ifdef __LINUX__ __init int wanpipe_codec_law_init(void) +#else +int wanpipe_codec_law_init(void) +#endif { int i; for(i = -32768; i < 32768; i += 4) { - __wp_lin2mu[((unsigned short)(short)i) >> 2] = __wp_lineartoulaw(i); - __wp_lin2a[((unsigned short)(short)i) >> 2] = __wp_lineartoalaw(i); + __wp_lin2mu[((unsigned short)(short)i) >> 2] = __wp_lineartoulaw((short)i); + __wp_lin2a[((unsigned short)(short)i) >> 2] = __wp_lineartoalaw((short)i); } for(i = 0;i < 256;i++) { @@ -388,7 +410,7 @@ __init int wanpipe_codec_law_init(void) y += etab[e]; if (mu & 0x80) y = -y; __wp_mulaw[i] = y; - __wp_alaw[i] = wp_alaw2linear(i); + __wp_alaw[i] = wp_alaw2linear((uint8_t)i); } return 0; diff --git a/patches/kdrivers/src/net/wanpipe_multppp.c b/patches/kdrivers/src/net/wanpipe_multppp.c index e835b18..75c07d0 100644 --- a/patches/kdrivers/src/net/wanpipe_multppp.c +++ b/patches/kdrivers/src/net/wanpipe_multppp.c @@ -182,7 +182,7 @@ static int update_comms_stats(sdla_t* card, static void port_set_state (sdla_t *card, int); /* Interrupt handlers */ -static void wsppp_isr (sdla_t* card); +static WAN_IRQ_RETVAL wsppp_isr (sdla_t* card); static void rx_intr (sdla_t* card); static void timer_intr(sdla_t *); @@ -207,8 +207,6 @@ static int if_do_ioctl(netdevice_t *dev, struct ifreq *ifr, int cmd); static void chdlc_enable_timer (void* card_id); static void wp_bh (unsigned long data); -static int digital_loop_test(sdla_t* card,wan_udp_pkt_t* wan_udp_pkt); - #ifdef CONFIG_PRODUCT_WANPIPE_ANNEXG static int bind_annexg(netdevice_t *dev, netdevice_t *annexg_dev); @@ -218,6 +216,7 @@ static void get_active_inactive(wan_device_t *wandev, netdevice_t *dev, void *wp_stats); #endif +static int digital_loop_test(sdla_t* card,wan_udp_pkt_t* wan_udp_pkt); /* TE1 */ static WRITE_FRONT_END_REG_T write_front_end_reg; @@ -345,13 +344,12 @@ int wp_mprot_init (sdla_t* card, wandev_conf_t* conf) }else if (IS_56K_MEDIA(&conf->fe_cfg)){ memcpy(&card->fe.fe_cfg, &conf->fe_cfg, sizeof(sdla_fe_cfg_t)); - sdla_56k_iface_init(&card->fe, &card->wandev.fe_iface); - + sdla_56k_iface_init(&card->wandev.fe_iface); card->fe.name = card->devname; card->fe.card = card; card->fe.write_fe_reg = write_front_end_reg; card->fe.read_fe_reg = read_front_end_reg; - + }else{ card->fe.fe_status = FE_CONNECTED; } @@ -1283,7 +1281,7 @@ static int if_send (struct sk_buff* skb, netdevice_t* dev) } if ((err=chdlc_send(card, skb->data, skb->len))){ - if(card->type == SDLA_S514){ + if(card->type == SDLA_S514){ wan_smp_flag_t smp_flags1; wan_spin_lock_irq(&card->wandev.lock,&smp_flags1); err=1; @@ -1579,23 +1577,18 @@ static unsigned char read_front_end_reg (void* card1, ...) char* data = mb->wan_data; u16 reg, line_no; int err; - int retry=15; va_start(args, card1); - line_no = (u16)va_arg(args, u32); - reg = (u16)va_arg(args, u32); + line_no = (u16)va_arg(args, int); + reg = (u16)va_arg(args, int); va_end(args); - do { - ((FRONT_END_REG_STRUCT *)data)->register_number = (unsigned short)reg; - mb->wan_data_len = sizeof(FRONT_END_REG_STRUCT); - mb->wan_command = READ_FRONT_END_REGISTER; - err = card->hw_iface.cmd(card->hw, card->mbox_off, mb); - if (err != COMMAND_OK) { - chdlc_error(card,err,mb); - } - }while(err && --retry); - + ((FRONT_END_REG_STRUCT *)data)->register_number = (unsigned short)reg; + mb->wan_data_len = sizeof(FRONT_END_REG_STRUCT); + mb->wan_command = READ_FRONT_END_REGISTER; + err = card->hw_iface.cmd(card->hw, card->mbox_off, mb); + if (err != COMMAND_OK) + chdlc_error(card,err,mb); return(((FRONT_END_REG_STRUCT *)data)->register_value); } @@ -1615,9 +1608,9 @@ static int write_front_end_reg (void* card1, ... ) int retry=15; va_start(args, card1); - line_no = (u16)va_arg(args, u32); - reg = (u16)va_arg(args, u32); - value = (u8)va_arg(args, u32); + line_no = (u16)va_arg(args, int); + reg = (u16)va_arg(args, int); + value = (u8)va_arg(args, int); va_end(args); do { @@ -1632,11 +1625,6 @@ static int write_front_end_reg (void* card1, ... ) } }while(err && --retry); - if (err) { - DEBUG_EVENT("%s: Error: Failed to write front end reg!\n", - card->devname); - } - return err; } @@ -1681,7 +1669,7 @@ static int chdlc_error (sdla_t *card, int err, wan_mbox_t *mb) /*============================================================================ * Cisco HDLC interrupt service routine. */ -STATIC void wsppp_isr (sdla_t* card) +STATIC WAN_IRQ_RETVAL wsppp_isr (sdla_t* card) { netdevice_t* dev; SHARED_MEMORY_INFO_STRUCT flags; @@ -1694,7 +1682,7 @@ STATIC void wsppp_isr (sdla_t* card) */ if (!card->hw){ - return; + WAN_IRQ_RETURN(WAN_IRQ_HANDLED); } /* Start card isr critical area */ @@ -1750,9 +1738,10 @@ STATIC void wsppp_isr (sdla_t* card) } if (chan->common.usedby == API){ - start_net_queue(dev); - wan_wakeup_api(chan); - } + start_net_queue(dev); + wan_wakeup_api(chan); + break; + } #ifdef CONFIG_PRODUCT_WANPIPE_ANNEXG if (chan->common.usedby == ANNEXG && @@ -1827,6 +1816,7 @@ STATIC void wsppp_isr (sdla_t* card) isr_done: card->in_isr = 0; card->hw_iface.poke_byte(card->hw, card->intr_type_off, 0x00); + WAN_IRQ_RETURN(WAN_IRQ_HANDLED); } /*============================================================================ @@ -2309,14 +2299,13 @@ static void handle_front_end_state(void* card_id) } }else{ if (!IS_56K_CARD(card)) { - netdevice_t *dev; - dev = WAN_DEVLE2DEV(WAN_LIST_FIRST(&card->wandev.dev_head)); - send_ppp_term_request(dev); - port_set_state(card,WAN_DISCONNECTED); - } else { - card->wandev.state = WAN_DISCONNECTED; - } - + netdevice_t *dev; + dev = WAN_DEVLE2DEV(WAN_LIST_FIRST(&card->wandev.dev_head)); + send_ppp_term_request(dev); + port_set_state(card,WAN_DISCONNECTED); + } else { + card->wandev.state = WAN_DISCONNECTED; + } } } @@ -2342,20 +2331,18 @@ static int process_chdlc_exception(sdla_t *card) card->u.c.state = WAN_CONNECTED; DEBUG_EVENT("%s: Exception condition: Link active!\n", card->devname); - + if (IS_56K_CARD(card)) { - port_set_state(card, WAN_CONNECTED); - if (card->fe.fe_status != FE_CONNECTED) { - card->wandev.state = WAN_DISCONNECTED; - } - } else { - if (card->wandev.ignore_front_end_status == WANOPT_YES || - card->fe.fe_status == FE_CONNECTED){ - port_set_state(card, WAN_CONNECTED); - } - } - - + port_set_state(card, WAN_CONNECTED); + if (card->fe.fe_status != FE_CONNECTED) { + card->wandev.state = WAN_DISCONNECTED; + } + } else { + if (card->wandev.ignore_front_end_status == WANOPT_YES || + card->fe.fe_status == FE_CONNECTED){ + port_set_state(card, WAN_CONNECTED); + } + } break; case EXCEP_LINK_INACTIVE_MODEM: @@ -2497,17 +2484,18 @@ static int if_do_ioctl(netdevice_t *dev, struct ifreq *ifr, int cmd) return -EFAULT; } - if (wan_udp_pkt->wan_udp_command == DIGITAL_LOOPTEST) { - process_udp_mgmt_pkt(card,dev,chan,1); - } else { - + + + if (wan_udp_pkt->wan_udp_command == DIGITAL_LOOPTEST) { + process_udp_mgmt_pkt(card,dev,chan,1); + } else { spin_lock_irqsave(&card->wandev.lock, smp_flags); - + process_udp_mgmt_pkt(card,dev,chan,1); spin_unlock_irqrestore(&card->wandev.lock, smp_flags); } - + /* This area will still be critical to other * PIPEMON commands due to udp_pkt_len * thus we can release the irq */ @@ -2614,6 +2602,11 @@ static int process_udp_mgmt_pkt(sdla_t* card, netdevice_t* dev, wan_udp_pkt->wan_udp_opp_flag = 0; switch(wan_udp_pkt->wan_udp_command) { + + case DIGITAL_LOOPTEST: + wan_udp_pkt->wan_udp_return_code = + digital_loop_test(card,wan_udp_pkt); + break; case CPIPE_ENABLE_TRACING: @@ -2765,12 +2758,6 @@ static int process_udp_mgmt_pkt(sdla_t* card, netdevice_t* dev, wan_udp_pkt->wan_udp_return_code = COMMAND_OK; break; - case DIGITAL_LOOPTEST: - wan_udp_pkt->wan_udp_return_code = - digital_loop_test(card,wan_udp_pkt); - break; - - case FT1_MONITOR_STATUS_CTRL: /* Enable FT1 MONITOR STATUS */ if ((wan_udp_pkt->wan_udp_data[0] & ENABLE_READ_FT1_STATUS) || @@ -2998,11 +2985,7 @@ static int intr_test( sdla_t* card) if (err != CMD_OK) chdlc_error(card, err, mb); - WP_DELAY(1000); - WP_DELAY(1000); - WP_DELAY(1000); - WP_DELAY(1000); - WP_DELAY(1000); + udelay(10000); schedule(); } }else{ @@ -3443,16 +3426,7 @@ static int set_adapter_config (sdla_t* card) card->hw_iface.getcfg(card->hw, SDLA_ADAPTERTYPE, &cfg->adapter_type); cfg->adapter_config = 0x00; - cfg->operating_frequency = 0x00; - -#if 0 - if (IS_56K_CARD(card)) { -#warning "56K Operating Frequency 20MHZ" - DEBUG_EVENT("%s: Configuring 56K for 20MHZ\n",card->devname); - cfg->operating_frequency = 20000000; - } -#endif - + cfg->operating_frequency = 00; mb->wan_data_len = sizeof(ADAPTER_CONFIGURATION_STRUCT); mb->wan_command = SET_ADAPTER_CONFIGURATION; err = card->hw_iface.cmd(card->hw, card->mbox_off, mb); @@ -3682,7 +3656,6 @@ get_map(wan_device_t *wandev, netdevice_t *dev, struct seq_file* m, int* stop_cn static int digital_loop_test(sdla_t* card,wan_udp_pkt_t* wan_udp_pkt) { - netskb_t* skb; netdevice_t* dev; char* buf; @@ -3736,6 +3709,7 @@ static int digital_loop_test(sdla_t* card,wan_udp_pkt_t* wan_udp_pkt) dev_queue_xmit(skb); return 0; -} +} + /****** End ****************************************************************/ diff --git a/patches/kdrivers/src/net/wanpipe_syncppp.c b/patches/kdrivers/src/net/wanpipe_syncppp.c index 7bb1937..257dc8e 100644 --- a/patches/kdrivers/src/net/wanpipe_syncppp.c +++ b/patches/kdrivers/src/net/wanpipe_syncppp.c @@ -35,8 +35,8 @@ * Version 2.0, Fri Aug 30 09:59:07 EDT 2002 * Version 2.1, Wed Mar 26 10:03:00 EDT 2003 * - * $Id: wanpipe_syncppp.c,v 1.25 2006/09/28 17:21:40 sangoma Exp $ - * $Id: wanpipe_syncppp.c,v 1.25 2006/09/28 17:21:40 sangoma Exp $ + * $Id: wanpipe_syncppp.c,v 1.29 2007/02/28 02:01:05 sangoma Exp $ + * $Id: wanpipe_syncppp.c,v 1.29 2007/02/28 02:01:05 sangoma Exp $ */ /* @@ -319,7 +319,11 @@ void sppp_proc_cleanup (void); static unsigned int sppp_keepalive_interval; static unsigned int sppp_max_keepalive_count; -static void sppp_bh (void *); +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)) +static void sppp_bh (void *sppp); +#else +static void sppp_bh (struct work_struct *work); +#endif extern unsigned long wan_get_ip_address (netdevice_t *dev, int option); extern unsigned long wan_set_ip_address (netdevice_t *dev, int option, unsigned long ip); @@ -2272,7 +2276,12 @@ void wp_sppp_attach(struct ppp_device *pd) sp->local_ip=0; sp->remote_ip=0; + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)) INIT_WORK((&sp->sppp_task),sppp_bh,sp); +#else + INIT_WORK((&sp->sppp_task),sppp_bh); +#endif sp->task_working=0; /* @@ -3113,11 +3122,11 @@ static int __init sync_ppp_init(void) debug=PP_DEBUG; if (WANPIPE_VERSION_BETA){ - DEBUG_EVENT("%s Beta%s-%s %s %s\n", - fullname, WANPIPE_SUB_VERSION, WANPIPE_VERSION, + DEBUG_EVENT("%s Beta %s.%s %s %s\n", + fullname, WANPIPE_VERSION, WANPIPE_SUB_VERSION, WANPIPE_COPYRIGHT_DATES,WANPIPE_COMPANY); }else{ - DEBUG_EVENT("%s Stable %s-%s %s %s\n", + DEBUG_EVENT("%s Stable %s.%s %s %s\n", fullname, WANPIPE_VERSION, WANPIPE_SUB_VERSION, WANPIPE_COPYRIGHT_DATES,WANPIPE_COMPANY); } @@ -3177,12 +3186,13 @@ static ssize_t router_proc_read(struct file* file, char* buf, size_t count, if (count <= 0) return 0; - -#if defined(WANPIPE_USE_I_PRIVATE) - dent = inode->i_private; -#else - dent = inode->u.generic_ip; + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18) + dent = inode->i_private; +#else + dent = inode->u.generic_ip; #endif + if ((dent == NULL) || (dent->get_info == NULL)){ printk(KERN_INFO "NO DENT\n"); return 0; @@ -3261,11 +3271,12 @@ static ssize_t router_proc_write(struct file *file, const char *buf, size_t coun if (count <= 0 || count > PROC_BUFSZ) return -EIO; -#if defined(WANPIPE_USE_I_PRIVATE) - dent = inode->i_private; -#else - dent = inode->u.generic_ip; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18) + dent = inode->i_private; +#else + dent = inode->u.generic_ip; #endif + if ((dent == NULL) || (dent->get_info == NULL)) return -EIO; @@ -3505,13 +3516,26 @@ static char *decode_ipcp_state(int state) #endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)) static void sppp_bh (void *sp_ptr) +#else +static void sppp_bh (struct work_struct *work) +#endif { + struct net_device *dev; +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)) + struct sppp *sp = container_of(work, struct sppp, sppp_task); + dev=sp->pp_if; + if (!dev || !sp->dynamic_ip) { + return; + } +#else struct sppp *sp=sp_ptr; - struct net_device *dev=sp->pp_if; + dev=sp->pp_if; if (!sp->dynamic_ip || !sp->pp_if) return; +#endif if (test_and_set_bit(0,&sp->task_working)){ DEBUG_EVENT("%s: Critical in sppp bh!\n",dev->name); diff --git a/patches/kdrivers/src/net/wanpipe_tdm_api.c b/patches/kdrivers/src/net/wanpipe_tdm_api.c index 62625e9..2a2ca88 100644 --- a/patches/kdrivers/src/net/wanpipe_tdm_api.c +++ b/patches/kdrivers/src/net/wanpipe_tdm_api.c @@ -5,7 +5,7 @@ * * Authors: Nenad Corbic * -* Copyright: (c) 2003-2005 Sangoma Technologies Inc. +* Copyright: (c) 2003-2007 Sangoma Technologies Inc. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -48,6 +48,7 @@ queue_tdm_api_rx_dpc( # include # include # include +# include # include #endif @@ -61,7 +62,6 @@ queue_tdm_api_rx_dpc( #define WP_TDMAPI_MINOR_OFFSET 0 #define WP_TDMAPI_MAX_MINORS 1024 - #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) || defined(__WINDOWS__) @@ -128,6 +128,7 @@ static int wp_tdmapi_release(struct inode *inode, struct file *file); static int wp_tdmapi_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long data); static void wanpipe_tdm_api_rbs_poll(wanpipe_tdm_api_dev_t *tdm_api); +static void wanpipe_tdm_api_fe_alarm_event(wanpipe_tdm_api_dev_t *tdm_api, int state); static void wp_tdmapi_rbsbits(void* card_id, int channel, unsigned char rbsbits); static void wp_tdmapi_alarms(void* card_id, unsigned long alarams); @@ -226,10 +227,11 @@ static struct cdev wptdm_cdev = { .owner = THIS_MODULE, }; + static int wp_tdmapi_reg_globals(void) { int err=0; - + rx_gains=NULL; tx_gains=NULL; wan_spin_lock_init(&wp_tdmapi_hash_lock); @@ -347,9 +349,9 @@ int wanpipe_tdm_api_reg(wanpipe_tdm_api_dev_t *tdm_api) if (tdm_api->cfg.idle_flag == 0) { tdm_api->cfg.idle_flag=0xFF; - } + } } - + tdm_api->critical=0; wan_clear_bit(0,&tdm_api->used); @@ -439,16 +441,15 @@ int wanpipe_tdm_api_update_state(wanpipe_tdm_api_dev_t *tdm_api, int state) return -ENODEV; } - if (tdm_api->state != state) { - tdm_api->state = (u8)state; + tdm_api->state = (u8)state; + tdm_api->cfg.fe_alarms = (state == WAN_CONNECTED ? 0 : 1); - if (wan_test_bit(0,&tdm_api->used)) { - DEBUG_EVENT("%s: UPDATE STATE API\n",tdm_api->name); + if (wan_test_bit(0,&tdm_api->used)) { + wanpipe_tdm_api_fe_alarm_event(tdm_api,state); #if !defined(__WINDOWS__) - wp_wakeup_tdmapi(tdm_api); + wp_wakeup_tdmapi(tdm_api); #endif - } - } + } return 0; } @@ -478,6 +479,7 @@ static int wp_tdmapi_open(struct inode *inode, struct file *file) { wanpipe_tdm_api_dev_t *tdm_api; wan_smp_flag_t flags; + #if !defined(__WINDOWS__) u32 tdm_span = WP_TDMAPI_GET_SPAN_FROM_MINOR(UNIT(file)); @@ -490,12 +492,12 @@ static int wp_tdmapi_open(struct inode *inode, struct file *file) wan_spin_lock_irq(&wp_tdmapi_hash_lock,&flags); tdm_api = wp_find_tdm_api_dev(wp_tdmapi_hash, #if !defined(__WINDOWS__) - UNIT(file), + UNIT(file), #else - (unsigned int)file, + (unsigned int)file, #endif - tdm_span, - tdm_chan); + tdm_span, + tdm_chan); if (!tdm_api){ wan_spin_unlock_irq(&wp_tdmapi_hash_lock,&flags); @@ -1020,6 +1022,7 @@ static unsigned int wp_tdmapi_poll(struct file *file, struct poll_table_struct * /* Indicate an exception */ ret |= POLLPRI; } + return ret; } @@ -1097,6 +1100,51 @@ static void wanpipe_tdm_api_rbs_poll(wanpipe_tdm_api_dev_t *tdm_api) #endif } +static void wanpipe_tdm_api_fe_alarm_event(wanpipe_tdm_api_dev_t *tdm_api, int state) +{ + netskb_t *skb; + wp_tdm_api_rx_hdr_t *rx_hdr = NULL; +#if defined(__WINDOWS__) + wp_tdm_api_rx_hdr_t tdm_api_hdr; +#endif + + DEBUG_TEST("%s: TDM API State Event State=%i\n", + tdm_api->name, tdm_api->state); + +#if defined(__WINDOWS__) + rx_hdr = &tdm_api_hdr; +#else + if (wan_skb_queue_len(&tdm_api->wp_event_list) > WP_TDM_MAX_EVENT_Q_LEN) { + return; + } + skb=wan_skb_alloc(sizeof(wp_tdm_api_rx_hdr_t)); + if (skb == NULL) { + return; + } + rx_hdr=(wp_tdm_api_rx_hdr_t*)wan_skb_put(skb,sizeof(wp_tdm_api_rx_hdr_t)); +#endif/* #if !defined(__WINDOWS__) */ + + memset(rx_hdr,0,sizeof(wp_tdm_api_rx_hdr_t)); + if (state == WAN_CONNECTED) { + rx_hdr->wp_tdm_api_event_fe_alarm = 0; + } else { + rx_hdr->wp_tdm_api_event_fe_alarm = 1; + } + rx_hdr->wp_tdm_api_event_type = WP_TDM_EVENT_FE_ALARM; + +#if 0 + /* FIXME: NENAD TO ADD Timestamp */ + rx_hdr->event_time_stamp = gettimeofday(); +#endif + rx_hdr->wp_tdm_api_event_channel = (u_int16_t)tdm_api->tdm_chan + 1; +#if defined(__WINDOWS__) + aft_te1_insert_tdm_api_event_in_to_rx_queue(tdm_api, rx_hdr); + queue_tdm_api_rx_dpc(tdm_api); +#else + wan_skb_queue_tail(&tdm_api->wp_event_list,skb); +#endif +} + #if !defined(__WINDOWS__) static #endif @@ -1108,7 +1156,6 @@ int wanpipe_tdm_api_ioctl(wanpipe_tdm_api_dev_t *tdm_api, struct ifreq *ifr) wanpipe_codec_ops_t *wp_codec_ops; netskb_t *skb; wan_event_ctrl_t event_ctrl; - sdla_t *card = (sdla_t*)tdm_api->card; utdmapi = (wanpipe_tdm_api_cmd_t*)ifr->ifr_data; @@ -1132,7 +1179,7 @@ int wanpipe_tdm_api_ioctl(wanpipe_tdm_api_dev_t *tdm_api, struct ifreq *ifr) #endif cmd=usr_tdm_api.cmd; - DEBUG_TEST("%s: TDM API CMD: %i\n",tdm_api->name,cmd); + DEBUG_TDMAPI("%s: TDM API CMD: %i\n",tdm_api->name,cmd); wan_spin_lock(&tdm_api->lock); @@ -1141,6 +1188,7 @@ int wanpipe_tdm_api_ioctl(wanpipe_tdm_api_dev_t *tdm_api, struct ifreq *ifr) case SIOC_WP_TDM_GET_USR_MTU_MRU: case SIOC_WP_TDM_GET_STATS: case SIOC_WP_TDM_GET_FULL_CFG: + case SIOC_WP_TDM_READ_EVENT: break; default: DEBUG_EVENT("%s: Invalid TDM API HDLC CMD %i\n", tdm_api->name,cmd); @@ -1197,7 +1245,7 @@ int wanpipe_tdm_api_ioctl(wanpipe_tdm_api_dev_t *tdm_api, struct ifreq *ifr) goto tdm_api_exit; } - if ((int)usr_tdm_api.tdm_codec < 0 || usr_tdm_api.tdm_codec >= WP_TDM_CODEC_MAX){ + if (usr_tdm_api.tdm_codec >= WP_TDM_CODEC_MAX){ err = -EINVAL; goto tdm_api_exit; } @@ -1269,24 +1317,6 @@ int wanpipe_tdm_api_ioctl(wanpipe_tdm_api_dev_t *tdm_api, struct ifreq *ifr) } break; - case SIOC_WP_TDM_ENABLE_HWEC: - if (card->wandev.ec_enable) { - wan_smp_flag_t smp_flags1; - card->hw_iface.hw_lock(card->hw,&smp_flags1); - card->wandev.ec_enable(card, 1, tdm_api->tdm_chan-1); - card->hw_iface.hw_unlock(card->hw,&smp_flags1); - } - break; - - case SIOC_WP_TDM_DISABLE_HWEC: - if (card->wandev.ec_enable) { - wan_smp_flag_t smp_flags1; - card->hw_iface.hw_lock(card->hw,&smp_flags1); - card->wandev.ec_enable(card, 0, tdm_api->tdm_chan-1); - card->hw_iface.hw_unlock(card->hw,&smp_flags1); - } - break; - case SIOC_WP_TDM_GET_EC_TAP: usr_tdm_api.ec_tap = tdm_api->cfg.ec_tap; break; @@ -1323,7 +1353,7 @@ int wanpipe_tdm_api_ioctl(wanpipe_tdm_api_dev_t *tdm_api, struct ifreq *ifr) event_ctrl.mode = WAN_EVENT_ENABLE; event_ctrl.ts_map = tdm_api->active_ch; if (tdm_api->event_ctrl){ - tdm_api->event_ctrl(tdm_api->chan, &event_ctrl); + err = tdm_api->event_ctrl(tdm_api->chan, &event_ctrl); } break; @@ -1336,7 +1366,7 @@ int wanpipe_tdm_api_ioctl(wanpipe_tdm_api_dev_t *tdm_api, struct ifreq *ifr) event_ctrl.mode = WAN_EVENT_DISABLE; event_ctrl.ts_map = tdm_api->active_ch; if (tdm_api->event_ctrl){ - tdm_api->event_ctrl(tdm_api->chan, &event_ctrl); + err = tdm_api->event_ctrl(tdm_api->chan, &event_ctrl); } break; @@ -1347,9 +1377,9 @@ int wanpipe_tdm_api_ioctl(wanpipe_tdm_api_dev_t *tdm_api, struct ifreq *ifr) memset(&event_ctrl, 0, sizeof(wan_event_ctrl_t)); event_ctrl.type = WAN_EVENT_RM_DTMF; event_ctrl.mode = WAN_EVENT_ENABLE; - event_ctrl.mod_no = tdm_api->tdm_chan; + event_ctrl.mod_no = tdm_api->tdm_chan-1; if (tdm_api->event_ctrl){ - tdm_api->event_ctrl(tdm_api->chan, &event_ctrl); + err = tdm_api->event_ctrl(tdm_api->chan, &event_ctrl); } break; case SIOC_WP_TDM_DISABLE_RM_DTMF_EVENTS: @@ -1359,9 +1389,9 @@ int wanpipe_tdm_api_ioctl(wanpipe_tdm_api_dev_t *tdm_api, struct ifreq *ifr) memset(&event_ctrl, 0, sizeof(wan_event_ctrl_t)); event_ctrl.type = WAN_EVENT_RM_DTMF; event_ctrl.mode = WAN_EVENT_DISABLE; - event_ctrl.mod_no = tdm_api->tdm_chan; + event_ctrl.mod_no = tdm_api->tdm_chan-1; if (tdm_api->event_ctrl){ - tdm_api->event_ctrl(tdm_api->chan, &event_ctrl); + err = tdm_api->event_ctrl(tdm_api->chan, &event_ctrl); } break; @@ -1372,9 +1402,13 @@ int wanpipe_tdm_api_ioctl(wanpipe_tdm_api_dev_t *tdm_api, struct ifreq *ifr) memset(&event_ctrl, 0, sizeof(wan_event_ctrl_t)); event_ctrl.type = WAN_EVENT_RM_LC; event_ctrl.mode = WAN_EVENT_ENABLE; - event_ctrl.mod_no = tdm_api->tdm_chan; + event_ctrl.mod_no = tdm_api->tdm_chan-1; if (tdm_api->event_ctrl){ - tdm_api->event_ctrl(tdm_api->chan, &event_ctrl); + err = tdm_api->event_ctrl(tdm_api->chan, &event_ctrl); + } else { + DEBUG_EVENT("%s: Error: event_ctrl not supported!\n", + tdm_api->name); + err = -EINVAL; } break; @@ -1384,10 +1418,14 @@ int wanpipe_tdm_api_ioctl(wanpipe_tdm_api_dev_t *tdm_api, struct ifreq *ifr) memset(&event_ctrl, 0, sizeof(wan_event_ctrl_t)); event_ctrl.type = WAN_EVENT_RM_LC; event_ctrl.mode = WAN_EVENT_DISABLE; - event_ctrl.mod_no = tdm_api->tdm_chan; + event_ctrl.mod_no = tdm_api->tdm_chan-1; if (tdm_api->event_ctrl){ - tdm_api->event_ctrl(tdm_api->chan, &event_ctrl); - } + err = tdm_api->event_ctrl(tdm_api->chan, &event_ctrl); + } else { + DEBUG_EVENT("%s: Error: event_ctrl not supported!\n", + tdm_api->name); + err = -EINVAL; + } break; case SIOC_WP_TDM_ENABLE_RING_DETECT_EVENTS: @@ -1397,10 +1435,14 @@ int wanpipe_tdm_api_ioctl(wanpipe_tdm_api_dev_t *tdm_api, struct ifreq *ifr) memset(&event_ctrl, 0, sizeof(wan_event_ctrl_t)); event_ctrl.type = WAN_EVENT_RM_RING_DETECT; event_ctrl.mode = WAN_EVENT_ENABLE; - event_ctrl.mod_no = tdm_api->tdm_chan; + event_ctrl.mod_no = tdm_api->tdm_chan-1; if (tdm_api->event_ctrl){ - tdm_api->event_ctrl(tdm_api->chan, &event_ctrl); - } + err = tdm_api->event_ctrl(tdm_api->chan, &event_ctrl); + } else { + DEBUG_EVENT("%s: Error: event_ctrl not supported!\n", + tdm_api->name); + err = -EINVAL; + } break; case SIOC_WP_TDM_DISABLE_RING_DETECT_EVENTS: DEBUG_TDMAPI("%s: Disable Ring Detection Event on module %d!\n", @@ -1409,10 +1451,14 @@ int wanpipe_tdm_api_ioctl(wanpipe_tdm_api_dev_t *tdm_api, struct ifreq *ifr) memset(&event_ctrl, 0, sizeof(wan_event_ctrl_t)); event_ctrl.type = WAN_EVENT_RM_RING_DETECT; event_ctrl.mode = WAN_EVENT_DISABLE; - event_ctrl.mod_no = tdm_api->tdm_chan; + event_ctrl.mod_no = tdm_api->tdm_chan-1; if (tdm_api->event_ctrl){ - tdm_api->event_ctrl(tdm_api->chan, &event_ctrl); - } + err = tdm_api->event_ctrl(tdm_api->chan, &event_ctrl); + } else { + DEBUG_EVENT("%s: Error: event_ctrl not supported!\n", + tdm_api->name); + err = -EINVAL; + } break; case SIOC_WP_TDM_ENABLE_RING_TRIP_DETECT_EVENTS: @@ -1422,10 +1468,14 @@ int wanpipe_tdm_api_ioctl(wanpipe_tdm_api_dev_t *tdm_api, struct ifreq *ifr) memset(&event_ctrl, 0, sizeof(wan_event_ctrl_t)); event_ctrl.type = WAN_EVENT_RM_RING_TRIP; event_ctrl.mode = WAN_EVENT_ENABLE; - event_ctrl.mod_no = tdm_api->tdm_chan; + event_ctrl.mod_no = tdm_api->tdm_chan-1; if (tdm_api->event_ctrl){ - tdm_api->event_ctrl(tdm_api->chan, &event_ctrl); - } + err = tdm_api->event_ctrl(tdm_api->chan, &event_ctrl); + } else { + DEBUG_EVENT("%s: Error: event_ctrl not supported!\n", + tdm_api->name); + err = -EINVAL; + } break; case SIOC_WP_TDM_DISABLE_RING_TRIP_DETECT_EVENTS: DEBUG_TDMAPI("%s: Disable Ring Trip Detection Event on module %d!\n", @@ -1434,10 +1484,14 @@ int wanpipe_tdm_api_ioctl(wanpipe_tdm_api_dev_t *tdm_api, struct ifreq *ifr) memset(&event_ctrl, 0, sizeof(wan_event_ctrl_t)); event_ctrl.type = WAN_EVENT_RM_RING_TRIP; event_ctrl.mode = WAN_EVENT_DISABLE; - event_ctrl.mod_no = tdm_api->tdm_chan; + event_ctrl.mod_no = tdm_api->tdm_chan-1; if (tdm_api->event_ctrl){ - tdm_api->event_ctrl(tdm_api->chan, &event_ctrl); - } + err = tdm_api->event_ctrl(tdm_api->chan, &event_ctrl); + } else { + DEBUG_EVENT("%s: Error: event_ctrl not supported!\n", + tdm_api->name); + err = -EINVAL; + } break; case SIOC_WP_TDM_TXSIG_KEWL: @@ -1446,10 +1500,14 @@ int wanpipe_tdm_api_ioctl(wanpipe_tdm_api_dev_t *tdm_api, struct ifreq *ifr) tdm_api->tdm_chan); memset(&event_ctrl, 0, sizeof(wan_event_ctrl_t)); event_ctrl.type = WAN_EVENT_RM_TXSIG_KEWL; - event_ctrl.mod_no = tdm_api->tdm_chan; + event_ctrl.mod_no = tdm_api->tdm_chan-1; if (tdm_api->event_ctrl){ - tdm_api->event_ctrl(tdm_api->chan, &event_ctrl); - } + err = tdm_api->event_ctrl(tdm_api->chan, &event_ctrl); + } else { + DEBUG_EVENT("%s: Error: event_ctrl not supported!\n", + tdm_api->name); + err = -EINVAL; + } break; case SIOC_WP_TDM_EVENT_TXSIG_START: @@ -1458,10 +1516,14 @@ int wanpipe_tdm_api_ioctl(wanpipe_tdm_api_dev_t *tdm_api, struct ifreq *ifr) tdm_api->tdm_chan); memset(&event_ctrl, 0, sizeof(wan_event_ctrl_t)); event_ctrl.type = WAN_EVENT_RM_TXSIG_START; - event_ctrl.mod_no = tdm_api->tdm_chan; + event_ctrl.mod_no = tdm_api->tdm_chan-1; if (tdm_api->event_ctrl){ - tdm_api->event_ctrl(tdm_api->chan, &event_ctrl); - } + err = tdm_api->event_ctrl(tdm_api->chan, &event_ctrl); + } else { + DEBUG_EVENT("%s: Error: event_ctrl not supported!\n", + tdm_api->name); + err = -EINVAL; + } break; case SIOC_WP_TDM_EVENT_TXSIG_OFFHOOK: DEBUG_TDMAPI("%s: TX Signalling OFFHOOK for module %d!\n", @@ -1469,10 +1531,14 @@ int wanpipe_tdm_api_ioctl(wanpipe_tdm_api_dev_t *tdm_api, struct ifreq *ifr) tdm_api->tdm_chan); memset(&event_ctrl, 0, sizeof(wan_event_ctrl_t)); event_ctrl.type = WAN_EVENT_RM_TXSIG_OFFHOOK; - event_ctrl.mod_no = tdm_api->tdm_chan; + event_ctrl.mod_no = tdm_api->tdm_chan-1; if (tdm_api->event_ctrl){ - tdm_api->event_ctrl(tdm_api->chan, &event_ctrl); - } + err = tdm_api->event_ctrl(tdm_api->chan, &event_ctrl); + } else { + DEBUG_EVENT("%s: Error: event_ctrl not supported!\n", + tdm_api->name); + err = -EINVAL; + } break; case SIOC_WP_TDM_EVENT_TXSIG_ONHOOK: DEBUG_TDMAPI("%s: TX Signalling ONHOOK for module %d!\n", @@ -1480,10 +1546,14 @@ int wanpipe_tdm_api_ioctl(wanpipe_tdm_api_dev_t *tdm_api, struct ifreq *ifr) tdm_api->tdm_chan); memset(&event_ctrl, 0, sizeof(wan_event_ctrl_t)); event_ctrl.type = WAN_EVENT_RM_TXSIG_ONHOOK; - event_ctrl.mod_no = tdm_api->tdm_chan; + event_ctrl.mod_no = tdm_api->tdm_chan-1; if (tdm_api->event_ctrl){ - tdm_api->event_ctrl(tdm_api->chan, &event_ctrl); - } + err = tdm_api->event_ctrl(tdm_api->chan, &event_ctrl); + } else { + DEBUG_EVENT("%s: Error: event_ctrl not supported!\n", + tdm_api->name); + err = -EINVAL; + } break; case SIOC_WP_TDM_EVENT_ONHOOKTRANSFER: DEBUG_TDMAPI("%s: RM ONHOOKTRANSFER for module %d!\n", @@ -1491,22 +1561,30 @@ int wanpipe_tdm_api_ioctl(wanpipe_tdm_api_dev_t *tdm_api, struct ifreq *ifr) tdm_api->tdm_chan); memset(&event_ctrl, 0, sizeof(wan_event_ctrl_t)); event_ctrl.type = WAN_EVENT_RM_ONHOOKTRANSFER; - event_ctrl.mod_no = tdm_api->tdm_chan; + event_ctrl.mod_no = tdm_api->tdm_chan-1; event_ctrl.ohttimer = usr_tdm_api.event.wp_tdm_api_event_ohttimer; if (tdm_api->event_ctrl){ - tdm_api->event_ctrl(tdm_api->chan, &event_ctrl); - } + err = tdm_api->event_ctrl(tdm_api->chan, &event_ctrl); + } else { + DEBUG_EVENT("%s: Error: event_ctrl not supported!\n", + tdm_api->name); + err = -EINVAL; + } break; case SIOC_WP_TDM_EVENT_SETPOLARITY: DEBUG_EVENT("%s: RM SETPOLARITY for module %d!\n", tdm_api->name, tdm_api->tdm_chan); event_ctrl.type = WAN_EVENT_RM_SETPOLARITY; - event_ctrl.mod_no = tdm_api->tdm_chan; + event_ctrl.mod_no = tdm_api->tdm_chan-1; event_ctrl.polarity = usr_tdm_api.event.wp_tdm_api_event_polarity; if (tdm_api->event_ctrl){ - tdm_api->event_ctrl(tdm_api->chan, &event_ctrl); - } + err = tdm_api->event_ctrl(tdm_api->chan, &event_ctrl); + } else { + DEBUG_EVENT("%s: Error: event_ctrl not supported!\n", + tdm_api->name); + err = -EINVAL; + } break; case SIOC_WP_TDM_WRITE_RBS_BITS: @@ -1579,6 +1657,10 @@ int wanpipe_tdm_api_ioctl(wanpipe_tdm_api_dev_t *tdm_api, struct ifreq *ifr) break; + case SIOC_WP_TDM_GET_FE_ALARMS: + usr_tdm_api.fe_alarms = (tdm_api->state == WAN_CONNECTED ? 0 : 1); + break; + case SIOC_WP_TDM_SET_TX_GAINS: if (usr_tdm_api.data_len && utdmapi->data) { @@ -1598,8 +1680,9 @@ int wanpipe_tdm_api_ioctl(wanpipe_tdm_api_dev_t *tdm_api, struct ifreq *ifr) } #if defined(__WINDOWS__) -#error "FIX API CMD" - memcpy(&_api, ifr, sizeof(wanpipe_tdm_api_cmd_t)); +//FIXME: implement +//#error "FIX API CMD" +// memcpy(&_api, ifr, sizeof(wanpipe_tdm_api_cmd_t)); #else if (WAN_COPY_FROM_USER(tx_gains, utdmapi->data, @@ -1866,7 +1949,9 @@ static wanpipe_tdm_api_dev_t *wp_tdmapi_search(sdla_t *card, int fe_chan) for(i = 0; i < WP_TDMAPI_HASH_SZ; i++){ tdm_api = wp_tdmapi_hash[i]; - if (tdm_api->card != card) continue; + if (tdm_api == NULL || tdm_api->card != card){ + continue; + } if (wan_test_bit(fe_chan, &tdm_api->active_ch)){ return tdm_api; } @@ -1879,7 +1964,7 @@ static void wp_tdmapi_rbsbits(void* card_id, int channel, unsigned char rbsbits) { sdla_t *card = (sdla_t*)card_id; - DEBUG_EVENT("ADBG> %s: Received RBS Event at TDM_API!\n", + DEBUG_EVENT("%s: Received RBS Event at TDM_API (not supported)!\n", card->devname); return; } @@ -1888,7 +1973,7 @@ static void wp_tdmapi_alarms(void* card_id, unsigned long alarams) { sdla_t *card = (sdla_t*)card_id; - DEBUG_EVENT("ADBG> %s: Received RBS Event at TDM_API!\n", + DEBUG_EVENT("%s: Received RBS Event at TDM_API (not supported)!\n", card->devname); return; } @@ -1998,8 +2083,8 @@ static void wp_tdmapi_hook (void* card_id, wan_event_t *event) #endif memset(rx_hdr,0,sizeof(wp_tdm_api_rx_hdr_t)); - rx_hdr->wp_tdm_api_event_type = WP_TDM_EVENT_RXHOOK; - rx_hdr->wp_tdm_api_event_channel = (u_int16_t)event->channel; + rx_hdr->wp_tdm_api_event_type = WP_TDM_EVENT_RXHOOK; + rx_hdr->wp_tdm_api_event_channel = (u_int16_t)event->channel; rx_hdr->wp_tdm_api_event_rxhook_state = event->rxhook; #if 0 diff --git a/patches/kdrivers/src/net/wanpipe_utils.c b/patches/kdrivers/src/net/wanpipe_utils.c index 87e5c46..e6932b2 100644 --- a/patches/kdrivers/src/net/wanpipe_utils.c +++ b/patches/kdrivers/src/net/wanpipe_utils.c @@ -29,7 +29,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: wanpipe_utils.c,v 1.91 2006/08/30 15:16:56 sangoma Exp $ + * $Id: wanpipe_utils.c,v 1.93 2006/11/23 22:00:58 sangoma Exp $ */ /* @@ -184,21 +184,6 @@ void wanpipe_set_baud (void* card_id, unsigned int baud) card->wandev.bps=baud*1000; } -void wanpipe_set_dev_carrier_state(sdla_t* card, int state) -{ - netdevice_t *dev; - dev = WAN_DEVLE2DEV(WAN_LIST_FIRST(&card->wandev.dev_head)); - if (dev && WAN_NETIF_UP(dev)) { - if (state == WAN_CONNECTED) { - WAN_NETIF_CARRIER_ON(dev); - WAN_NETIF_WAKE_QUEUE(dev); - } else { - WAN_NETIF_CARRIER_OFF(dev); - WAN_NETIF_STOP_QUEUE(dev); - } - } -} - /* * ============================================================================ @@ -223,10 +208,6 @@ void wanpipe_set_state (void* card_id, int state) break; } card->wandev.state = state; - - if (card->wandev.config_id == WANCONFIG_ADSL) { - wanpipe_set_dev_carrier_state(card,state); - } } card->state_tick = SYSTEM_TICKS; } @@ -380,6 +361,87 @@ int wan_reply_udp(void* card_id, unsigned char *data, unsigned int mbox_len) return len; } /* wan_reply_udp */ + + +/* + * =========================================================================== + * Reply to UDP Management system. + * Agruments: + * mbox_len - includes data length and trace_info_t (chdlc and dsl). + * Return length of reply. + */ +int wan_ip_udp_setup(void* card_id, u32 ip, u32 udp_port, unsigned char *data, unsigned int mbox_len) +{ + wan_rtp_pkt_t* rtp_pkt = (wan_rtp_pkt_t*)data; + unsigned short len, + udp_length, + temp, + ip_length; + int even_bound = 0; + + + /* fill in UDP length */ + udp_length = sizeof(struct udphdr) + + sizeof(wan_rtp_hdr_t) + + mbox_len; + + + /* Set length of packet */ +#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) + len = sizeof(struct ip) + udp_length; +#else + len = sizeof(struct iphdr) + udp_length; +#endif + + /* put it on an even boundary */ + if (udp_length & 0x0001){ + udp_length += 1; + data[sizeof(ethhdr_t)+sizeof(iphdr_t)+udp_length]=0; + len += 1; + even_bound = 1; + } + + temp = (udp_length<<8)|(udp_length>>8); + rtp_pkt->wan_udp_len = temp; + + temp = rtp_pkt->wan_udp_sport; + rtp_pkt->wan_udp_sport = 0; + rtp_pkt->wan_udp_dport = udp_port; + + /* calculate UDP checksum */ + rtp_pkt->wan_udp_sum = 0; + rtp_pkt->wan_udp_sum = 0; + #if 0 + wan_calc_checksum(&data[sizeof(ethhdr_t)+UDP_OFFSET], + udp_length+UDP_OFFSET); + #endif + + /* fill in IP length */ + ip_length = len; + temp = (ip_length<<8)|(ip_length>>8); + rtp_pkt->wan_ip_len = temp; + + /* IP addresses */ + rtp_pkt->wan_ip_src = 0; + rtp_pkt->wan_ip_dst = ip; + rtp_pkt->wan_ip_v = 4; + rtp_pkt->wan_ip_hl = 5; + rtp_pkt->wan_ip_tos = 1; + rtp_pkt->wan_ip_ttl = 255; + rtp_pkt->wan_ip_p = IPPROTO_UDP; + + memset(rtp_pkt->wan_eth_dest,0xFF,ETH_ALEN); + memset(rtp_pkt->wan_eth_src,0xFF,ETH_ALEN); + rtp_pkt->wan_eth_proto=0x0008; + + /* fill in IP checksum */ + rtp_pkt->wan_ip_sum = 0; + rtp_pkt->wan_ip_sum = wan_calc_checksum(&data[sizeof(ethhdr_t)], sizeof(iphdr_t)); + + return len+sizeof(ethhdr_t); +} /* wan_ip_udp_setup */ + + /* ***************************************************************************** ** @@ -642,7 +704,7 @@ wanpipe_debugging_end: WAN_DEBUG_STOP(card); } return; -} +} /* ALEX_DEBUG */ void wan_debug_trigger(int flag) diff --git a/patches/kdrivers/src/wan_aften/wan_aften.c b/patches/kdrivers/src/wan_aften/wan_aften.c index d6dd42b..12d573c 100644 --- a/patches/kdrivers/src/wan_aften/wan_aften.c +++ b/patches/kdrivers/src/wan_aften/wan_aften.c @@ -276,8 +276,8 @@ static int wan_aften_shutdown(sdla_t *card) struct wan_aften_priv *priv = wan_netif_priv(dev); free_irq(priv->irq, card); #endif - if (card->hw_iface.down){ - card->hw_iface.down(card->hw); + if (card->hw_iface.hw_down){ + card->hw_iface.hw_down(card->hw); } sdla_unregister(&card->hw, card->devname); diff --git a/patches/kdrivers/src/wan_aften/wan_aften_src.o b/patches/kdrivers/src/wan_aften/wan_aften_src.o index 9e47b7b..218008d 100644 Binary files a/patches/kdrivers/src/wan_aften/wan_aften_src.o and b/patches/kdrivers/src/wan_aften/wan_aften_src.o differ diff --git a/patches/kdrivers/src/wan_aften/wanpipe_linux_iface.c b/patches/kdrivers/src/wan_aften/wanpipe_linux_iface.c deleted file mode 120000 index 911c0fb..0000000 --- a/patches/kdrivers/src/wan_aften/wanpipe_linux_iface.c +++ /dev/null @@ -1 +0,0 @@ -../net/wanpipe_linux_iface.c \ No newline at end of file diff --git a/patches/kdrivers/src/wanrouter/.tmp_versions/af_wanpipe.mod b/patches/kdrivers/src/wanrouter/.tmp_versions/af_wanpipe.mod deleted file mode 100644 index 48a58f2..0000000 --- a/patches/kdrivers/src/wanrouter/.tmp_versions/af_wanpipe.mod +++ /dev/null @@ -1,2 +0,0 @@ -/hda5/wanpipe/2.3.4/wanpipe/patches/kdrivers/src/wanrouter/af_wanpipe.ko -/hda5/wanpipe/2.3.4/wanpipe/patches/kdrivers/src/wanrouter/af_wanpipe_src.o /hda5/wanpipe/2.3.4/wanpipe/patches/kdrivers/src/wanrouter/af_wanpipe_datascope.o diff --git a/patches/kdrivers/src/wanrouter/.tmp_versions/wanrouter.mod b/patches/kdrivers/src/wanrouter/.tmp_versions/wanrouter.mod deleted file mode 100644 index d568751..0000000 --- a/patches/kdrivers/src/wanrouter/.tmp_versions/wanrouter.mod +++ /dev/null @@ -1,2 +0,0 @@ -/hda5/wanpipe/2.3.4/wanpipe/patches/kdrivers/src/wanrouter/wanrouter.ko -/hda5/wanpipe/2.3.4/wanpipe/patches/kdrivers/src/wanrouter/wanmain.o /hda5/wanpipe/2.3.4/wanpipe/patches/kdrivers/src/wanrouter/wanproc.o /hda5/wanpipe/2.3.4/wanpipe/patches/kdrivers/src/wanrouter/waniface.o diff --git a/patches/kdrivers/src/wanrouter/Makefile b/patches/kdrivers/src/wanrouter/Makefile index 66e3f1f..30ca385 100644 --- a/patches/kdrivers/src/wanrouter/Makefile +++ b/patches/kdrivers/src/wanrouter/Makefile @@ -2,15 +2,13 @@ # Makefile for the Linux network (wan) device drivers. # -WAN_MODULES= wanrouter.o af_wanpipe.o - EXTRA_CFLAGS=$(EXTRA_FLAGS) PRODUCT_DEFINES = -DCONFIG_PRODUCT_WANPIPE_BASE -DCONFIG_PRODUCT_WANPIPE_PPP -DCONFIG_PRODUCT_WANPIPE_AFT -DCONFIG_PRODUCT_WANPIPE_AFT_TE1 -DCONFIG_PRODUCT_WANPIPE_AFT_TE3 -DCONFIG_PRODUCT_WANPIPE_ANNEXG -DCONFIG_WANPIPE_HWEC -DCONFIG_PRODUCT_WANPIPE_SOCK_DATASCOPE -DCONFIG_PRODUCT_WANPIPE_ANNEXG -wanrouter-objs := wanmain.o wanproc.o waniface.o +wanrouter-objs := wanmain.o common/wanproc.o waniface.o af_wanpipe-objs := af_wanpipe_src.o af_wanpipe_datascope.o -obj-m += $(WAN_MODULES) +obj-m += wanrouter.o af_wanpipe.o diff --git a/patches/kdrivers/src/wanrouter/Makefile~ b/patches/kdrivers/src/wanrouter/Makefile~ new file mode 100644 index 0000000..929475d --- /dev/null +++ b/patches/kdrivers/src/wanrouter/Makefile~ @@ -0,0 +1,16 @@ +# +# Makefile for the Linux network (wan) device drivers. +# + + +EXTRA_CFLAGS=$(EXTRA_FLAGS) +PRODUCT_DEFINES = -DCONFIG_PRODUCT_WANPIPE_BASE -DCONFIG_PRODUCT_WANPIPE_PPP -DCONFIG_PRODUCT_WANPIPE_AFT -DCONFIG_PRODUCT_WANPIPE_AFT_TE1 -DCONFIG_PRODUCT_WANPIPE_AFT_TE3 -DCONFIG_PRODUCT_WANPIPE_ANNEXG -DCONFIG_WANPIPE_HWEC -DCONFIG_PRODUCT_WANPIPE_SOCK_DATASCOPE -DCONFIG_PRODUCT_WANPIPE_ANNEXG + +wanrouter-objs := wanmain.o common/wanproc.o waniface.o + +af_wanpipe-objs := af_wanpipe_src.o af_wanpipe_datascope.o + +wan_aften-objs := wan_aften_src.o wanpipe_linux_iface.o + +obj-m += wanrouter.o af_wanpipe.o wan_aften.o + diff --git a/patches/kdrivers/src/wanrouter/af_wanpipe.c b/patches/kdrivers/src/wanrouter/af_wanpipe.c index afc8a9d..7b117c5 100644 --- a/patches/kdrivers/src/wanrouter/af_wanpipe.c +++ b/patches/kdrivers/src/wanrouter/af_wanpipe.c @@ -2065,11 +2065,11 @@ int __init af_wanpipe_init(void) struct wanpipe_api_register_struct wan_api_reg; if (WANPIPE_VERSION_BETA){ - DEBUG_EVENT("%s Beta%s-%s %s %s\n", - fullname, WANPIPE_SUB_VERSION, WANPIPE_VERSION, + DEBUG_EVENT("%s Beta %s.%s %s %s\n", + fullname, WANPIPE_VERSION, WANPIPE_SUB_VERSION, WANPIPE_COPYRIGHT_DATES, WANPIPE_COMPANY); }else{ - DEBUG_EVENT("%s Stable %s-%s %s %s\n", + DEBUG_EVENT("%s Stable %s.%s %s %s\n", fullname, WANPIPE_VERSION, WANPIPE_SUB_VERSION, WANPIPE_COPYRIGHT_DATES, WANPIPE_COMPANY); } diff --git a/patches/kdrivers/src/wanrouter/af_wanpipe.mod.c b/patches/kdrivers/src/wanrouter/af_wanpipe.mod.c deleted file mode 100644 index bcfca0e..0000000 --- a/patches/kdrivers/src/wanrouter/af_wanpipe.mod.c +++ /dev/null @@ -1,85 +0,0 @@ -#include -#include -#include - -MODULE_INFO(vermagic, VERMAGIC_STRING); - -#undef unix -struct module __this_module -__attribute__((section(".gnu.linkonce.this_module"))) = { - .name = __stringify(KBUILD_MODNAME), - .init = init_module, -#ifdef CONFIG_MODULE_UNLOAD - .exit = cleanup_module, -#endif -}; - -static const struct modversion_info ____versions[] -__attribute_used__ -__attribute__((section("__versions"))) = { - { 0x44d7b32c, "struct_module" }, - { 0xffc7ace6, "_write_unlock_irqrestore" }, - { 0xe07434f4, "security_ops" }, - { 0x81b6c38b, "sock_init_data" }, - { 0xd890c09e, "__kfree_skb" }, - { 0x5c69e2a7, "_read_lock" }, - { 0x75e1db7c, "sock_no_setsockopt" }, - { 0xe56b032c, "sock_no_getsockopt" }, - { 0x1192e363, "malloc_sizes" }, - { 0xc9cd3f05, "remove_wait_queue" }, - { 0xb06e7659, "_write_lock_irqsave" }, - { 0x60ea5fe7, "__tasklet_hi_schedule" }, - { 0x3d124271, "dev_get_by_name" }, - { 0xb9e5ab27, "_spin_lock" }, - { 0x63ecad53, "register_netdevice_notifier" }, - { 0x87a02e40, "skb_recv_datagram" }, - { 0xd8c152cd, "raise_softirq_irqoff" }, - { 0x1836387f, "sock_rfree" }, - { 0xfe769456, "unregister_netdevice_notifier" }, - { 0x2b3e91, "default_wake_function" }, - { 0x3b5e3979, "bind_api_listen_to_protocol" }, - { 0x56bc0cc2, "skb_queue_purge" }, - { 0x94de6227, "sock_no_socketpair" }, - { 0x3e568f89, "bind_api_to_protocol" }, - { 0x3b604364, "unbind_api_listen_from_protocol" }, - { 0xf393de3, "sk_alloc" }, - { 0x1b7d4074, "printk" }, - { 0xe59198f0, "alloc_skb" }, - { 0xf75aebe3, "sk_free" }, - { 0x9a4f9166, "dev_get_by_index" }, - { 0xa5808bbf, "tasklet_init" }, - { 0xec15a2f2, "_spin_unlock" }, - { 0xf5fd2776, "sock_no_shutdown" }, - { 0x79ad224b, "tasklet_kill" }, - { 0xb382a803, "skb_over_panic" }, - { 0xebddcd44, "skb_queue_tail" }, - { 0xfc4a389d, "inet_dgram_ops" }, - { 0xc01b581d, "kmem_cache_alloc" }, - { 0x9ceb163c, "memcpy_toiovec" }, - { 0x3cc85731, "sock_register" }, - { 0x4292364c, "schedule" }, - { 0x45ed1ce4, "register_wanpipe_api_socket" }, - { 0x6b2dc060, "dump_stack" }, - { 0xf39bf4d9, "put_cmsg" }, - { 0x280f9f14, "__per_cpu_offset" }, - { 0xd8565995, "_read_unlock" }, - { 0xf6ebc03b, "net_ratelimit" }, - { 0x72270e35, "do_gettimeofday" }, - { 0xe861712c, "add_wait_queue" }, - { 0xe69083b7, "sk_run_filter" }, - { 0x37a0cba, "kfree" }, - { 0xdfa7e4f4, "___pskb_trim" }, - { 0x2394a062, "sock_unregister" }, - { 0x9fb3dd30, "memcpy_fromiovec" }, - { 0x42a02cdc, "skb_dequeue" }, - { 0x387c78a5, "dev_ioctl" }, - { 0x38eb6851, "unregister_wanpipe_api_socket" }, - { 0xd82ae2d6, "skb_free_datagram" }, - { 0xc19220e4, "per_cpu__softnet_data" }, -}; - -static const char __module_depends[] -__attribute_used__ -__attribute__((section(".modinfo"))) = -"depends=wanrouter"; - diff --git a/patches/kdrivers/src/wanrouter/af_wanpipe_datascope.o b/patches/kdrivers/src/wanrouter/af_wanpipe_datascope.o index 86cb5b9..db9e3d7 100644 Binary files a/patches/kdrivers/src/wanrouter/af_wanpipe_datascope.o and b/patches/kdrivers/src/wanrouter/af_wanpipe_datascope.o differ diff --git a/patches/kdrivers/src/wanrouter/af_wanpipe_src.o b/patches/kdrivers/src/wanrouter/af_wanpipe_src.o index 0105609..61441ea 100644 Binary files a/patches/kdrivers/src/wanrouter/af_wanpipe_src.o and b/patches/kdrivers/src/wanrouter/af_wanpipe_src.o differ diff --git a/patches/kdrivers/src/wanrouter/waniface.o b/patches/kdrivers/src/wanrouter/waniface.o index 92c7db8..4a66314 100644 Binary files a/patches/kdrivers/src/wanrouter/waniface.o and b/patches/kdrivers/src/wanrouter/waniface.o differ diff --git a/patches/kdrivers/src/wanrouter/wanmain.c b/patches/kdrivers/src/wanrouter/wanmain.c index 2dcb0e5..7575708 100644 --- a/patches/kdrivers/src/wanrouter/wanmain.c +++ b/patches/kdrivers/src/wanrouter/wanmain.c @@ -239,19 +239,19 @@ int __init wanrouter_init (void) { int err; - if (WANPIPE_VERSION_BETA){ - DEBUG_EVENT("%s Beta%s-%s %s %s\n", - fullname, WANPIPE_SUB_VERSION, WANPIPE_VERSION, - WANPIPE_COPYRIGHT_DATES,WANPIPE_COMPANY); - sprintf(wan_version,"Beta%s-%s", - WANPIPE_SUB_VERSION, WANPIPE_VERSION); - }else{ - DEBUG_EVENT("%s Stable %s-%s %s %s\n", - fullname, WANPIPE_VERSION, WANPIPE_SUB_VERSION, - WANPIPE_COPYRIGHT_DATES,WANPIPE_COMPANY); - sprintf(wan_version,"Stable %s-%s", - WANPIPE_VERSION, WANPIPE_SUB_VERSION); - } + if (WANPIPE_VERSION_BETA){ + DEBUG_EVENT("%s Beta %s.%s %s %s\n", + fullname, WANPIPE_VERSION, WANPIPE_SUB_VERSION, + WANPIPE_COPYRIGHT_DATES,WANPIPE_COMPANY); + sprintf(wan_version,"Beta %s.%s", + WANPIPE_VERSION, WANPIPE_SUB_VERSION); + }else{ + DEBUG_EVENT("%s Stable %s.%s %s %s\n", + fullname, WANPIPE_VERSION, WANPIPE_SUB_VERSION, + WANPIPE_COPYRIGHT_DATES,WANPIPE_COMPANY); + sprintf(wan_version,"Stable %s.%s", + WANPIPE_VERSION, WANPIPE_SUB_VERSION); + } WAN_LIST_INIT(&wan_devlist); wan_spin_lock_init(&wan_devlist_lock); @@ -1860,8 +1860,6 @@ static int wan_device_unreg_lip(netdevice_t *dev) void *lip_link = wan_get_lip_ptr(dev); int err; - if (!IS_PROTOCOL_FUNC(wplip_protocol)) return 0; - if (!IS_FUNC_CALL(wplip_protocol,wplip_if_unreg)) return 0; @@ -2003,8 +2001,6 @@ static int wan_device_del_if_lip(wan_device_t *wandev, netdevice_t *dev) return -EBUSY; } - if (!IS_PROTOCOL_FUNC(wplip_protocol)) return 0; - if (!IS_FUNC_CALL(wplip_protocol,wplip_if_unreg)) return 0; @@ -2035,8 +2031,6 @@ void unregister_wanec_iface (void) void *wanpipe_ec_register(void *pcard, int max_channels) { - if (!IS_PROTOCOL_FUNC(wanec_iface)) return NULL; - if (wanec_iface.reg){ return wanec_iface.reg(pcard, max_channels); } @@ -2044,7 +2038,6 @@ void *wanpipe_ec_register(void *pcard, int max_channels) } int wanpipe_ec_unregister(void *arg, void *pcard) { - if (!IS_PROTOCOL_FUNC(wanec_iface)) return 0; if (wanec_iface.unreg){ return wanec_iface.unreg(arg, pcard); } @@ -2053,7 +2046,6 @@ int wanpipe_ec_unregister(void *arg, void *pcard) int wanpipe_ec_event_ctrl(void *arg, void *pcard, wan_event_ctrl_t *event_ctrl) { - if (!IS_PROTOCOL_FUNC(wanec_iface)) return 0; if (wanec_iface.event_ctrl){ return wanec_iface.event_ctrl(arg, pcard, event_ctrl); } @@ -2062,7 +2054,6 @@ int wanpipe_ec_event_ctrl(void *arg, void *pcard, wan_event_ctrl_t *event_ctrl) int wanpipe_ec_isr(void *arg, void *pcard) { - if (!IS_PROTOCOL_FUNC(wanec_iface)) return 0; if (wanec_iface.isr){ return wanec_iface.isr(arg, pcard); } @@ -2071,7 +2062,6 @@ int wanpipe_ec_isr(void *arg, void *pcard) int wanpipe_ec_poll(void *arg, void *pcard) { - if (!IS_PROTOCOL_FUNC(wanec_iface)) return 0; if (wanec_iface.poll){ return wanec_iface.poll(arg, pcard); } diff --git a/patches/kdrivers/src/wanrouter/wanmain.o b/patches/kdrivers/src/wanrouter/wanmain.o index 05de9d7..2f710e6 100644 Binary files a/patches/kdrivers/src/wanrouter/wanmain.o and b/patches/kdrivers/src/wanrouter/wanmain.o differ diff --git a/patches/kdrivers/src/wanrouter/wanproc.c b/patches/kdrivers/src/wanrouter/wanproc.c index 13dba6a..7876bea 100644 --- a/patches/kdrivers/src/wanrouter/wanproc.c +++ b/patches/kdrivers/src/wanrouter/wanproc.c @@ -700,7 +700,9 @@ static int interfaces_get_info(char* buf, char** start, off_t offs, int len, int WAN_LIST_FOREACH(devle, &wandev->dev_head, dev_link){ dev = WAN_DEVLE2DEV(devle); - if (!dev || !(dev->flags&IFF_UP) || !wan_netif_priv(dev)){ + if (!dev || + !(wan_netif_flags(dev)&IFF_UP) || + !wan_netif_priv(dev)){ continue; } @@ -758,7 +760,7 @@ static int probe_get_info(char* buf, char** start, off_t offs, int len, int dumm hw_cnt=(sdla_hw_type_cnt_t*)sdla_get_hw_adptr_cnt(); PROC_ADD_LINE(m, - "\nCard Cnt: S508=%d S514X=%d S518=%d A101-2=%d A104=%d A300=%d A200=%d A108=%d A056=%d\n", + "\nCard Cnt: S508=%-2d S514X=%-2d S518=%-2d A101-2=%-2d A104=%-2d A300=%-2d A200=%-2d A108=%-2d\n", hw_cnt->s508_adapters, hw_cnt->s514x_adapters, hw_cnt->s518_adapters, @@ -766,10 +768,7 @@ static int probe_get_info(char* buf, char** start, off_t offs, int len, int dumm hw_cnt->aft104_adapters, hw_cnt->aft300_adapters, hw_cnt->aft200_adapters, - hw_cnt->aft108_adapters, - hw_cnt->aft_56k_adapters - ); - + hw_cnt->aft108_adapters); #ifdef WAN_DEBUG_MEM PROC_ADD_LINE(m, @@ -1467,8 +1466,8 @@ static ssize_t router_proc_read(struct file* file, char* buf, size_t count, if (count <= 0) return 0; - -#if defined(WANPIPE_USE_I_PRIVATE) + +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18) dent = inode->i_private; #else dent = inode->u.generic_ip; @@ -1522,9 +1521,8 @@ static ssize_t router_proc_write (struct file *file, const char *buf, size_t cou if (count <= 0) return 0; - - -#if defined(WANPIPE_USE_I_PRIVATE) + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18) dent = inode->i_private; #else dent = inode->u.generic_ip; @@ -1817,7 +1815,7 @@ static int device_write( if (err) return err; -#if defined(WANPIPE_USE_I_PRIVATE) +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18) dent = inode->i_private; #else dent = inode->u.generic_ip; diff --git a/patches/kdrivers/src/wanrouter/wanproc.o b/patches/kdrivers/src/wanrouter/wanproc.o index cf091e5..3b6638b 100644 Binary files a/patches/kdrivers/src/wanrouter/wanproc.o and b/patches/kdrivers/src/wanrouter/wanproc.o differ diff --git a/patches/kdrivers/src/wanrouter/wanrouter.mod.c b/patches/kdrivers/src/wanrouter/wanrouter.mod.c deleted file mode 100644 index 19aaeac..0000000 --- a/patches/kdrivers/src/wanrouter/wanrouter.mod.c +++ /dev/null @@ -1,62 +0,0 @@ -#include -#include -#include - -MODULE_INFO(vermagic, VERMAGIC_STRING); - -#undef unix -struct module __this_module -__attribute__((section(".gnu.linkonce.this_module"))) = { - .name = __stringify(KBUILD_MODNAME), - .init = init_module, -#ifdef CONFIG_MODULE_UNLOAD - .exit = cleanup_module, -#endif -}; - -static const struct modversion_info ____versions[] -__attribute_used__ -__attribute__((section("__versions"))) = { - { 0x44d7b32c, "struct_module" }, - { 0xd6ee688f, "vmalloc" }, - { 0x11dd8cd3, "single_open" }, - { 0xa9b25754, "single_release" }, - { 0x1192e363, "malloc_sizes" }, - { 0x3d124271, "dev_get_by_name" }, - { 0xb9e5ab27, "_spin_lock" }, - { 0x5b4eb2e4, "seq_printf" }, - { 0x9a3eea6f, "remove_proc_entry" }, - { 0x1e90531b, "alloc_netdev" }, - { 0x2fd1d81c, "vfree" }, - { 0x94208e84, "ip_rt_ioctl" }, - { 0x1d26aa98, "sprintf" }, - { 0x4fb44432, "in_dev_finish_destroy" }, - { 0x43edac59, "seq_read" }, - { 0xd7474566, "__copy_to_user_ll" }, - { 0x1af40e18, "__copy_from_user_ll" }, - { 0x69baa705, "proc_mkdir" }, - { 0x18cb22f, "proc_net" }, - { 0x1b7d4074, "printk" }, - { 0x71c90087, "memcmp" }, - { 0x869c80ea, "devinet_ioctl" }, - { 0xfbea4130, "free_netdev" }, - { 0xe580ae37, "register_netdev" }, - { 0x436006da, "call_usermodehelper" }, - { 0xec15a2f2, "_spin_unlock" }, - { 0x49e79940, "__cond_resched" }, - { 0x7dceceac, "capable" }, - { 0xc01b581d, "kmem_cache_alloc" }, - { 0x2347aa4f, "skb_under_panic" }, - { 0x9ac60d3a, "create_proc_entry" }, - { 0x6e0326ff, "seq_lseek" }, - { 0x37a0cba, "kfree" }, - { 0x2e60bace, "memcpy" }, - { 0xd80fb236, "unregister_netdev" }, - { 0xa78a714d, "seq_release" }, -}; - -static const char __module_depends[] -__attribute_used__ -__attribute__((section(".modinfo"))) = -"depends="; - diff --git a/patches/kdrivers/src/xmtp2km/bin/xmtp2km.gcc3.i386.o b/patches/kdrivers/src/xmtp2km/bin/xmtp2km.gcc3.i386.o index ea47b74..24b4883 100644 Binary files a/patches/kdrivers/src/xmtp2km/bin/xmtp2km.gcc3.i386.o and b/patches/kdrivers/src/xmtp2km/bin/xmtp2km.gcc3.i386.o differ diff --git a/patches/kdrivers/src/xmtp2km/bin/xmtp2km.gcc3.i386.regparm.o b/patches/kdrivers/src/xmtp2km/bin/xmtp2km.gcc3.i386.regparm.o index 8f11d2b..d942ff8 100644 Binary files a/patches/kdrivers/src/xmtp2km/bin/xmtp2km.gcc3.i386.regparm.o and b/patches/kdrivers/src/xmtp2km/bin/xmtp2km.gcc3.i386.regparm.o differ diff --git a/patches/kdrivers/src/xmtp2km/bin/xmtp2km.gcc3.i686.o b/patches/kdrivers/src/xmtp2km/bin/xmtp2km.gcc3.i686.o index 46a415a..b927958 100644 Binary files a/patches/kdrivers/src/xmtp2km/bin/xmtp2km.gcc3.i686.o and b/patches/kdrivers/src/xmtp2km/bin/xmtp2km.gcc3.i686.o differ diff --git a/patches/kdrivers/src/xmtp2km/bin/xmtp2km.gcc3.i686.regparm.o b/patches/kdrivers/src/xmtp2km/bin/xmtp2km.gcc3.i686.regparm.o index b3f4f7d..8e8a3e4 100644 Binary files a/patches/kdrivers/src/xmtp2km/bin/xmtp2km.gcc3.i686.regparm.o and b/patches/kdrivers/src/xmtp2km/bin/xmtp2km.gcc3.i686.regparm.o differ diff --git a/patches/kdrivers/src/xmtp2km/main2_6.c b/patches/kdrivers/src/xmtp2km/main2_6.c index fce1b8c..46b5c76 100644 --- a/patches/kdrivers/src/xmtp2km/main2_6.c +++ b/patches/kdrivers/src/xmtp2km/main2_6.c @@ -186,7 +186,6 @@ int xmtp2km_ioctl(struct inode *inode, struct file *filp, ret = xmtp2km_ioctl_pwr_on (cmd, arg); break; case XMTP2KM_IOCS_EMERGENCY: - case XMTP2KM_IOCS_EMERGENCY_CEASES: //printk ("%s ptr %u size %u\n", __FUNCTION__, (unsigned int)((void __user *)arg), _IOC_SIZE(cmd)); ret = xmtp2km_ioctl_emergency (cmd, arg); break; diff --git a/patches/kdrivers/src/xmtp2km/xmtp2km.h b/patches/kdrivers/src/xmtp2km/xmtp2km.h index 9a915eb..add9fd5 100644 --- a/patches/kdrivers/src/xmtp2km/xmtp2km.h +++ b/patches/kdrivers/src/xmtp2km/xmtp2km.h @@ -44,15 +44,14 @@ #define XMTP2KM_IOCS_OPSPARMS _IOW (XMTP2KM_IOC_MAGIC, 2, uint8_t *) #define XMTP2KM_IOCS_PWR_ON _IOW (XMTP2KM_IOC_MAGIC, 3, uint8_t *) #define XMTP2KM_IOCS_EMERGENCY _IOW (XMTP2KM_IOC_MAGIC, 4, uint8_t *) -#define XMTP2KM_IOCS_EMERGENCY_CEASES _IOW (XMTP2KM_IOC_MAGIC, 5, uint8_t *) -#define XMTP2KM_IOCS_STARTLINK _IOW (XMTP2KM_IOC_MAGIC, 6, uint8_t *) -#define XMTP2KM_IOCG_GETMSU _IOR (XMTP2KM_IOC_MAGIC, 7, uint8_t *) -#define XMTP2KM_IOCS_PUTMSU _IOW (XMTP2KM_IOC_MAGIC, 8, uint8_t *) -#define XMTP2KM_IOCX_GETTBQ _IOWR(XMTP2KM_IOC_MAGIC, 9, uint8_t *) -#define XMTP2KM_IOCS_LNKRCVY _IOW (XMTP2KM_IOC_MAGIC, 10, uint32_t) -#define XMTP2KM_IOCX_GETBSNT _IOWR(XMTP2KM_IOC_MAGIC, 11, uint8_t *) -#define XMTP2KM_IOCS_STOPLINK _IOW (XMTP2KM_IOC_MAGIC, 12, uint8_t *) -#define XMTP2KM_IOCG_GETOPM _IOR (XMTP2KM_IOC_MAGIC, 13, uint8_t *) +#define XMTP2KM_IOCS_STARTLINK _IOW (XMTP2KM_IOC_MAGIC, 5, uint8_t *) +#define XMTP2KM_IOCG_GETMSU _IOR (XMTP2KM_IOC_MAGIC, 6, uint8_t *) +#define XMTP2KM_IOCS_PUTMSU _IOW (XMTP2KM_IOC_MAGIC, 7, uint8_t *) +#define XMTP2KM_IOCX_GETTBQ _IOWR(XMTP2KM_IOC_MAGIC, 8, uint8_t *) +#define XMTP2KM_IOCS_LNKRCVY _IOW (XMTP2KM_IOC_MAGIC, 9, uint32_t) +#define XMTP2KM_IOCX_GETBSNT _IOWR(XMTP2KM_IOC_MAGIC, 10, uint8_t *) +#define XMTP2KM_IOCS_STOPLINK _IOW (XMTP2KM_IOC_MAGIC, 11, uint8_t *) +#define XMTP2KM_IOCG_GETOPM _IOR (XMTP2KM_IOC_MAGIC, 12, uint8_t *) /* * The other entities only have "Tell" and "Query", because they're diff --git a/patches/kdrivers/wanec/.tmp_versions/wanec.mod b/patches/kdrivers/wanec/.tmp_versions/wanec.mod index 752be3c..f2f50ba 100644 --- a/patches/kdrivers/wanec/.tmp_versions/wanec.mod +++ b/patches/kdrivers/wanec/.tmp_versions/wanec.mod @@ -1,2 +1,2 @@ -/root/development/2.3.4/wanpipe-2.3.4-15/patches/kdrivers/wanec/wanec.ko -/root/development/2.3.4/wanpipe-2.3.4-15/patches/kdrivers/wanec/wanec_iface.o /root/development/2.3.4/wanpipe-2.3.4-15/patches/kdrivers/wanec/wanec_cmd.o /root/development/2.3.4/wanpipe-2.3.4-15/patches/kdrivers/wanec/wanec_utils.o /root/development/2.3.4/wanpipe-2.3.4-15/patches/kdrivers/wanec/wanec_dev.o /root/development/2.3.4/wanpipe-2.3.4-15/patches/kdrivers/wanec/oct6100_api/apilib/bt/octapi_bt0.o /root/development/2.3.4/wanpipe-2.3.4-15/patches/kdrivers/wanec/oct6100_api/apilib/largmath/octapi_largmath.o /root/development/2.3.4/wanpipe-2.3.4-15/patches/kdrivers/wanec/oct6100_api/apilib/llman/octapi_llman.o /root/development/2.3.4/wanpipe-2.3.4-15/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_apimi/oct6100_mask_interrupts.o /root/development/2.3.4/wanpipe-2.3.4-15/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_adpcm_chan.o /root/development/2.3.4/wanpipe-2.3.4-15/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.o /root/development/2.3.4/wanpipe-2.3.4-15/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_open.o /root/development/2.3.4/wanpipe-2.3.4-15/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_stats.o /root/development/2.3.4/wanpipe-2.3.4-15/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_conf_bridge.o /root/development/2.3.4/wanpipe-2.3.4-15/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_debug.o /root/development/2.3.4/wanpipe-2.3.4-15/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_events.o /root/development/2.3.4/wanpipe-2.3.4-15/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_interrupts.o /root/development/2.3.4/wanpipe-2.3.4-15/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_memory.o /root/development/2.3.4/wanpipe-2.3.4-15/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_miscellaneous.o /root/development/2.3.4/wanpipe-2.3.4-15/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_mixer.o /root/development/2.3.4/wanpipe-2.3.4-15/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_phasing_tsst.o /root/development/2.3.4/wanpipe-2.3.4-15/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_playout_buf.o /root/development/2.3.4/wanpipe-2.3.4-15/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_remote_debug.o /root/development/2.3.4/wanpipe-2.3.4-15/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_tlv.o /root/development/2.3.4/wanpipe-2.3.4-15/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_tone_detection.o /root/development/2.3.4/wanpipe-2.3.4-15/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_tsi_cnct.o /root/development/2.3.4/wanpipe-2.3.4-15/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_tsst.o /root/development/2.3.4/wanpipe-2.3.4-15/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_user.o +/hda5/wanpipe/3.1.X/wanpipe-3.1.0/patches/kdrivers/wanec/wanec.ko +/hda5/wanpipe/3.1.X/wanpipe-3.1.0/patches/kdrivers/wanec/wanec_iface.o /hda5/wanpipe/3.1.X/wanpipe-3.1.0/patches/kdrivers/wanec/wanec_cmd.o /hda5/wanpipe/3.1.X/wanpipe-3.1.0/patches/kdrivers/wanec/wanec_utils.o /hda5/wanpipe/3.1.X/wanpipe-3.1.0/patches/kdrivers/wanec/wanec_dev.o /hda5/wanpipe/3.1.X/wanpipe-3.1.0/patches/kdrivers/wanec/oct6100_api/apilib/bt/octapi_bt0.o /hda5/wanpipe/3.1.X/wanpipe-3.1.0/patches/kdrivers/wanec/oct6100_api/apilib/largmath/octapi_largmath.o /hda5/wanpipe/3.1.X/wanpipe-3.1.0/patches/kdrivers/wanec/oct6100_api/apilib/llman/octapi_llman.o /hda5/wanpipe/3.1.X/wanpipe-3.1.0/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_apimi/oct6100_mask_interrupts.o /hda5/wanpipe/3.1.X/wanpipe-3.1.0/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_adpcm_chan.o /hda5/wanpipe/3.1.X/wanpipe-3.1.0/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.o /hda5/wanpipe/3.1.X/wanpipe-3.1.0/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_open.o /hda5/wanpipe/3.1.X/wanpipe-3.1.0/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_stats.o /hda5/wanpipe/3.1.X/wanpipe-3.1.0/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_conf_bridge.o /hda5/wanpipe/3.1.X/wanpipe-3.1.0/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_debug.o /hda5/wanpipe/3.1.X/wanpipe-3.1.0/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_events.o /hda5/wanpipe/3.1.X/wanpipe-3.1.0/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_interrupts.o /hda5/wanpipe/3.1.X/wanpipe-3.1.0/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_memory.o /hda5/wanpipe/3.1.X/wanpipe-3.1.0/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_miscellaneous.o /hda5/wanpipe/3.1.X/wanpipe-3.1.0/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_mixer.o /hda5/wanpipe/3.1.X/wanpipe-3.1.0/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_phasing_tsst.o /hda5/wanpipe/3.1.X/wanpipe-3.1.0/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_playout_buf.o /hda5/wanpipe/3.1.X/wanpipe-3.1.0/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_remote_debug.o /hda5/wanpipe/3.1.X/wanpipe-3.1.0/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_tlv.o /hda5/wanpipe/3.1.X/wanpipe-3.1.0/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_tone_detection.o /hda5/wanpipe/3.1.X/wanpipe-3.1.0/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_tsi_cnct.o /hda5/wanpipe/3.1.X/wanpipe-3.1.0/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_tsst.o /hda5/wanpipe/3.1.X/wanpipe-3.1.0/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_user.o diff --git a/patches/kdrivers/wanec/Makefile b/patches/kdrivers/wanec/Makefile deleted file mode 120000 index 59a1ede..0000000 --- a/patches/kdrivers/wanec/Makefile +++ /dev/null @@ -1 +0,0 @@ -Makefile.Kbuild.Linux \ No newline at end of file diff --git a/patches/kdrivers/wanec/Makefile b/patches/kdrivers/wanec/Makefile new file mode 100644 index 0000000..8a77357 --- /dev/null +++ b/patches/kdrivers/wanec/Makefile @@ -0,0 +1,55 @@ +# Makefile for hello world kernel 2.6 module. -*-makefile-*- +# +# Copyright (C) 2004 Joachim Nilsson +# +# Licensed under the GNU General Public License, v2.0 or later, +# at your option. See the file COPYING for details, or the web +# page http://www.gnu.org/copyleft/gpl.html +# + +OBJS = +MODULE_NAME = +EXTRA_CFLAGS = +KDIR = +$(MODULE_NAME)-objs = $(OBJS) + +RM = @rm -rf +JUNK = *~ *.bak DEADJOE + + +# First pass, kernel Makefile reads module objects +ifneq ($(KERNELRELEASE),) +obj-m := $(MODULE_NAME).o + + +# Second pass, the actual build. +else +KVER ?= $(shell uname -r) +PWD := $(shell pwd) +KBUILD_VERBOSE= + +all: + $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) CC=$(CC) KBUILD_VERBOSE=$(KBUILD_VERBOSE) modules + +clean: + $(shell find . -name '*.*o' | xargs rm) + $(shell find . -name '.*.o.cmd' | xargs rm) + $(shell rm -f build.sh) + $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean + +distclean: clean + $(RM) $(JUNK) $(OBJS) + +help: + $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) help + + +# Indents the kernel source the way linux/Documentation/CodingStyle.txt +# wants it to be. +indent: + indent -kr -i8 $($(MODULE_NAME)-objs:.o=.c) + +install: + $(MAKE) -C $(KDIR) M=$(PWD) modules_install + +endif diff --git a/patches/kdrivers/wanec/Makefile.FreeBSD b/patches/kdrivers/wanec/Makefile.FreeBSD deleted file mode 100755 index 707456f..0000000 --- a/patches/kdrivers/wanec/Makefile.FreeBSD +++ /dev/null @@ -1,33 +0,0 @@ -# ============================================================================ -# Makefile WAN Echo Canceler Chip configurator. Make Script. -# -# Copyright (c) 1995-1997 Sangoma Technologies Inc. All Rights Reserved. -# ---------------------------------------------------------------------------- -# Augc 25, 2005 Alex Feldman Initial version. -# ============================================================================ - -####### DEFINES ############################################################## - -# Build Options. -BTDIR = ${.CURDIR}/oct6100_api/apilib/bt -LARGMATHDIR = ${.CURDIR}/oct6100_api/apilib/largmath -LLMANDIR = ${.CURDIR}/oct6100_api/apilib/llman -OCTAPIDIR = ${.CURDIR}/oct6100_api/octdeviceapi/oct6100api/oct6100_api -OCTAPIMIDIR = ${.CURDIR}/oct6100_api/octdeviceapi/oct6100api/oct6100_apimi -.PATH: ${BTDIR} ${LARGEMATHDIR} ${LLMANDIR} ${OCTAPIDIR} ${OCTAPIMIDIR} - -# Project File Paths. -KLDMOD = true -KMOD = wanec -DESTDIR = / -KMODDIR = /boot/modules -MODULE_DEPEND = wanrouter -SRCS = wanec_iface.c wanec_cmd.c wanec_utils.c wanec_dev.c octapi_bt0.c octapi_largmath.c octapi_llman.c oct6100_mask_interrupts.c oct6100_adpcm_chan.c oct6100_channel.c oct6100_chip_open.c oct6100_chip_stats.c oct6100_conf_bridge.c oct6100_debug.c oct6100_events.c oct6100_interrupts.c oct6100_memory.c oct6100_miscellaneous.c oct6100_mixer.c oct6100_phasing_tsst.c oct6100_playout_buf.c oct6100_remote_debug.c oct6100_tlv.c oct6100_tone_detection.c oct6100_tsi_cnct.c oct6100_tsst.c -CFLAGS += -I. -Ioct6100_api -Ioct6100_api/include \ - -Ioct6100_api/include -Ioct6100_api/include/apilib \ - -Ioct6100_api/include/apilib -Ioct6100_api/include/octrpc \ - -Ioct6100_api/include/oct6100api \ - -Ioct6100_api/octdeviceapi/oct6100api -DWAN_OCT6100_MOD -CFLAGS += -DENABLE_TONE_PLAY - -.include diff --git a/patches/kdrivers/wanec/Makefile.Kbuild.Linux b/patches/kdrivers/wanec/Makefile.Kbuild.Linux deleted file mode 100644 index 8a77357..0000000 --- a/patches/kdrivers/wanec/Makefile.Kbuild.Linux +++ /dev/null @@ -1,55 +0,0 @@ -# Makefile for hello world kernel 2.6 module. -*-makefile-*- -# -# Copyright (C) 2004 Joachim Nilsson -# -# Licensed under the GNU General Public License, v2.0 or later, -# at your option. See the file COPYING for details, or the web -# page http://www.gnu.org/copyleft/gpl.html -# - -OBJS = -MODULE_NAME = -EXTRA_CFLAGS = -KDIR = -$(MODULE_NAME)-objs = $(OBJS) - -RM = @rm -rf -JUNK = *~ *.bak DEADJOE - - -# First pass, kernel Makefile reads module objects -ifneq ($(KERNELRELEASE),) -obj-m := $(MODULE_NAME).o - - -# Second pass, the actual build. -else -KVER ?= $(shell uname -r) -PWD := $(shell pwd) -KBUILD_VERBOSE= - -all: - $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) CC=$(CC) KBUILD_VERBOSE=$(KBUILD_VERBOSE) modules - -clean: - $(shell find . -name '*.*o' | xargs rm) - $(shell find . -name '.*.o.cmd' | xargs rm) - $(shell rm -f build.sh) - $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean - -distclean: clean - $(RM) $(JUNK) $(OBJS) - -help: - $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) help - - -# Indents the kernel source the way linux/Documentation/CodingStyle.txt -# wants it to be. -indent: - indent -kr -i8 $($(MODULE_NAME)-objs:.o=.c) - -install: - $(MAKE) -C $(KDIR) M=$(PWD) modules_install - -endif diff --git a/patches/kdrivers/wanec/Makefile.Linux b/patches/kdrivers/wanec/Makefile.Linux deleted file mode 100644 index 29de0ff..0000000 --- a/patches/kdrivers/wanec/Makefile.Linux +++ /dev/null @@ -1,226 +0,0 @@ -# ============================================================================ -# Makefile Multiprotocol WAN Router for Linux. Make Script. -# -# Copyright (c) 1995-1997 Sangoma Technologies Inc. All Rights Reserved. -# ---------------------------------------------------------------------------- -# Mar 27 2000 Nenad Corbic Version 2.0.5 to 2.1.2 -# Jan 07, 1999 Jaspreet Singh Version 2.0.4 -# Aug 25, 1998 Jaspreet Singh Version 2.0.3 -# Nov 06, 1997 Jaspreet Singh Version 2.0.0 -# Jul 28, 1997 Jaspreet Singh Version 1.0.5 -# Jul 10, 1997 Jaspreet Singh Version 1.0.4 -# June 3, 1997 Jaspreet Singh Version 1.0.3 -# Jan 15, 1997 Gene Kozin Version 1.0.1. -# Dec 31, 1996 Gene Kozin Initial version. -# ============================================================================ - -####### DEFINES ############################################################## - -ARCH=$(shell uname -m) - -OUTDIR = mod -TMPDIR = tmp -MODDIR = modinfo - -KERN := $(shell grep 2.4 /usr/src/linux/include/linux/version.h) -KERN_V26 := $(shell grep 2.6 /usr/src/linux/include/linux/version.h) - -BTDIR = oct6100_api/apilib/bt -LARGMATHDIR = oct6100_api/apilib/largmath -LLMANDIR = oct6100_api/apilib/llman -OCTAPIDIR = oct6100_api/octdeviceapi/oct6100api/oct6100_api -OCTAPIMIDIR = oct6100_api/octdeviceapi/oct6100api/oct6100_apimi - -ifneq "${KERN}" "" - -MODTYPE=o -K_WAN_DIR=drivers/net/wan - -else - -ifneq "${KERN_V26}" "" - -ifeq "${ARCH}" "x86_64" -#LDFLAGS=-m elf_x86_64 -LD_ELF=-m elf_x86_64 -else -#LDFLAGS=-m elf_i386 -LD_ELF=-m elf_i386 -endif - - -MODTYPE=ko -K_WAN_DIR=drivers/net/wan - -else - -MODTYPE=o -K_WAN_DIR=drivers/net - -endif - -endif - -CFLAGS = $(shell cat /wanpipe/GCFLAGS) -CFLAGS += -I. -Ioct6100_api -Ioct6100_api/include \ - -Ioct6100_api/include -Ioct6100_api/include/apilib \ - -Ioct6100_api/include/apilib -Ioct6100_api/include/octrpc \ - -Ioct6100_api/include/oct6100api \ - -Ioct6100_api/octdeviceapi/oct6100api - -CFLAGS += -DENABLE_TONE_PLAY -I/usr/include/wanpipe - -#CFLAGS=-Wp,-MD,.wanpipe_lip.o.d -nostdinc -iwithprefix include -D__KERNEL__ -D__LINUX__ -Iinclude -I/usr/src/linux/include -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=$(ARCH) -I/usr/src/linux/include/asm-i386/mach-default -O2 -DWANLIP_DRIVER -DMODULE - -#CFLAGS+= -DCONFIG_PRODUCT_WANPIPE_FR -DCONFIG_PRODUCT_WANPIPE_CHDLC -DCONFIG_PRODUCT_WANPIPE_PPP -DCONFIG_PRODUCT_WANPIPE_XDLC -DCONFIG_PRODUCT_WANPIPE_LAPB -DCONFIG_PRODUCT_WANPIPE_XMTP2 - -####### RULES ################################################################ - -all: $(OUTDIR)/wanec.$(MODTYPE) - @echo "Ok." - -$(OUTDIR)/wanec.ko: $(OUTDIR)/wanec.o $(MODDIR)/wanec.mod.o - ld $(LD_ELF) -r -o $@ $^ - chmod 664 $@ - -$(MODDIR)/wanec.mod.o: $(MODDIR)/wanec.mod.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=wanec -DKBUILD_MODNAME=wanec -c -o $@ $^ - chmod 664 $@ - -#---------------------------------------------------- - -$(OUTDIR)/wanec.o: $(TMPDIR)/wanec_iface.o $(TMPDIR)/wanec_cmd.o $(TMPDIR)/wanec_utils.o $(TMPDIR)/wanec_dev.o $(TMPDIR)/octapi_bt0.o $(TMPDIR)/octapi_largmath.o $(TMPDIR)/octapi_llman.o $(TMPDIR)/oct6100_mask_interrupts.o $(TMPDIR)/oct6100_adpcm_chan.o $(TMPDIR)/oct6100_channel.o $(TMPDIR)/oct6100_chip_open.o $(TMPDIR)/oct6100_chip_stats.o $(TMPDIR)/oct6100_conf_bridge.o $(TMPDIR)/oct6100_debug.o $(TMPDIR)/oct6100_events.o $(TMPDIR)/oct6100_interrupts.o $(TMPDIR)/oct6100_memory.o $(TMPDIR)/oct6100_miscellaneous.o $(TMPDIR)/oct6100_mixer.o $(TMPDIR)/oct6100_phasing_tsst.o $(TMPDIR)/oct6100_playout_buf.o $(TMPDIR)/oct6100_remote_debug.o $(TMPDIR)/oct6100_tlv.o $(TMPDIR)/oct6100_tone_detection.o $(TMPDIR)/oct6100_tsi_cnct.o $(TMPDIR)/oct6100_tsst.o $(TMPDIR)/oct6100_user.o - ld $(LD_ELF) -r -o $@ $^ - chmod 664 $@ - - -#----------------------------------------------------- - -$(TMPDIR)/wanec_main.o: wanec_main.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=wanec_main -DKBUILD_MODNAME=wanec -c -o $@ $^ - chmod 664 $@ - -$(TMPDIR)/wanec_iface.o: wanec_iface.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=wanec_iface -DKBUILD_MODNAME=wanec -c -o $@ $^ - chmod 664 $@ - -$(TMPDIR)/wanec_cmd.o: wanec_cmd.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=wanec_cmd -DKBUILD_MODNAME=wanec -c -o $@ $^ - chmod 664 $@ - -$(TMPDIR)/wanec_utils.o: wanec_utils.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=wanec_utils -DKBUILD_MODNAME=wanec -c -o $@ $^ - chmod 664 $@ - -$(TMPDIR)/wanec_dev.o: wanec_dev.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=wanec_dev -DKBUILD_MODNAME=wanec -c -o $@ $^ - chmod 664 $@ - -$(TMPDIR)/octapi_bt0.o: $(BTDIR)/octapi_bt0.c - $(CC) $(CFLAGS) -I$(BT) -DKBUILD_BASENAME=octapi_bt0 -DKBUILD_MODNAME=wanec -c -o $@ $^ - chmod 664 $@ - -$(TMPDIR)/octapi_largmath.o: $(LARGMATHDIR)/octapi_largmath.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=octapi_largmath -DKBUILD_MODNAME=wanec -c -o $@ $^ - chmod 664 $@ - -$(TMPDIR)/octapi_llman.o: $(LLMANDIR)/octapi_llman.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=octapi_llman -DKBUILD_MODNAME=wanec -c -o $@ $^ - chmod 664 $@ - -$(TMPDIR)/oct6100_mask_interrupts.o: $(OCTAPIMIDIR)/oct6100_mask_interrupts.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=oct6100_mask_interrupts -DKBUILD_MODNAME=wanec -c -o $@ $^ - chmod 664 $@ - -$(TMPDIR)/oct6100_adpcm_chan.o: $(OCTAPIDIR)/oct6100_adpcm_chan.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=oct6100_adpcm_chan -DKBUILD_MODNAME=wanec -c -o $@ $^ - chmod 664 $@ - -$(TMPDIR)/oct6100_channel.o: $(OCTAPIDIR)/oct6100_channel.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=oct6100_channel -DKBUILD_MODNAME=wanec -c -o $@ $^ - chmod 664 $@ - -$(TMPDIR)/oct6100_chip_open.o: $(OCTAPIDIR)/oct6100_chip_open.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=oct6100_chip_open -DKBUILD_MODNAME=wanec -c -o $@ $^ - chmod 664 $@ - -$(TMPDIR)/oct6100_chip_stats.o: $(OCTAPIDIR)/oct6100_chip_stats.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=oct6100_chip_stats -DKBUILD_MODNAME=wanec -c -o $@ $^ - chmod 664 $@ - -$(TMPDIR)/oct6100_conf_bridge.o: $(OCTAPIDIR)/oct6100_conf_bridge.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=oct6100_conf_bridge -DKBUILD_MODNAME=wanec -c -o $@ $^ - chmod 664 $@ - -$(TMPDIR)/oct6100_debug.o: $(OCTAPIDIR)/oct6100_debug.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=oct6100_debug -DKBUILD_MODNAME=wanec -c -o $@ $^ - chmod 664 $@ - -$(TMPDIR)/oct6100_events.o: $(OCTAPIDIR)/oct6100_events.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=oct6100_events -DKBUILD_MODNAME=wanec -c -o $@ $^ - chmod 664 $@ - -$(TMPDIR)/oct6100_interrupts.o: $(OCTAPIDIR)/oct6100_interrupts.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=oct6100_interrupts -DKBUILD_MODNAME=wanec -c -o $@ $^ - chmod 664 $@ - -$(TMPDIR)/oct6100_memory.o: $(OCTAPIDIR)/oct6100_memory.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=oct6100_memory -DKBUILD_MODNAME=wanec -c -o $@ $^ - chmod 664 $@ - -$(TMPDIR)/oct6100_miscellaneous.o: $(OCTAPIDIR)/oct6100_miscellaneous.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=oct6100_miscellaneous -DKBUILD_MODNAME=wanec -c -o $@ $^ - chmod 664 $@ - -$(TMPDIR)/oct6100_oct6100_debug.o: $(OCTAPIDIR)/oct6100_oct6100_debug.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=oct6100_oct6100_debug -DKBUILD_MODNAME=wanec -c -o $@ $^ - chmod 664 $@ - -$(TMPDIR)/oct6100_mixer.o: $(OCTAPIDIR)/oct6100_mixer.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=oct6100_mixer -DKBUILD_MODNAME=wanec -c -o $@ $^ - chmod 664 $@ - -$(TMPDIR)/oct6100_phasing_tsst.o: $(OCTAPIDIR)/oct6100_phasing_tsst.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=oct6100_phasing_tsst -DKBUILD_MODNAME=wanec -c -o $@ $^ - chmod 664 $@ - -$(TMPDIR)/oct6100_playout_buf.o: $(OCTAPIDIR)/oct6100_playout_buf.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=oct6100_playout_buf -DKBUILD_MODNAME=wanec -c -o $@ $^ - chmod 664 $@ - -$(TMPDIR)/oct6100_remote_debug.o: $(OCTAPIDIR)/oct6100_remote_debug.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=oct6100_remote_debug -DKBUILD_MODNAME=wanec -c -o $@ $^ - chmod 664 $@ - -$(TMPDIR)/oct6100_tlv.o: $(OCTAPIDIR)/oct6100_tlv.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=oct6100_tlv -DKBUILD_MODNAME=wanec -c -o $@ $^ - chmod 664 $@ - -$(TMPDIR)/oct6100_tone_detection.o: $(OCTAPIDIR)/oct6100_tone_detection.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=oct6100_tone_detection -DKBUILD_MODNAME=wanec -c -o $@ $^ - chmod 664 $@ - -$(TMPDIR)/oct6100_tsi_cnct.o: $(OCTAPIDIR)/oct6100_tsi_cnct.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=oct6100_tsi_cnt -DKBUILD_MODNAME=wanec -c -o $@ $^ - chmod 664 $@ - -$(TMPDIR)/oct6100_tsst.o: $(OCTAPIDIR)/oct6100_tsst.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=oct6100_tsst -DKBUILD_MODNAME=wanec -c -o $@ $^ - chmod 664 $@ - -$(TMPDIR)/oct6100_user.o: $(OCTAPIDIR)/oct6100_user.c - $(CC) $(CFLAGS) -DKBUILD_BASENAME=oct6100_user -DKBUILD_MODNAME=wanec -c -o $@ $^ - chmod 664 $@ - -clean: - rm -f wanec.$(MODTYPE) - rm -f *.o* - rm -f mod/*.*o - rm -f tmp/*.*o - rm -f modinfo/*.*o - -install: - install -D $(OUTDIR)/wanec.${MODTYPE} /lib/modules/$(shell uname -r)/kernel/net/wanrouter/wanec.${MODTYPE} - -uninstall: - rm -f /lib/modules/$(shell uname -r)/kernel/net/wanrouter/wanec.${MODTYPE} diff --git a/patches/kdrivers/wanec/Makefile.OpenBSD b/patches/kdrivers/wanec/Makefile.OpenBSD deleted file mode 100755 index 707456f..0000000 --- a/patches/kdrivers/wanec/Makefile.OpenBSD +++ /dev/null @@ -1,33 +0,0 @@ -# ============================================================================ -# Makefile WAN Echo Canceler Chip configurator. Make Script. -# -# Copyright (c) 1995-1997 Sangoma Technologies Inc. All Rights Reserved. -# ---------------------------------------------------------------------------- -# Augc 25, 2005 Alex Feldman Initial version. -# ============================================================================ - -####### DEFINES ############################################################## - -# Build Options. -BTDIR = ${.CURDIR}/oct6100_api/apilib/bt -LARGMATHDIR = ${.CURDIR}/oct6100_api/apilib/largmath -LLMANDIR = ${.CURDIR}/oct6100_api/apilib/llman -OCTAPIDIR = ${.CURDIR}/oct6100_api/octdeviceapi/oct6100api/oct6100_api -OCTAPIMIDIR = ${.CURDIR}/oct6100_api/octdeviceapi/oct6100api/oct6100_apimi -.PATH: ${BTDIR} ${LARGEMATHDIR} ${LLMANDIR} ${OCTAPIDIR} ${OCTAPIMIDIR} - -# Project File Paths. -KLDMOD = true -KMOD = wanec -DESTDIR = / -KMODDIR = /boot/modules -MODULE_DEPEND = wanrouter -SRCS = wanec_iface.c wanec_cmd.c wanec_utils.c wanec_dev.c octapi_bt0.c octapi_largmath.c octapi_llman.c oct6100_mask_interrupts.c oct6100_adpcm_chan.c oct6100_channel.c oct6100_chip_open.c oct6100_chip_stats.c oct6100_conf_bridge.c oct6100_debug.c oct6100_events.c oct6100_interrupts.c oct6100_memory.c oct6100_miscellaneous.c oct6100_mixer.c oct6100_phasing_tsst.c oct6100_playout_buf.c oct6100_remote_debug.c oct6100_tlv.c oct6100_tone_detection.c oct6100_tsi_cnct.c oct6100_tsst.c -CFLAGS += -I. -Ioct6100_api -Ioct6100_api/include \ - -Ioct6100_api/include -Ioct6100_api/include/apilib \ - -Ioct6100_api/include/apilib -Ioct6100_api/include/octrpc \ - -Ioct6100_api/include/oct6100api \ - -Ioct6100_api/octdeviceapi/oct6100api -DWAN_OCT6100_MOD -CFLAGS += -DENABLE_TONE_PLAY - -.include diff --git a/patches/kdrivers/wanec/Makefile.kernel b/patches/kdrivers/wanec/Makefile.kernel deleted file mode 100644 index d878568..0000000 --- a/patches/kdrivers/wanec/Makefile.kernel +++ /dev/null @@ -1,53 +0,0 @@ -# Makefile for hello world kernel 2.6 module. -*-makefile-*- -# -# Copyright (C) 2004 Joachim Nilsson -# -# Licensed under the GNU General Public License, v2.0 or later, -# at your option. See the file COPYING for details, or the web -# page http://www.gnu.org/copyleft/gpl.html -# - -OBJS = -MODULE_NAME = -EXTRA_CFLAGS = -KDIR = -$(MODULE_NAME)-objs = $(OBJS) - -RM = @rm -rf -JUNK = *~ *.bak DEADJOE - - -# First pass, kernel Makefile reads module objects -ifneq ($(KERNELRELEASE),) -obj-m := $(MODULE_NAME).o - - -# Second pass, the actual build. -else -KVER ?= $(shell uname -r) -PWD := $(shell pwd) -KBUILD_VERBOSE= - -all: - $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) CC=$(CC) KBUILD_VERBOSE=$(KBUILD_VERBOSE) modules - -clean: - $(shell find . -name '*.o' | xargs rm) - $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean - -distclean: clean - $(RM) $(JUNK) $(OBJS) - -help: - $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) help - - -# Indents the kernel source the way linux/Documentation/CodingStyle.txt -# wants it to be. -indent: - indent -kr -i8 $($(MODULE_NAME)-objs:.o=.c) - -install: - $(MAKE) -C $(KDIR) M=$(PWD) modules_install - -endif diff --git a/patches/kdrivers/wanec/Makefile5.FreeBSD b/patches/kdrivers/wanec/Makefile5.FreeBSD deleted file mode 100755 index 438a5fe..0000000 --- a/patches/kdrivers/wanec/Makefile5.FreeBSD +++ /dev/null @@ -1,39 +0,0 @@ -# ============================================================================ -# Makefile WAN Echo Canceler Chip configurator. Make Script. -# -# Copyright (c) 1995-1997 Sangoma Technologies Inc. All Rights Reserved. -# ---------------------------------------------------------------------------- -# Augc 25, 2005 Alex Feldman Initial version. -# ============================================================================ - -####### DEFINES ############################################################## -.if exists(/wanpipe/code/Makefile.in) -.include "/wanpipe/code/Makefile.in" -.endif -COMMON_DIR= ${.CURDIR}/common - -# Build Options. -BTDIR = ${.CURDIR}/oct6100_api/apilib/bt -LARGMATHDIR = ${.CURDIR}/oct6100_api/apilib/largmath -LLMANDIR = ${.CURDIR}/oct6100_api/apilib/llman -OCTAPIDIR = ${.CURDIR}/oct6100_api/octdeviceapi/oct6100api/oct6100_api -OCTAPIMIDIR = ${.CURDIR}/oct6100_api/octdeviceapi/oct6100api/oct6100_apimi -.PATH: ${COMMON_DIR} ${BTDIR} ${LARGMATHDIR} ${LLMANDIR} ${OCTAPIDIR} ${OCTAPIMIDIR} - -# Project File Paths. -KLDMOD = true -KMOD = wanec -DESTDIR = / -KMODDIR = /boot/modules -MODULE_DEPEND = wanrouter -SRCS = wanec_iface.c wanec_cmd.c wanec_utils.c octapi_bt0.c octapi_largmath.c octapi_llman.c oct6100_mask_interrupts.c oct6100_adpcm_chan.c oct6100_channel.c oct6100_chip_open.c oct6100_chip_stats.c oct6100_conf_bridge.c oct6100_debug.c oct6100_events.c oct6100_interrupts.c oct6100_memory.c oct6100_miscellaneous.c oct6100_mixer.c oct6100_phasing_tsst.c oct6100_playout_buf.c oct6100_remote_debug.c oct6100_tlv.c oct6100_tone_detection.c oct6100_tsi_cnct.c oct6100_tsst.c -CFLAGS += -I/sys -I. -Wunused ${WAN_GLB_CFLAGS} -CFLAGS += -Ioct6100_api -Ioct6100_api/apilib/bt -Ioct6100_api/apilib/llman \ - -Ioct6100_api/include \ - -Ioct6100_api/include -Ioct6100_api/include/apilib \ - -Ioct6100_api/include/apilib -Ioct6100_api/include/octrpc \ - -Ioct6100_api/include/oct6100api \ - -Ioct6100_api/octdeviceapi/oct6100api -DWAN_OCT6100_MOD -CFLAGS += -DENABLE_TONE_PLAY - -.include diff --git a/patches/kdrivers/wanec/Makefile6.FreeBSD b/patches/kdrivers/wanec/Makefile6.FreeBSD deleted file mode 100755 index 0a489a5..0000000 --- a/patches/kdrivers/wanec/Makefile6.FreeBSD +++ /dev/null @@ -1,39 +0,0 @@ -# ============================================================================ -# Makefile WAN Echo Canceler Chip configurator. Make Script. -# -# Copyright (c) 1995-1997 Sangoma Technologies Inc. All Rights Reserved. -# ---------------------------------------------------------------------------- -# Augc 25, 2005 Alex Feldman Initial version. -# ============================================================================ - -####### DEFINES ############################################################## -.if exists(/wanpipe/code/Makefile.in) -.include "/wanpipe/code/Makefile.in" -.endif - -# Build Options. -BTDIR = ${.CURDIR}/oct6100_api/apilib/bt -LARGMATHDIR = ${.CURDIR}/oct6100_api/apilib/largmath -LLMANDIR = ${.CURDIR}/oct6100_api/apilib/llman -OCTAPIDIR = ${.CURDIR}/oct6100_api/octdeviceapi/oct6100api/oct6100_api -OCTAPIMIDIR = ${.CURDIR}/oct6100_api/octdeviceapi/oct6100api/oct6100_apimi -.PATH: ${BTDIR} ${LARGMATHDIR} ${LLMANDIR} ${OCTAPIDIR} ${OCTAPIMIDIR} - - -# Project File Paths. -KLDMOD = true -KMOD = wanec -DESTDIR = / -KMODDIR = /boot/modules -MODULE_DEPEND = wanrouter -SRCS = wanec_iface.c wanec_cmd.c wanec_utils.c octapi_bt0.c octapi_largmath.c octapi_llman.c oct6100_mask_interrupts.c oct6100_adpcm_chan.c oct6100_channel.c oct6100_chip_open.c oct6100_chip_stats.c oct6100_conf_bridge.c oct6100_debug.c oct6100_events.c oct6100_interrupts.c oct6100_memory.c oct6100_miscellaneous.c oct6100_mixer.c oct6100_phasing_tsst.c oct6100_playout_buf.c oct6100_remote_debug.c oct6100_tlv.c oct6100_tone_detection.c oct6100_tsi_cnct.c oct6100_tsst.c oct6100_user.c -CFLAGS += -Wunused -I/sys -I/usr/include/wanpipe -Ioct6100_api/include -Ioct6100_api/include/apilib -Ioct6100_api/apilib/bt -Ioct6100_api/apilib/llman -Ioct6100_api/apilib/largmath -Ioct6100_api/include/octrpc -Ioct6100_api/include/oct6100api -Ioct6100_api/octdeviceapi/oct6100api -DCONFIG_PRODUCT_WANPIPE_BASE -DCONFIG_PRODUCT_WANPIPE_AFT -DCONFIG_PRODUCT_WANPIPE_FR -DCONFIG_PRODUCT_WANPIPE_CHDLC -DCONFIG_PRODUCT_WANPIPE_PPP -DCONFIG_PRODUCT_WANPIPE_ADSL -DCONFIG_PRODUCT_WANPIPE_AFT -DCONFIG_PRODUCT_WANPIPE_AFT_TE1 -DCONFIG_PRODUCT_WANPIPE_AFT -DCONFIG_PRODUCT_WANPIPE_AFT_A200 -DCONFIG_PRODUCT_WANPIPE_AFT -DCONFIG_PRODUCT_WANPIPE_AFT_TE3 -DCONFIG_PRODUCT_WANPIPE_MLINK_PPP -DCONFIG_PRODUCT_WANPIPE_TDM_VOICE ${WAN_GLB_CFLAGS} - -hdr_install: - \cp -f wanec_iface.h /usr/include/wanpipe - \cp -f oct6100_api/include/*.h /usr/include/wanpipe/oct6100api/ - \cp -f oct6100_api/include/oct6100api/*.h /usr/include/wanpipe/oct6100api/ - - - -.include diff --git a/patches/kdrivers/wanec/configure b/patches/kdrivers/wanec/configure index 68627ad..ba91c91 100755 --- a/patches/kdrivers/wanec/configure +++ b/patches/kdrivers/wanec/configure @@ -1,18 +1,19 @@ #!/bin/sh -REL_SOFTWARE="oct6100_api.PR48" -REL_FIRMWARE="OCT6116FW-01.05.17" +REL="oct6100_api.PR43" IMG="OCT6126-128S.ima" rm -f oct6100_api -rm -f image/*.ima +rm -f image/OCT6116-32S.ima +rm -f image/OCT6126-128S.ima +rm -f image/OCT6116-256S.ima -ln -s ${REL_SOFTWARE} oct6100_api + +ln -s ${REL} oct6100_api cd image -ln -s ${REL_FIRMWARE}/OCT6116-32S.ima OCT6116-32S.ima -ln -s ${REL_FIRMWARE}/OCT6116-64S.ima OCT6116-64S.ima -ln -s ${REL_FIRMWARE}/OCT6116-128S.ima OCT6116-128S.ima -ln -s ${REL_FIRMWARE}/OCT6116-256S.ima OCT6116-256S.ima +ln -s OCT6116FW-01.05.01/OCT6116-32S.ima OCT6116-32S.ima +ln -s OCT6126FW-01.05.01/OCT6126-128S.ima OCT6126-128S.ima +ln -s OCT6116FW-01.05.01/OCT6116-256S.ima OCT6116-256S.ima diff --git a/patches/kdrivers/wanec/image/OCT6116-256S.ima b/patches/kdrivers/wanec/image/OCT6116-256S.ima new file mode 120000 index 0000000..6b1159d --- /dev/null +++ b/patches/kdrivers/wanec/image/OCT6116-256S.ima @@ -0,0 +1 @@ +OCT6116FW-01.05.01/OCT6116-256S.ima \ No newline at end of file diff --git a/patches/kdrivers/wanec/image/OCT6116-32S.ima b/patches/kdrivers/wanec/image/OCT6116-32S.ima new file mode 120000 index 0000000..82bcd81 --- /dev/null +++ b/patches/kdrivers/wanec/image/OCT6116-32S.ima @@ -0,0 +1 @@ +OCT6116FW-01.05.01/OCT6116-32S.ima \ No newline at end of file diff --git a/patches/kdrivers/wanec/image/OCT6116-64S.ima b/patches/kdrivers/wanec/image/OCT6116-64S.ima new file mode 100644 index 0000000..4c89279 Binary files /dev/null and b/patches/kdrivers/wanec/image/OCT6116-64S.ima differ diff --git a/wan_ec/OCT6116-128S.ima b/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-128S.ima similarity index 98% rename from wan_ec/OCT6116-128S.ima rename to patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-128S.ima index ef345f2..737afc5 100644 Binary files a/wan_ec/OCT6116-128S.ima and b/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-128S.ima differ diff --git a/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-128S_features.txt b/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-128S_features.txt new file mode 100644 index 0000000..43765ef --- /dev/null +++ b/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-128S_features.txt @@ -0,0 +1,17 @@ +Basic Acoustic Echo Cancellation +Buffer playback at 31 entries per buffer list +Sin Tone Removal +Conferencing +Conferencing Noise Reduction +Dominant Speaker +Sout Noise Reduction +Idle Code Detection +Music Protection +Rin Manual Level Control +Rin Automatic Level Control +Rin High Level Compensation +Sout Manual Level Control +Sout Automatic Level Control (LR:0.9,GR:1.1) +Sout Automatic Level Enhancement +Sout Natural Listener Enhancement +Voice Activity Detection diff --git a/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-128S_tones_config.txt b/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-128S_tones_config.txt new file mode 100644 index 0000000..e423f0a --- /dev/null +++ b/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-128S_tones_config.txt @@ -0,0 +1,50 @@ +#define OCT6100_IMAGE_NAME "SANGOMA_3_CAPACITY:128" +#define OCT6100_IMAGE_VERSION "01.05.01" +#define OCT6100_IMAGE_DATE "Thu Feb 2 11:47:03 2006" +#define OCT6100_PROJECT_ID 0x00280010 +#define OCT6100_NUM_TONE 44 + +#define SOUT_G168_2100GB_ON 0x40000000 +#define SOUT_G168_2100GB_WSPR 0x40000002 +#define ROUT_G168_2100GB_ON 0x10000000 +#define ROUT_G168_2100GB_WSPR 0x10000002 +#define ROUT_SOUT_G168_2100HB_END 0x50000003 +#define SOUT_G168_1100GB_ON 0x40000004 +#define ROUT_G168_1100GB_ON 0x10000004 +#define SIN_SYSTEM5_2400 0x20000020 +#define SIN_SYSTEM5_2600 0x20000021 +#define SIN_SYSTEM5_2400_2600 0x20000022 +#define SIN_SYSTEM7_2000 0x20000023 +#define SIN_SYSTEM7_1780 0x20000024 +#define SOUT_DTMF_1 0x40000011 +#define SOUT_DTMF_2 0x40000012 +#define SOUT_DTMF_3 0x40000013 +#define SOUT_DTMF_A 0x4000001A +#define SOUT_DTMF_4 0x40000014 +#define SOUT_DTMF_5 0x40000015 +#define SOUT_DTMF_6 0x40000016 +#define SOUT_DTMF_B 0x4000001B +#define SOUT_DTMF_7 0x40000017 +#define SOUT_DTMF_8 0x40000018 +#define SOUT_DTMF_9 0x40000019 +#define SOUT_DTMF_C 0x4000001C +#define SOUT_DTMF_STAR 0x4000001E +#define SOUT_DTMF_0 0x40000010 +#define SOUT_DTMF_POUND 0x4000001F +#define SOUT_DTMF_D 0x4000001D +#define ROUT_DTMF_1 0x10000011 +#define ROUT_DTMF_2 0x10000012 +#define ROUT_DTMF_3 0x10000013 +#define ROUT_DTMF_A 0x1000001A +#define ROUT_DTMF_4 0x10000014 +#define ROUT_DTMF_5 0x10000015 +#define ROUT_DTMF_6 0x10000016 +#define ROUT_DTMF_B 0x1000001B +#define ROUT_DTMF_7 0x10000017 +#define ROUT_DTMF_8 0x10000018 +#define ROUT_DTMF_9 0x10000019 +#define ROUT_DTMF_C 0x1000001C +#define ROUT_DTMF_STAR 0x1000001E +#define ROUT_DTMF_0 0x10000010 +#define ROUT_DTMF_POUND 0x1000001F +#define ROUT_DTMF_D 0x1000001D diff --git a/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-256S.ima b/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-256S.ima new file mode 100644 index 0000000..7059d15 Binary files /dev/null and b/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-256S.ima differ diff --git a/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-256S_features.txt b/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-256S_features.txt new file mode 100644 index 0000000..d11d9e8 --- /dev/null +++ b/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-256S_features.txt @@ -0,0 +1,18 @@ +Basic Acoustic Echo Cancellation +Buffer playback at 31 entries per buffer list +Sin Tone Removal +Conferencing +Conferencing Noise Reduction +Dominant Speaker +Sout Noise Reduction +Idle Code Detection +Music Protection +Rin Manual Level Control +Rin Automatic Level Control +Rin High Level Compensation +Sout Manual Level Control +Sout Automatic Level Control (LR:0.9,GR:1.1) +Sout Automatic Level Enhancement +Sout Natural Listener Enhancement +Voice Activity Detection +Max debug dump length: 131.072s diff --git a/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-256S_tones_config.txt b/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-256S_tones_config.txt new file mode 100644 index 0000000..c4688e7 --- /dev/null +++ b/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-256S_tones_config.txt @@ -0,0 +1,50 @@ +#define OCT6100_IMAGE_NAME "SANGOMA_4_CAPACITY:256" +#define OCT6100_IMAGE_VERSION "01.05.01" +#define OCT6100_IMAGE_DATE "Fri Mar 17 12:06:00 2006" +#define OCT6100_PROJECT_ID 0x00280012 +#define OCT6100_NUM_TONE 44 + +#define SOUT_G168_2100GB_ON 0x40000000 +#define SOUT_G168_2100GB_WSPR 0x40000002 +#define ROUT_G168_2100GB_ON 0x10000000 +#define ROUT_G168_2100GB_WSPR 0x10000002 +#define ROUT_SOUT_G168_2100HB_END 0x50000003 +#define SOUT_G168_1100GB_ON 0x40000004 +#define ROUT_G168_1100GB_ON 0x10000004 +#define SIN_SYSTEM5_2400 0x20000020 +#define SIN_SYSTEM5_2600 0x20000021 +#define SIN_SYSTEM5_2400_2600 0x20000022 +#define SIN_SYSTEM7_2000 0x20000023 +#define SIN_SYSTEM7_1780 0x20000024 +#define SOUT_DTMF_1 0x40000011 +#define SOUT_DTMF_2 0x40000012 +#define SOUT_DTMF_3 0x40000013 +#define SOUT_DTMF_A 0x4000001A +#define SOUT_DTMF_4 0x40000014 +#define SOUT_DTMF_5 0x40000015 +#define SOUT_DTMF_6 0x40000016 +#define SOUT_DTMF_B 0x4000001B +#define SOUT_DTMF_7 0x40000017 +#define SOUT_DTMF_8 0x40000018 +#define SOUT_DTMF_9 0x40000019 +#define SOUT_DTMF_C 0x4000001C +#define SOUT_DTMF_STAR 0x4000001E +#define SOUT_DTMF_0 0x40000010 +#define SOUT_DTMF_POUND 0x4000001F +#define SOUT_DTMF_D 0x4000001D +#define ROUT_DTMF_1 0x10000011 +#define ROUT_DTMF_2 0x10000012 +#define ROUT_DTMF_3 0x10000013 +#define ROUT_DTMF_A 0x1000001A +#define ROUT_DTMF_4 0x10000014 +#define ROUT_DTMF_5 0x10000015 +#define ROUT_DTMF_6 0x10000016 +#define ROUT_DTMF_B 0x1000001B +#define ROUT_DTMF_7 0x10000017 +#define ROUT_DTMF_8 0x10000018 +#define ROUT_DTMF_9 0x10000019 +#define ROUT_DTMF_C 0x1000001C +#define ROUT_DTMF_STAR 0x1000001E +#define ROUT_DTMF_0 0x10000010 +#define ROUT_DTMF_POUND 0x1000001F +#define ROUT_DTMF_D 0x1000001D diff --git a/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-32S.ima b/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-32S.ima new file mode 100644 index 0000000..7f2f427 Binary files /dev/null and b/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-32S.ima differ diff --git a/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-32S.ima.org b/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-32S.ima.org new file mode 100644 index 0000000..719c313 Binary files /dev/null and b/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-32S.ima.org differ diff --git a/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-32S_features.txt b/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-32S_features.txt new file mode 100644 index 0000000..43765ef --- /dev/null +++ b/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-32S_features.txt @@ -0,0 +1,17 @@ +Basic Acoustic Echo Cancellation +Buffer playback at 31 entries per buffer list +Sin Tone Removal +Conferencing +Conferencing Noise Reduction +Dominant Speaker +Sout Noise Reduction +Idle Code Detection +Music Protection +Rin Manual Level Control +Rin Automatic Level Control +Rin High Level Compensation +Sout Manual Level Control +Sout Automatic Level Control (LR:0.9,GR:1.1) +Sout Automatic Level Enhancement +Sout Natural Listener Enhancement +Voice Activity Detection diff --git a/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-32S_tones_config.txt b/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-32S_tones_config.txt new file mode 100644 index 0000000..f806446 --- /dev/null +++ b/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-32S_tones_config.txt @@ -0,0 +1,50 @@ +#define OCT6100_IMAGE_NAME "SANGOMA_2_CAPACITY:32" +#define OCT6100_IMAGE_VERSION "01.05.01" +#define OCT6100_IMAGE_DATE "Thu Feb 2 11:47:26 2006" +#define OCT6100_PROJECT_ID 0x00280018 +#define OCT6100_NUM_TONE 44 + +#define SOUT_G168_2100GB_ON 0x40000000 +#define SOUT_G168_2100GB_WSPR 0x40000002 +#define ROUT_G168_2100GB_ON 0x10000000 +#define ROUT_G168_2100GB_WSPR 0x10000002 +#define ROUT_SOUT_G168_2100HB_END 0x50000003 +#define SOUT_G168_1100GB_ON 0x40000004 +#define ROUT_G168_1100GB_ON 0x10000004 +#define SIN_SYSTEM5_2400 0x20000020 +#define SIN_SYSTEM5_2600 0x20000021 +#define SIN_SYSTEM5_2400_2600 0x20000022 +#define SIN_SYSTEM7_2000 0x20000023 +#define SIN_SYSTEM7_1780 0x20000024 +#define SOUT_DTMF_1 0x40000011 +#define SOUT_DTMF_2 0x40000012 +#define SOUT_DTMF_3 0x40000013 +#define SOUT_DTMF_A 0x4000001A +#define SOUT_DTMF_4 0x40000014 +#define SOUT_DTMF_5 0x40000015 +#define SOUT_DTMF_6 0x40000016 +#define SOUT_DTMF_B 0x4000001B +#define SOUT_DTMF_7 0x40000017 +#define SOUT_DTMF_8 0x40000018 +#define SOUT_DTMF_9 0x40000019 +#define SOUT_DTMF_C 0x4000001C +#define SOUT_DTMF_STAR 0x4000001E +#define SOUT_DTMF_0 0x40000010 +#define SOUT_DTMF_POUND 0x4000001F +#define SOUT_DTMF_D 0x4000001D +#define ROUT_DTMF_1 0x10000011 +#define ROUT_DTMF_2 0x10000012 +#define ROUT_DTMF_3 0x10000013 +#define ROUT_DTMF_A 0x1000001A +#define ROUT_DTMF_4 0x10000014 +#define ROUT_DTMF_5 0x10000015 +#define ROUT_DTMF_6 0x10000016 +#define ROUT_DTMF_B 0x1000001B +#define ROUT_DTMF_7 0x10000017 +#define ROUT_DTMF_8 0x10000018 +#define ROUT_DTMF_9 0x10000019 +#define ROUT_DTMF_C 0x1000001C +#define ROUT_DTMF_STAR 0x1000001E +#define ROUT_DTMF_0 0x10000010 +#define ROUT_DTMF_POUND 0x1000001F +#define ROUT_DTMF_D 0x1000001D diff --git a/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-64S.ima b/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-64S.ima new file mode 100644 index 0000000..4c89279 Binary files /dev/null and b/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-64S.ima differ diff --git a/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-64S_features.txt b/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-64S_features.txt new file mode 100644 index 0000000..d11d9e8 --- /dev/null +++ b/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-64S_features.txt @@ -0,0 +1,18 @@ +Basic Acoustic Echo Cancellation +Buffer playback at 31 entries per buffer list +Sin Tone Removal +Conferencing +Conferencing Noise Reduction +Dominant Speaker +Sout Noise Reduction +Idle Code Detection +Music Protection +Rin Manual Level Control +Rin Automatic Level Control +Rin High Level Compensation +Sout Manual Level Control +Sout Automatic Level Control (LR:0.9,GR:1.1) +Sout Automatic Level Enhancement +Sout Natural Listener Enhancement +Voice Activity Detection +Max debug dump length: 131.072s diff --git a/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-64S_tones_config.txt b/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-64S_tones_config.txt new file mode 100644 index 0000000..d2d16af --- /dev/null +++ b/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/OCT6116-64S_tones_config.txt @@ -0,0 +1,50 @@ +#define OCT6100_IMAGE_NAME "SANGOMA_5_CAPACITY:64" +#define OCT6100_IMAGE_VERSION "01.05.01" +#define OCT6100_IMAGE_DATE "Fri Aug 18 15:46:54 2006" +#define OCT6100_PROJECT_ID 0x0028001E +#define OCT6100_NUM_TONE 44 + +#define SOUT_G168_2100GB_ON 0x40000000 +#define SOUT_G168_2100GB_WSPR 0x40000002 +#define ROUT_G168_2100GB_ON 0x10000000 +#define ROUT_G168_2100GB_WSPR 0x10000002 +#define ROUT_SOUT_G168_2100HB_END 0x50000003 +#define SOUT_G168_1100GB_ON 0x40000004 +#define ROUT_G168_1100GB_ON 0x10000004 +#define SIN_SYSTEM5_2400 0x20000020 +#define SIN_SYSTEM5_2600 0x20000021 +#define SIN_SYSTEM5_2400_2600 0x20000022 +#define SIN_SYSTEM7_2000 0x20000023 +#define SIN_SYSTEM7_1780 0x20000024 +#define SOUT_DTMF_1 0x40000011 +#define SOUT_DTMF_2 0x40000012 +#define SOUT_DTMF_3 0x40000013 +#define SOUT_DTMF_A 0x4000001A +#define SOUT_DTMF_4 0x40000014 +#define SOUT_DTMF_5 0x40000015 +#define SOUT_DTMF_6 0x40000016 +#define SOUT_DTMF_B 0x4000001B +#define SOUT_DTMF_7 0x40000017 +#define SOUT_DTMF_8 0x40000018 +#define SOUT_DTMF_9 0x40000019 +#define SOUT_DTMF_C 0x4000001C +#define SOUT_DTMF_STAR 0x4000001E +#define SOUT_DTMF_0 0x40000010 +#define SOUT_DTMF_POUND 0x4000001F +#define SOUT_DTMF_D 0x4000001D +#define ROUT_DTMF_1 0x10000011 +#define ROUT_DTMF_2 0x10000012 +#define ROUT_DTMF_3 0x10000013 +#define ROUT_DTMF_A 0x1000001A +#define ROUT_DTMF_4 0x10000014 +#define ROUT_DTMF_5 0x10000015 +#define ROUT_DTMF_6 0x10000016 +#define ROUT_DTMF_B 0x1000001B +#define ROUT_DTMF_7 0x10000017 +#define ROUT_DTMF_8 0x10000018 +#define ROUT_DTMF_9 0x10000019 +#define ROUT_DTMF_C 0x1000001C +#define ROUT_DTMF_STAR 0x1000001E +#define ROUT_DTMF_0 0x10000010 +#define ROUT_DTMF_POUND 0x1000001F +#define ROUT_DTMF_D 0x1000001D diff --git a/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/ReleaseNotes.txt b/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/ReleaseNotes.txt new file mode 100644 index 0000000..d0e0ef4 --- /dev/null +++ b/patches/kdrivers/wanec/image/OCT6116FW-01.05.01/ReleaseNotes.txt @@ -0,0 +1,340 @@ +------------------------------------ +OCT6100 Firmware Release 1.5.1 +Release date : September 26th 2005 + The remote client version is 25. +------------------------------------ + Solved issue : + - PR-3657: FAX transmission may not work when setting ulToneDisablerVqeActivationDelay to a different value than the default (300ms) + + Known issues : + o When detecting a 2100 Hz with or without phase reversal, all the following VQE features will be disabled + until a period of silence of length ulToneDisablerVqeActivationDelay is detected regardless of the setting + of Tone Disabler parameter (fEnableToneDisabler). This issue will be resolved in the + next firmware release. + - Adaptive noise reduction + - Conferencing noise reduction + - All Level controls on Rin and Sin (MLC, ALC, HLC, ALE, NLE). + - Rout Noise reduction + - Sin Tone removal + + o On some rare occasions, test 9 of G.168 will fail by up to one dB. This issue will be resolved in the + next firmware release. + + + +------------------------------------ +OCT6100 Firmware Release 1.5.0 +Release date : August 31st 2005: + The remote client version is 25. +------------------------------------ + + Solved issues: + + - PR-3315: ALC rate change too fast + - PR-3316: 1100 Hz CNG tone should not be removed by Sin Tone Removal + - PR-3319: Test G.168 10B sometime fails with NLP off + - PR-3323: In A-law network, echo cannot re-enable after a 2100Hz if silence is 0xFF. + - PR-3351: DTMF tones are attenuated by the flat ANR feature + - PR-3418: Added support of Noise Bleaching + - PR-3436: OCT6100 2100Hz disabling should be compliant to G.164 and G.165 + - PR-3553: The echo canceller cannot cancel some tone echoes + - PR-3557: Test G.168 2ab fails under certain conditions + - PR-3577: Sout direction ALC can not hold the level + - PR-3615: ALC gain reset to unity by silence + - PR-3617: AF & NLP behavior after Fax/Modem tone end + - PR-3635: Allow user to enable/disable idle code detection + - PR-3649: ALC gain is not stable with CSS + - PR-3651: Improved ALC robustness to non-linear echo paths + - PR-3652: Added support of VQE Activation Delay on 2100Hz with well spaced phase reversals + - PR-3654: Disable all VQE during a fax/modem call. + + + Known Issue: + o On some rare occasions, test 9 of G.168 will fail by up to one dB. This issue will be resolved in the + next firmware release. + + +------------------------------------ +OCT6100 Firmware Release 1.4.0 +Release date : July 1st 2005: + The remote client version is 25. +------------------------------------ + Added Feature : + o The NOISE_REDUCTION_FOR_MIXING feature is added. This is a noise reduction algorithm that does not inject + background noise. The intend is to mix music after this algorithm. It also attenuates greatly the + non-speech period for better mixing. If this algorithm is used alone (without later mixing), it will + not give a good subjective quality. + o Configurable gain adjustment for Automatic level control. There are 2 parameters : GAIN_RATE and LOSS_RATE. + The parameter can only be changed at compilation time. + + Removed Feature : + o The Sin energy is not calculated anymore when the RIN ANR feature is present. + + + Bug Fix: + o The WIRELESS Image has a better support for Fax/Modem calls. + o The attenuation speed of the all level controls have changed. The attenuation speed is now uniform even + as we approach the targeted gain. + o When DTMFs were present on the line, a gain of +- 2dB was applied. It is now removed. + o The DTMF Tone Removal feature does not clip the 1100 Hz. + + + Known Issue: + o In A-law networks where the idle line pattern is not A-law silence (0x55 or 0xD5) DC offset removal must be enabled + in order for 2100Hz guard band to be detected correctly in order for echo cancellation to be re-enabled + at the end of a data transmission. + + +------------------------------------ +OCT6100 Firmware Release 1.3.4 +Release date : March 16 2005: + The remote client version is 25. +------------------------------------ + Added Feature : + o The Playout stop and stop immediately functions have been modified so that there is no longer a need + for the host cpu to wait 8ms before playing the next event. + + Bug Fix: + o Better support for low speed fax/modems that which do not respect ITU-T V.25 (ie. without 2100Hz disabling tone). + o The calculation of the Rin and Sout energy level has been modified. The statistics now represent the + average energy of the signal over the last 256ms. + + Known Issue: + o In A-law networks where the idle line pattern is not A-law silence (0x55 or 0xD5) DC offset removal must be enabled + in order for 2100Hz guard band to be detected correctly in order for echo cancellation to be re-enabled + at the end of a data transmission. + o When doing ALC, ALE, NLE on the Sout port in an acoustic environment, the energy target may not always be valid + and may be off by a few dBoV. + This will be fixed in a future release. + o Statistics for Rin Energy and Sout Energy will not work with API versions earlier than 01.00-PR33. + o When using the DTMF Tone Removal feature, if a 1100Hz tone is sent on the Sin-Sout port, it will be clipped. This will + be fixed in a future release. + + +------------------------------------ +OCT6100 Firmware Release 1.3.3 +Release date : January 24 2005: + The remote client version is 25. +------------------------------------ + Added Feature : + o Per channel, configurable tail length. Minimum value is 32ms and maximum value is 128 ms. + o Per channel, configurable ANR settings added (ANR Segregation and ANR Signal to noise ratio improvement). + o Per channel, configurable speech recognition user mode at build time (allow user to enable or disable the feature). + o Per channel, configurable Rin Tone Removal feature. + o Per channel, configurable Rin noise reduction feature (allow user to enable or disable the feature). + o Per channel, configurable new acoustic echo algorithm for non-linear echo points (allow user to enable or disable the feature). + o Per channel, configurable Octasic music protection feature (allow user to enable or disable the feature). + o Per chip, at build time VAD sensitivity thresholds. + o Added Extensive external memory BIST that can be done at boot for production requirement. + + + Please refer to OCT6100 document for feature availability by product number. + + Bug Fix: + o Per channel, during a Fax Relay call VQE features can be reenable only after a configurable period of silence. + o Remaining issues after 0xFFFF echo point changes have been solved in 01.03.03. + o In some cases, activating the NLE could modify the gain on the Rout port + + Known issue : + o After opening a channel it will take 40ms before it is ready to start playing-out a buffer. + This is due to the setup time of the NLP when a channel is opened. + o In A-law networks where the idle line pattern is not A-law silence (0x55) DC offset removal must be enabled in order for 2100Hz guard band + to be detected correctly in order for echo cancellation to be re-enabled at the end of a data transmission. + o In Fax Relay Calls with long delays when only 1 echo canceller is present in the network, and the non echo cancelled echo point is strong, there might be + some call failure. This will be fixed in the next release 01.03.04. + o When doing ALC, ALE, NLE on the Sout port in an acoustic environment, the energy target will not always be valid. + This will be fixed in the next release 01.03.04 + + o ALC after 2100Hz + With Firmware Version 1.3.0, 1.3.1, 1.3.3 without Idle Code Detection, the ALC will not be able to change the gain applied until the channel is reset. + With Firmware Version 1.3.3 with Idle Code Detection, the ALC will not be able to change the gain applied between the maximum of 1.5 s and X ms of silence, where X is given by the user in the “ulToneDisablerVqeActivationDelay” field. + With Firmware Version 1.3.4, the ALC will not be able to change the gain applied until X ms of silence, where X is given by the user in the “ulToneDisablerVqeActivationDelay” field. + + o The tail displacement in version 1.3.3 and greater is incompatible with API versions earlier than 01.00-PR30 + + +------------------------------------ +OCT6100 Firmware Release 1.3.1.1 +Release date : September 24th 2004 + The remote client version is 24. +------------------------------------ + o This version is exactly the same as 1.3.1 except that IDLE detection and reset has been removed because it caused a problem where noise could be generated after a channel is IDLE for a long time. + See errata oct6100er-011204 for more information. + +------------------------------------ +OCT6100 Firmware Release 1.3.1 +Release date : September 24th 2004 + The remote client version is 24. +------------------------------------ + + o Tone Removal Feature: The algorithm has been improved to react within 16 ms when a DTMF is detected on the line. Note that this feature is + part of the conferencing suite of features. This feature should not be enabled with fax or modem calls. + o Added Advanced listener enhancement feature : This determines by how many dB the user wants the SIN voice to be above the RIN noise. + This value is set and enabled in API on a per channel basis. + o Added Natural listener enhancement feature : This will automatically apply a gain on the SOUT signal such that it matches the RIN voice. + This feature is enabled in the API on a per channel basis. + o Added Rout ANR feature : Noise reduction on the Rin-Rout path. + This feature is enabled in the API on a per channel basis. + o Added support for 31 or 127 events of playout queuing at the same time. Previously, the number of playout events was 127 only. This feature + allows the customer to save external memory space for playout (used by the playout events). + + o Added feature for VAD, to allow strong stationary signal (like tone or DTMF) to be detected as voice. Configurable on image build. + o Added mute support for both direction, Sin and Rin. Previously, this was done in the API. + o Added to the ALC algorithm a noise floor so that the algorithm does not adapt to very low voice signal. These low voice signals are + considered to be intentional by the user (like whispering). Configurable on image build. + o Added new hardware chip bist on boot up. + o Z VAD will work only if the RIN ANR is enabled. + + Fix bug : + o Convergence problem for tail displacement above 384 ms. + o Echo point changes could not be detected by the chip after 0xFFFF echo point changes. + + Known issue : + o After opening a channel it will take 40ms before it is ready to start playing-out a buffer. + This is due to the setup time of the NLP when a channel is opened. + o In A-law networks where the idle line pattern is not A-law silence (0x55) DC offset removal must be enabled in order for 2100Hz guard band + to be detected correctly in order for echo cancellation to be re-enabled at the end of a data transmission. + + +------------------------------------ +OCT6100 Firmware Release 1.3.0 +Release date : May 6th 2004 + The remote client version is 23. +------------------------------------ + Added features : + o Added Idle Code detection. The chip will reset after either + - 1 second of idle pattern in both direction + - 1 second of silence in both direction + o Both AEC and tail displacement at the same time are now supported. + o AEC has now a configurable tail length and configurable default ERL value. + o Automatic level control (G.169) is now supported. + o High level control is now supported. High level control consist of settting a maximum threshold value in dBm0 + so that the signal does not exceed this threshold value. + o 127 events (instead of 31) of playout are now supported. + o Wide band 2100Hz detection now supported. + o VQE only mode now supported. This will disable echo cancellation and allow all other VQE functions to work + (ANR, ALC, HLC, Tone detection, Conferencing, Playout) + + Fixed Bugs : + o Removed tone refresh events for 1100Hz + + Known Issue : + o After 0xFFFF echo point changes detected by the chip without resetting the channel, the AF will not be able to find a new convergence in certain conditions. + This bug has been fixed in 01.03.01. + o Convergence problem will occur if tail displacement is above 384 ms + + + +------------------------------------ +OCT6100 Firmware Release 1.2.2 +Release date : April 26th 2004 + The remote client version is 22. +------------------------------------ + Added features : + o Illegals instruction occuring in the processor are loged and the processor is restore to normal + operation afterward. + o Added the Music Protection + o Added new features to Buffer playout ( API parameters : ulRepeatCount and ulDuration) + o Added support to longer tail displacement. + o Added tail displacement per channel. + + Bug Fixes : + o When setting the NLP to disable and resetting it to enable a transition period appears + where the signal is attenuated (known as Whoosh bug). + o The bug related to extended background noise (see 01.02.01) is fixed. + + Known issue : + o The channel operation mode in freeze does not support buffer playout. + o When doing buffer playout, if the channel is changed, the buffer playout must be restarted. + o Dominant speaker (conferencing) does not work when in G169_ALC mode. + +------------------------------------ +OCT6100 Firmware Release 1.2.1 +Release date : March 29th 2004 + The remote client version is 22. +------------------------------------ + Added features : + o The required disabling tone 2100Hz is detected in the tolerance region as defined in G.168. + However, the firmware does not disabled itself in this firmware release. This will be added in the release 01.02.02. + + Known issue : + o In this version, the feature extended background noise is not supported and will not work. + G.168 Test 9 is not supported in this version of firmware. It will be availabe in next release of firmware 01.02.02. + + + + +------------------------------------ +OCT6100 Firmware Release 1.2.0 +Release date : March 26th 2004 + The remote client version is 22. +------------------------------------ + + - Added features : + o NLP_BEHAVIOUR_B per channel: + This feature allows the user to adjust and optimize the behavior of the echo + canceller in the presence of non-linear spectrally rich distortion on the + echo cancelled path. + o Adjustable tail length per image release : + Adjustable tail length for each image release (up to the maximum value supported). + This modification is done in the firmware and cannot be changed by the user. + The adjustable tail length supported range from 32 ms to 128 ms by step of 4 ms. + o Recording length up to 2 minutes with the remote_client : + Now support long recording length (up to 2 minutes) and short recording length (16 seconds). + The short recording length is by default on all releases. + The long recording length is defined in the firmware. + The values are : 16, 32,60 and 120 seconds. + + - BUG Fixes: + o Multiple echo points : + In version 01.01.00, in some cases the convergence wasn't optimal. Now fixed in 01.02.00 + o G.168 Test 2A, Test 5 and Test 3C in PCM A-Law: + In version 01.01.00 when performing test in PCM A-Law G.168 tests 2A and 3C sometimes failed. Now fixed in 01.02.00 + o V.21 Modems : + In version 01.01.00, in some network configurations where the remote and local echo paths are very asymetrical V.21 calls + may fail to connect. This only happens in cases of echo points of 6dB and infinite ERL on the other side. Now fixed in version 01.02.00 + + - Known issue : + o G.168 Test 9 is not supported in this version of firmware. It will be availabe in next release of firmware 01.02.02. + Setting the feature extended background noise to TRUE will cause an illegal instruction in the firmware of the NLP. + + +------------------------------------ +OCT6100 Firmware Release 1.1.0 +Release date : November 5th 2003 + The remote client version is 21. +------------------------------------ + - Added features : + o Tone removal Enable (bit): + This function is used in conferencing applications where a user is sending commands to the bridge + using DTMF tones. After detection, the OCT6100 replaces the DTMF with background noise. + o Non-Linearity A : + This feature allows the user to adjust and optimize the behavior of the echo canceller in the presence + of non-linear white distortion on the echo cancelled path. For example, if ADPCM is present on the + path, adjusting this parameter will reduce the amount of residual echo. + o Default ERL : + By adjusting this parameter, the echo canceller performance can be improved during the convergence + period (<1s) if the ERL of the echo cancelled path is excessively high. + o Detection of the 1100Hz tone : + The detection of 1100Hz tone allows the gateways that integrate the OCT6100 to take appropriate action + in the presence of fax calls. + + - Bug Fixes : + o Fixed Buffer Playout problem where a delay had to be inserted between the opening of a channel and the playing + out of a buffer. + o SS5 and SS6 COT tones sometimes not detected correctly. + + - Known Issues (All will be fixed in the next firmware release): + o G.168 Test 2A, 5 and 3C: + When performing test in PCM A-Law G.168 tests 2A, 5 and 3C sometimes fail. + o Multiple echo points : + When multiple echo points are present, the convergence may not be optimal. + o V.21 Modems : + In some network configurations where the remote and local echo paths are very asymetrical V.21 calls + may fail to connect. This only happens in cases of echo points of 6dB and infinite ERL on the other side. + o CRC errors when opening channels : + CRC errors are detected when a channel is opened. This has no effect on voice quality. + o Following a 2100Hz without phase reversal call, some residual echo might occur for half a second on the following call, + even if the channel has been reset. + + diff --git a/patches/kdrivers/wanec/image/OCT6126-128S.ima b/patches/kdrivers/wanec/image/OCT6126-128S.ima new file mode 120000 index 0000000..b200bbd --- /dev/null +++ b/patches/kdrivers/wanec/image/OCT6126-128S.ima @@ -0,0 +1 @@ +OCT6126FW-01.05.01/OCT6126-128S.ima \ No newline at end of file diff --git a/patches/kdrivers/wanec/image/OCT6126FW-01.03.04/OCT6126-128S.ima b/patches/kdrivers/wanec/image/OCT6126FW-01.03.04/OCT6126-128S.ima new file mode 100644 index 0000000..c304d21 Binary files /dev/null and b/patches/kdrivers/wanec/image/OCT6126FW-01.03.04/OCT6126-128S.ima differ diff --git a/patches/kdrivers/wanec/image/OCT6126FW-01.03.04/OCT6126-128S_features.txt b/patches/kdrivers/wanec/image/OCT6126FW-01.03.04/OCT6126-128S_features.txt new file mode 100644 index 0000000..5108676 --- /dev/null +++ b/patches/kdrivers/wanec/image/OCT6126FW-01.03.04/OCT6126-128S_features.txt @@ -0,0 +1,18 @@ +Basic Acoustic Echo Cancellation +ADPCM codec +Buffer playback at 31 entries per buffer list +Sin Tone Removal +Conferencing +Conferencing Noise Reduction +Dominant Speaker +Sout Noise Reduction +Idle Code Detection +Music Protection +Rin Manual Level Control +Rin Automatic Level Control +Rin High Level Compensation +Sout Manual Level Control +Sout Automatic Level Control +Sout Automatic Level Enhancement +Sout Natural Listener Enhancement +Voice Activity Detection diff --git a/patches/kdrivers/wanec/image/OCT6126FW-01.03.04/OCT6126-128S_tones_config.txt b/patches/kdrivers/wanec/image/OCT6126FW-01.03.04/OCT6126-128S_tones_config.txt new file mode 100644 index 0000000..d390877 --- /dev/null +++ b/patches/kdrivers/wanec/image/OCT6126FW-01.03.04/OCT6126-128S_tones_config.txt @@ -0,0 +1,50 @@ +#define OCT6100_IMAGE_NAME "SANGOMA_1_CAPACITY:128" +#define OCT6100_IMAGE_VERSION "01.03.04" +#define OCT6100_IMAGE_DATE "Tue Jun 14 16:24:43 2005" +#define OCT6100_PROJECT_ID 0x00280000 +#define OCT6100_NUM_TONE 44 + +#define SOUT_G168_2100GB_ON 0x40000000 +#define SOUT_G168_2100GB_WSPR 0x40000002 +#define ROUT_G168_2100GB_ON 0x10000000 +#define ROUT_G168_2100GB_WSPR 0x10000002 +#define ROUT_SOUT_G168_2100HB_END 0x50000003 +#define SOUT_G168_1100GB_ON 0x40000004 +#define ROUT_G168_1100GB_ON 0x10000004 +#define SIN_SYSTEM5_2400 0x20000020 +#define SIN_SYSTEM5_2600 0x20000021 +#define SIN_SYSTEM5_2400_2600 0x20000022 +#define SIN_SYSTEM7_2000 0x20000023 +#define SIN_SYSTEM7_1780 0x20000024 +#define SOUT_DTMF_1 0x40000011 +#define SOUT_DTMF_2 0x40000012 +#define SOUT_DTMF_3 0x40000013 +#define SOUT_DTMF_A 0x4000001A +#define SOUT_DTMF_4 0x40000014 +#define SOUT_DTMF_5 0x40000015 +#define SOUT_DTMF_6 0x40000016 +#define SOUT_DTMF_B 0x4000001B +#define SOUT_DTMF_7 0x40000017 +#define SOUT_DTMF_8 0x40000018 +#define SOUT_DTMF_9 0x40000019 +#define SOUT_DTMF_C 0x4000001C +#define SOUT_DTMF_STAR 0x4000001E +#define SOUT_DTMF_0 0x40000010 +#define SOUT_DTMF_POUND 0x4000001F +#define SOUT_DTMF_D 0x4000001D +#define ROUT_DTMF_1 0x10000011 +#define ROUT_DTMF_2 0x10000012 +#define ROUT_DTMF_3 0x10000013 +#define ROUT_DTMF_A 0x1000001A +#define ROUT_DTMF_4 0x10000014 +#define ROUT_DTMF_5 0x10000015 +#define ROUT_DTMF_6 0x10000016 +#define ROUT_DTMF_B 0x1000001B +#define ROUT_DTMF_7 0x10000017 +#define ROUT_DTMF_8 0x10000018 +#define ROUT_DTMF_9 0x10000019 +#define ROUT_DTMF_C 0x1000001C +#define ROUT_DTMF_STAR 0x1000001E +#define ROUT_DTMF_0 0x10000010 +#define ROUT_DTMF_POUND 0x1000001F +#define ROUT_DTMF_D 0x1000001D diff --git a/patches/kdrivers/wanec/image/OCT6126FW-01.03.04/ReleaseNotes.txt b/patches/kdrivers/wanec/image/OCT6126FW-01.03.04/ReleaseNotes.txt new file mode 100644 index 0000000..b26f8b8 --- /dev/null +++ b/patches/kdrivers/wanec/image/OCT6126FW-01.03.04/ReleaseNotes.txt @@ -0,0 +1,251 @@ +------------------------------------ +OCT6100 Firmware Release 1.3.4 +Release date : March 16 2005: + The remote client version is 25. +------------------------------------ + Added Feature : + o The Playout stop and stop immediately functions have been modified so that there is no longer a need + for the host cpu to wait 8ms before playing the next event. + + Bug Fix: + o Better support for low speed fax/modems that which do not respect ITU-T V.25 (ie. without 2100Hz disabling tone). + o The calculation of the Rin and Sout energy level has been modified. The statistics now represent the + average energy of the signal over the last 256ms. + + Known Issue: + o In A-law networks where the idle line pattern is not A-law silence (0x55 or 0xD5) DC offset removal must be enabled + in order for 2100Hz guard band to be detected correctly in order for echo cancellation to be re-enabled + at the end of a data transmission. + o When doing ALC, ALE, NLE on the Sout port in an acoustic environment, the energy target may not always be valid + and may be off by a few dBoV. + This will be fixed in a future release. + o Statistics for Rin Energy and Sout Energy will not work with API versions earlier than 01.00-PR33. + + +------------------------------------ +OCT6100 Firmware Release 1.3.3 +Release date : January 24 2005: + The remote client version is 25. +------------------------------------ + Added Feature : + o Per channel, configurable tail length. Minimum value is 32ms and maximum value is 128 ms. + o Per channel, configurable ANR settings added (ANR Segregation and ANR Signal to noise ratio improvement). + o Per channel, configurable speech recognition user mode at build time (allow user to enable or disable the feature). + o Per channel, configurable Rin Tone Removal feature. + o Per channel, configurable Rin noise reduction feature (allow user to enable or disable the feature). + o Per channel, configurable new acoustic echo algorithm for non-linear echo points (allow user to enable or disable the feature). + o Per channel, configurable Octasic music protection feature (allow user to enable or disable the feature). + o Per chip, at build time VAD sensitivity thresholds. + o Added Extensive external memory BIST that can be done at boot for production requirement. + + + Please refer to OCT6100 document for feature availability by product number. + + Bug Fix: + o Per channel, during a Fax Relay call VQE features can be reenable only after a configurable period of silence. + o Remaining issues after 0xFFFF echo point changes have been solved in 01.03.03. + o In some cases, activating the NLE could modify the gain on the Rout port + + Known issue : + o After opening a channel it will take 40ms before it is ready to start playing-out a buffer. + This is due to the setup time of the NLP when a channel is opened. + o In A-law networks where the idle line pattern is not A-law silence (0x55) DC offset removal must be enabled in order for 2100Hz guard band + to be detected correctly in order for echo cancellation to be re-enabled at the end of a data transmission. + o In Fax Relay Calls with long delays when only 1 echo canceller is present in the network, and the non echo cancelled echo point is strong, there might be + some call failure. This will be fixed in the next release 01.03.04. + o When doing ALC, ALE, NLE on the Sout port in an acoustic environment, the energy target will not always be valid. + This will be fixed in the next release 01.03.04 + + o ALC after 2100Hz + With Firmware Version 1.3.0, 1.3.1, 1.3.3 without Idle Code Detection, the ALC will not be able to change the gain applied until the channel is reset. + With Firmware Version 1.3.3 with Idle Code Detection, the ALC will not be able to change the gain applied between the maximum of 1.5 s and X ms of silence, where X is given by the user in the “ulToneDisablerVqeActivationDelay” field. + With Firmware Version 1.3.4, the ALC will not be able to change the gain applied until X ms of silence, where X is given by the user in the “ulToneDisablerVqeActivationDelay” field. + + o The tail displacement in version 1.3.3 and greater is incompatible with API versions earlier than 01.00-PR30 + + +------------------------------------ +OCT6100 Firmware Release 1.3.1.1 +Release date : September 24th 2004 + The remote client version is 24. +------------------------------------ + o This version is exactly the same as 1.3.1 except that IDLE detection and reset has been removed because it caused a problem where noise could be generated after a channel is IDLE for a long time. + See errata oct6100er-011204 for more information. + +------------------------------------ +OCT6100 Firmware Release 1.3.1 +Release date : September 24th 2004 + The remote client version is 24. +------------------------------------ + + o Tone Removal Feature: The algorithm has been improved to react within 16 ms when a DTMF is detected on the line. Note that this feature is + part of the conferencing suite of features. This feature should not be enabled with fax or modem calls. + o Added Advanced listener enhancement feature : This determines by how many dB the user wants the SIN voice to be above the RIN noise. + This value is set and enabled in API on a per channel basis. + o Added Natural listener enhancement feature : This will automatically apply a gain on the SOUT signal such that it matches the RIN voice. + This feature is enabled in the API on a per channel basis. + o Added Rout ANR feature : Noise reduction on the Rin-Rout path. + This feature is enabled in the API on a per channel basis. + o Added support for 31 or 127 events of playout queuing at the same time. Previously, the number of playout events was 127 only. This feature + allows the customer to save external memory space for playout (used by the playout events). + + o Added feature for VAD, to allow strong stationary signal (like tone or DTMF) to be detected as voice. Configurable on image build. + o Added mute support for both direction, Sin and Rin. Previously, this was done in the API. + o Added to the ALC algorithm a noise floor so that the algorithm does not adapt to very low voice signal. These low voice signals are + considered to be intentional by the user (like whispering). Configurable on image build. + o Added new hardware chip bist on boot up. + o Z VAD will work only if the RIN ANR is enabled. + + Fix bug : + o Convergence problem for tail displacement above 384 ms. + o Echo point changes could not be detected by the chip after 0xFFFF echo point changes. + + Known issue : + o After opening a channel it will take 40ms before it is ready to start playing-out a buffer. + This is due to the setup time of the NLP when a channel is opened. + o In A-law networks where the idle line pattern is not A-law silence (0x55) DC offset removal must be enabled in order for 2100Hz guard band + to be detected correctly in order for echo cancellation to be re-enabled at the end of a data transmission. + + +------------------------------------ +OCT6100 Firmware Release 1.3.0 +Release date : May 6th 2004 + The remote client version is 23. +------------------------------------ + Added features : + o Added Idle Code detection. The chip will reset after either + - 1 second of idle pattern in both direction + - 1 second of silence in both direction + o Both AEC and tail displacement at the same time are now supported. + o AEC has now a configurable tail length and configurable default ERL value. + o Automatic level control (G.169) is now supported. + o High level control is now supported. High level control consist of settting a maximum threshold value in dBm0 + so that the signal does not exceed this threshold value. + o 127 events (instead of 31) of playout are now supported. + o Wide band 2100Hz detection now supported. + o VQE only mode now supported. This will disable echo cancellation and allow all other VQE functions to work + (ANR, ALC, HLC, Tone detection, Conferencing, Playout) + + Fixed Bugs : + o Removed tone refresh events for 1100Hz + + Known Issue : + o After 0xFFFF echo point changes detected by the chip without resetting the channel, the AF will not be able to find a new convergence in certain conditions. + This bug has been fixed in 01.03.01. + o Convergence problem will occur if tail displacement is above 384 ms + + + +------------------------------------ +OCT6100 Firmware Release 1.2.2 +Release date : April 26th 2004 + The remote client version is 22. +------------------------------------ + Added features : + o Illegals instruction occuring in the processor are loged and the processor is restore to normal + operation afterward. + o Added the Music Protection + o Added new features to Buffer playout ( API parameters : ulRepeatCount and ulDuration) + o Added support to longer tail displacement. + o Added tail displacement per channel. + + Bug Fixes : + o When setting the NLP to disable and resetting it to enable a transition period appears + where the signal is attenuated (known as Whoosh bug). + o The bug related to extended background noise (see 01.02.01) is fixed. + + Known issue : + o The channel operation mode in freeze does not support buffer playout. + o When doing buffer playout, if the channel is changed, the buffer playout must be restarted. + o Dominant speaker (conferencing) does not work when in G169_ALC mode. + +------------------------------------ +OCT6100 Firmware Release 1.2.1 +Release date : March 29th 2004 + The remote client version is 22. +------------------------------------ + Added features : + o The required disabling tone 2100Hz is detected in the tolerance region as defined in G.168. + However, the firmware does not disabled itself in this firmware release. This will be added in the release 01.02.02. + + Known issue : + o In this version, the feature extended background noise is not supported and will not work. + G.168 Test 9 is not supported in this version of firmware. It will be availabe in next release of firmware 01.02.02. + + + + +------------------------------------ +OCT6100 Firmware Release 1.2.0 +Release date : March 26th 2004 + The remote client version is 22. +------------------------------------ + + - Added features : + o NLP_BEHAVIOUR_B per channel: + This feature allows the user to adjust and optimize the behavior of the echo + canceller in the presence of non-linear spectrally rich distortion on the + echo cancelled path. + o Adjustable tail length per image release : + Adjustable tail length for each image release (up to the maximum value supported). + This modification is done in the firmware and cannot be changed by the user. + The adjustable tail length supported range from 32 ms to 128 ms by step of 4 ms. + o Recording length up to 2 minutes with the remote_client : + Now support long recording length (up to 2 minutes) and short recording length (16 seconds). + The short recording length is by default on all releases. + The long recording length is defined in the firmware. + The values are : 16, 32,60 and 120 seconds. + + - BUG Fixes: + o Multiple echo points : + In version 01.01.00, in some cases the convergence wasn't optimal. Now fixed in 01.02.00 + o G.168 Test 2A, Test 5 and Test 3C in PCM A-Law: + In version 01.01.00 when performing test in PCM A-Law G.168 tests 2A and 3C sometimes failed. Now fixed in 01.02.00 + o V.21 Modems : + In version 01.01.00, in some network configurations where the remote and local echo paths are very asymetrical V.21 calls + may fail to connect. This only happens in cases of echo points of 6dB and infinite ERL on the other side. Now fixed in version 01.02.00 + + - Known issue : + o G.168 Test 9 is not supported in this version of firmware. It will be availabe in next release of firmware 01.02.02. + Setting the feature extended background noise to TRUE will cause an illegal instruction in the firmware of the NLP. + + +------------------------------------ +OCT6100 Firmware Release 1.1.0 +Release date : November 5th 2003 + The remote client version is 21. +------------------------------------ + - Added features : + o Tone removal Enable (bit): + This function is used in conferencing applications where a user is sending commands to the bridge + using DTMF tones. After detection, the OCT6100 replaces the DTMF with background noise. + o Non-Linearity A : + This feature allows the user to adjust and optimize the behavior of the echo canceller in the presence + of non-linear white distortion on the echo cancelled path. For example, if ADPCM is present on the + path, adjusting this parameter will reduce the amount of residual echo. + o Default ERL : + By adjusting this parameter, the echo canceller performance can be improved during the convergence + period (<1s) if the ERL of the echo cancelled path is excessively high. + o Detection of the 1100Hz tone : + The detection of 1100Hz tone allows the gateways that integrate the OCT6100 to take appropriate action + in the presence of fax calls. + + - Bug Fixes : + o Fixed Buffer Playout problem where a delay had to be inserted between the opening of a channel and the playing + out of a buffer. + o SS5 and SS6 COT tones sometimes not detected correctly. + + - Known Issues (All will be fixed in the next firmware release): + o G.168 Test 2A, 5 and 3C: + When performing test in PCM A-Law G.168 tests 2A, 5 and 3C sometimes fail. + o Multiple echo points : + When multiple echo points are present, the convergence may not be optimal. + o V.21 Modems : + In some network configurations where the remote and local echo paths are very asymetrical V.21 calls + may fail to connect. This only happens in cases of echo points of 6dB and infinite ERL on the other side. + o CRC errors when opening channels : + CRC errors are detected when a channel is opened. This has no effect on voice quality. + o Following a 2100Hz without phase reversal call, some residual echo might occur for half a second on the following call, + even if the channel has been reset. + + diff --git a/patches/kdrivers/wanec/image/OCT6126FW-01.05.00/OCT6126-128S.ima b/patches/kdrivers/wanec/image/OCT6126FW-01.05.00/OCT6126-128S.ima new file mode 100644 index 0000000..94447e6 Binary files /dev/null and b/patches/kdrivers/wanec/image/OCT6126FW-01.05.00/OCT6126-128S.ima differ diff --git a/patches/kdrivers/wanec/image/OCT6126FW-01.05.00/OCT6126-128S_features.txt b/patches/kdrivers/wanec/image/OCT6126FW-01.05.00/OCT6126-128S_features.txt new file mode 100644 index 0000000..5cce73a --- /dev/null +++ b/patches/kdrivers/wanec/image/OCT6126FW-01.05.00/OCT6126-128S_features.txt @@ -0,0 +1,18 @@ +Basic Acoustic Echo Cancellation +ADPCM codec +Buffer playback at 31 entries per buffer list +Sin Tone Removal +Conferencing +Conferencing Noise Reduction +Dominant Speaker +Sout Noise Reduction +Idle Code Detection +Music Protection +Rin Manual Level Control +Rin Automatic Level Control +Rin High Level Compensation +Sout Manual Level Control +Sout Automatic Level Control (LR:0.9,GR:1.1) +Sout Automatic Level Enhancement +Sout Natural Listener Enhancement +Voice Activity Detection diff --git a/patches/kdrivers/wanec/image/OCT6126FW-01.05.00/OCT6126-128S_tones_config.txt b/patches/kdrivers/wanec/image/OCT6126FW-01.05.00/OCT6126-128S_tones_config.txt new file mode 100644 index 0000000..a01850d --- /dev/null +++ b/patches/kdrivers/wanec/image/OCT6126FW-01.05.00/OCT6126-128S_tones_config.txt @@ -0,0 +1,50 @@ +#define OCT6100_IMAGE_NAME "SANGOMA_1_CAPACITY:128" +#define OCT6100_IMAGE_VERSION "01.05.00" +#define OCT6100_IMAGE_DATE "Wed Aug 31 15:59:22 2005" +#define OCT6100_PROJECT_ID 0x00280000 +#define OCT6100_NUM_TONE 44 + +#define SOUT_G168_2100GB_ON 0x40000000 +#define SOUT_G168_2100GB_WSPR 0x40000002 +#define ROUT_G168_2100GB_ON 0x10000000 +#define ROUT_G168_2100GB_WSPR 0x10000002 +#define ROUT_SOUT_G168_2100HB_END 0x50000003 +#define SOUT_G168_1100GB_ON 0x40000004 +#define ROUT_G168_1100GB_ON 0x10000004 +#define SIN_SYSTEM5_2400 0x20000020 +#define SIN_SYSTEM5_2600 0x20000021 +#define SIN_SYSTEM5_2400_2600 0x20000022 +#define SIN_SYSTEM7_2000 0x20000023 +#define SIN_SYSTEM7_1780 0x20000024 +#define SOUT_DTMF_1 0x40000011 +#define SOUT_DTMF_2 0x40000012 +#define SOUT_DTMF_3 0x40000013 +#define SOUT_DTMF_A 0x4000001A +#define SOUT_DTMF_4 0x40000014 +#define SOUT_DTMF_5 0x40000015 +#define SOUT_DTMF_6 0x40000016 +#define SOUT_DTMF_B 0x4000001B +#define SOUT_DTMF_7 0x40000017 +#define SOUT_DTMF_8 0x40000018 +#define SOUT_DTMF_9 0x40000019 +#define SOUT_DTMF_C 0x4000001C +#define SOUT_DTMF_STAR 0x4000001E +#define SOUT_DTMF_0 0x40000010 +#define SOUT_DTMF_POUND 0x4000001F +#define SOUT_DTMF_D 0x4000001D +#define ROUT_DTMF_1 0x10000011 +#define ROUT_DTMF_2 0x10000012 +#define ROUT_DTMF_3 0x10000013 +#define ROUT_DTMF_A 0x1000001A +#define ROUT_DTMF_4 0x10000014 +#define ROUT_DTMF_5 0x10000015 +#define ROUT_DTMF_6 0x10000016 +#define ROUT_DTMF_B 0x1000001B +#define ROUT_DTMF_7 0x10000017 +#define ROUT_DTMF_8 0x10000018 +#define ROUT_DTMF_9 0x10000019 +#define ROUT_DTMF_C 0x1000001C +#define ROUT_DTMF_STAR 0x1000001E +#define ROUT_DTMF_0 0x10000010 +#define ROUT_DTMF_POUND 0x1000001F +#define ROUT_DTMF_D 0x1000001D diff --git a/patches/kdrivers/wanec/image/OCT6126FW-01.05.00/ReleaseNotes.txt b/patches/kdrivers/wanec/image/OCT6126FW-01.05.00/ReleaseNotes.txt new file mode 100644 index 0000000..249b528 --- /dev/null +++ b/patches/kdrivers/wanec/image/OCT6126FW-01.05.00/ReleaseNotes.txt @@ -0,0 +1,316 @@ +------------------------------------ +OCT6100 Firmware Release 1.5.0 +Release date : August 31st 2005: + The remote client version is 25. +------------------------------------ + + Solved issues: + + - PR-3315: ALC rate change too fast + - PR-3316: 1100 Hz CNG tone should not be removed by Sin Tone Removal + - PR-3319: Test G.168 10B sometime fails with NLP off + - PR-3323: In A-law network, echo cannot re-enable after a 2100Hz if silence is 0xFF. + - PR-3351: DTMF tones are attenuated by the flat ANR feature + - PR-3418: Added support of Noise Bleaching + - PR-3436: OCT6100 2100Hz disabling should be compliant to G.164 and G.165 + - PR-3553: The echo canceller cannot cancel some tone echoes + - PR-3557: Test G.168 2ab fails under certain conditions + - PR-3577: Sout direction ALC can not hold the level + - PR-3615: ALC gain reset to unity by silence + - PR-3617: AF & NLP behavior after Fax/Modem tone end + - PR-3635: Allow user to enable/disable idle code detection + - PR-3649: ALC gain is not stable with CSS + - PR-3651: Improved ALC robustness to non-linear echo paths + - PR-3652: Added support of VQE Activation Delay on 2100Hz with well spaced phase reversals + - PR-3654: Disable all VQE during a fax/modem call. + + + Known Issue: + o On some rare occasions, test 9 of G.168 will fail by up to one dB. This issue will be resolved in the + next firmware release. + + +------------------------------------ +OCT6100 Firmware Release 1.4.0 +Release date : July 1st 2005: + The remote client version is 25. +------------------------------------ + Added Feature : + o The NOISE_REDUCTION_FOR_MIXING feature is added. This is a noise reduction algorithm that does not inject + background noise. The intend is to mix music after this algorithm. It also attenuates greatly the + non-speech period for better mixing. If this algorithm is used alone (without later mixing), it will + not give a good subjective quality. + o Configurable gain adjustment for Automatic level control. There are 2 parameters : GAIN_RATE and LOSS_RATE. + The parameter can only be changed at compilation time. + + Removed Feature : + o The Sin energy is not calculated anymore when the RIN ANR feature is present. + + + Bug Fix: + o The WIRELESS Image has a better support for Fax/Modem calls. + o The attenuation speed of the all level controls have changed. The attenuation speed is now uniform even + as we approach the targeted gain. + o When DTMFs were present on the line, a gain of +- 2dB was applied. It is now removed. + o The DTMF Tone Removal feature does not clip the 1100 Hz. + + + Known Issue: + o In A-law networks where the idle line pattern is not A-law silence (0x55 or 0xD5) DC offset removal must be enabled + in order for 2100Hz guard band to be detected correctly in order for echo cancellation to be re-enabled + at the end of a data transmission. + + +------------------------------------ +OCT6100 Firmware Release 1.3.4 +Release date : March 16 2005: + The remote client version is 25. +------------------------------------ + Added Feature : + o The Playout stop and stop immediately functions have been modified so that there is no longer a need + for the host cpu to wait 8ms before playing the next event. + + Bug Fix: + o Better support for low speed fax/modems that which do not respect ITU-T V.25 (ie. without 2100Hz disabling tone). + o The calculation of the Rin and Sout energy level has been modified. The statistics now represent the + average energy of the signal over the last 256ms. + + Known Issue: + o In A-law networks where the idle line pattern is not A-law silence (0x55 or 0xD5) DC offset removal must be enabled + in order for 2100Hz guard band to be detected correctly in order for echo cancellation to be re-enabled + at the end of a data transmission. + o When doing ALC, ALE, NLE on the Sout port in an acoustic environment, the energy target may not always be valid + and may be off by a few dBoV. + This will be fixed in a future release. + o Statistics for Rin Energy and Sout Energy will not work with API versions earlier than 01.00-PR33. + o When using the DTMF Tone Removal feature, if a 1100Hz tone is sent on the Sin-Sout port, it will be clipped. This will + be fixed in a future release. + + +------------------------------------ +OCT6100 Firmware Release 1.3.3 +Release date : January 24 2005: + The remote client version is 25. +------------------------------------ + Added Feature : + o Per channel, configurable tail length. Minimum value is 32ms and maximum value is 128 ms. + o Per channel, configurable ANR settings added (ANR Segregation and ANR Signal to noise ratio improvement). + o Per channel, configurable speech recognition user mode at build time (allow user to enable or disable the feature). + o Per channel, configurable Rin Tone Removal feature. + o Per channel, configurable Rin noise reduction feature (allow user to enable or disable the feature). + o Per channel, configurable new acoustic echo algorithm for non-linear echo points (allow user to enable or disable the feature). + o Per channel, configurable Octasic music protection feature (allow user to enable or disable the feature). + o Per chip, at build time VAD sensitivity thresholds. + o Added Extensive external memory BIST that can be done at boot for production requirement. + + + Please refer to OCT6100 document for feature availability by product number. + + Bug Fix: + o Per channel, during a Fax Relay call VQE features can be reenable only after a configurable period of silence. + o Remaining issues after 0xFFFF echo point changes have been solved in 01.03.03. + o In some cases, activating the NLE could modify the gain on the Rout port + + Known issue : + o After opening a channel it will take 40ms before it is ready to start playing-out a buffer. + This is due to the setup time of the NLP when a channel is opened. + o In A-law networks where the idle line pattern is not A-law silence (0x55) DC offset removal must be enabled in order for 2100Hz guard band + to be detected correctly in order for echo cancellation to be re-enabled at the end of a data transmission. + o In Fax Relay Calls with long delays when only 1 echo canceller is present in the network, and the non echo cancelled echo point is strong, there might be + some call failure. This will be fixed in the next release 01.03.04. + o When doing ALC, ALE, NLE on the Sout port in an acoustic environment, the energy target will not always be valid. + This will be fixed in the next release 01.03.04 + + o ALC after 2100Hz + With Firmware Version 1.3.0, 1.3.1, 1.3.3 without Idle Code Detection, the ALC will not be able to change the gain applied until the channel is reset. + With Firmware Version 1.3.3 with Idle Code Detection, the ALC will not be able to change the gain applied between the maximum of 1.5 s and X ms of silence, where X is given by the user in the “ulToneDisablerVqeActivationDelay” field. + With Firmware Version 1.3.4, the ALC will not be able to change the gain applied until X ms of silence, where X is given by the user in the “ulToneDisablerVqeActivationDelay” field. + + o The tail displacement in version 1.3.3 and greater is incompatible with API versions earlier than 01.00-PR30 + + +------------------------------------ +OCT6100 Firmware Release 1.3.1.1 +Release date : September 24th 2004 + The remote client version is 24. +------------------------------------ + o This version is exactly the same as 1.3.1 except that IDLE detection and reset has been removed because it caused a problem where noise could be generated after a channel is IDLE for a long time. + See errata oct6100er-011204 for more information. + +------------------------------------ +OCT6100 Firmware Release 1.3.1 +Release date : September 24th 2004 + The remote client version is 24. +------------------------------------ + + o Tone Removal Feature: The algorithm has been improved to react within 16 ms when a DTMF is detected on the line. Note that this feature is + part of the conferencing suite of features. This feature should not be enabled with fax or modem calls. + o Added Advanced listener enhancement feature : This determines by how many dB the user wants the SIN voice to be above the RIN noise. + This value is set and enabled in API on a per channel basis. + o Added Natural listener enhancement feature : This will automatically apply a gain on the SOUT signal such that it matches the RIN voice. + This feature is enabled in the API on a per channel basis. + o Added Rout ANR feature : Noise reduction on the Rin-Rout path. + This feature is enabled in the API on a per channel basis. + o Added support for 31 or 127 events of playout queuing at the same time. Previously, the number of playout events was 127 only. This feature + allows the customer to save external memory space for playout (used by the playout events). + + o Added feature for VAD, to allow strong stationary signal (like tone or DTMF) to be detected as voice. Configurable on image build. + o Added mute support for both direction, Sin and Rin. Previously, this was done in the API. + o Added to the ALC algorithm a noise floor so that the algorithm does not adapt to very low voice signal. These low voice signals are + considered to be intentional by the user (like whispering). Configurable on image build. + o Added new hardware chip bist on boot up. + o Z VAD will work only if the RIN ANR is enabled. + + Fix bug : + o Convergence problem for tail displacement above 384 ms. + o Echo point changes could not be detected by the chip after 0xFFFF echo point changes. + + Known issue : + o After opening a channel it will take 40ms before it is ready to start playing-out a buffer. + This is due to the setup time of the NLP when a channel is opened. + o In A-law networks where the idle line pattern is not A-law silence (0x55) DC offset removal must be enabled in order for 2100Hz guard band + to be detected correctly in order for echo cancellation to be re-enabled at the end of a data transmission. + + +------------------------------------ +OCT6100 Firmware Release 1.3.0 +Release date : May 6th 2004 + The remote client version is 23. +------------------------------------ + Added features : + o Added Idle Code detection. The chip will reset after either + - 1 second of idle pattern in both direction + - 1 second of silence in both direction + o Both AEC and tail displacement at the same time are now supported. + o AEC has now a configurable tail length and configurable default ERL value. + o Automatic level control (G.169) is now supported. + o High level control is now supported. High level control consist of settting a maximum threshold value in dBm0 + so that the signal does not exceed this threshold value. + o 127 events (instead of 31) of playout are now supported. + o Wide band 2100Hz detection now supported. + o VQE only mode now supported. This will disable echo cancellation and allow all other VQE functions to work + (ANR, ALC, HLC, Tone detection, Conferencing, Playout) + + Fixed Bugs : + o Removed tone refresh events for 1100Hz + + Known Issue : + o After 0xFFFF echo point changes detected by the chip without resetting the channel, the AF will not be able to find a new convergence in certain conditions. + This bug has been fixed in 01.03.01. + o Convergence problem will occur if tail displacement is above 384 ms + + + +------------------------------------ +OCT6100 Firmware Release 1.2.2 +Release date : April 26th 2004 + The remote client version is 22. +------------------------------------ + Added features : + o Illegals instruction occuring in the processor are loged and the processor is restore to normal + operation afterward. + o Added the Music Protection + o Added new features to Buffer playout ( API parameters : ulRepeatCount and ulDuration) + o Added support to longer tail displacement. + o Added tail displacement per channel. + + Bug Fixes : + o When setting the NLP to disable and resetting it to enable a transition period appears + where the signal is attenuated (known as Whoosh bug). + o The bug related to extended background noise (see 01.02.01) is fixed. + + Known issue : + o The channel operation mode in freeze does not support buffer playout. + o When doing buffer playout, if the channel is changed, the buffer playout must be restarted. + o Dominant speaker (conferencing) does not work when in G169_ALC mode. + +------------------------------------ +OCT6100 Firmware Release 1.2.1 +Release date : March 29th 2004 + The remote client version is 22. +------------------------------------ + Added features : + o The required disabling tone 2100Hz is detected in the tolerance region as defined in G.168. + However, the firmware does not disabled itself in this firmware release. This will be added in the release 01.02.02. + + Known issue : + o In this version, the feature extended background noise is not supported and will not work. + G.168 Test 9 is not supported in this version of firmware. It will be availabe in next release of firmware 01.02.02. + + + + +------------------------------------ +OCT6100 Firmware Release 1.2.0 +Release date : March 26th 2004 + The remote client version is 22. +------------------------------------ + + - Added features : + o NLP_BEHAVIOUR_B per channel: + This feature allows the user to adjust and optimize the behavior of the echo + canceller in the presence of non-linear spectrally rich distortion on the + echo cancelled path. + o Adjustable tail length per image release : + Adjustable tail length for each image release (up to the maximum value supported). + This modification is done in the firmware and cannot be changed by the user. + The adjustable tail length supported range from 32 ms to 128 ms by step of 4 ms. + o Recording length up to 2 minutes with the remote_client : + Now support long recording length (up to 2 minutes) and short recording length (16 seconds). + The short recording length is by default on all releases. + The long recording length is defined in the firmware. + The values are : 16, 32,60 and 120 seconds. + + - BUG Fixes: + o Multiple echo points : + In version 01.01.00, in some cases the convergence wasn't optimal. Now fixed in 01.02.00 + o G.168 Test 2A, Test 5 and Test 3C in PCM A-Law: + In version 01.01.00 when performing test in PCM A-Law G.168 tests 2A and 3C sometimes failed. Now fixed in 01.02.00 + o V.21 Modems : + In version 01.01.00, in some network configurations where the remote and local echo paths are very asymetrical V.21 calls + may fail to connect. This only happens in cases of echo points of 6dB and infinite ERL on the other side. Now fixed in version 01.02.00 + + - Known issue : + o G.168 Test 9 is not supported in this version of firmware. It will be availabe in next release of firmware 01.02.02. + Setting the feature extended background noise to TRUE will cause an illegal instruction in the firmware of the NLP. + + +------------------------------------ +OCT6100 Firmware Release 1.1.0 +Release date : November 5th 2003 + The remote client version is 21. +------------------------------------ + - Added features : + o Tone removal Enable (bit): + This function is used in conferencing applications where a user is sending commands to the bridge + using DTMF tones. After detection, the OCT6100 replaces the DTMF with background noise. + o Non-Linearity A : + This feature allows the user to adjust and optimize the behavior of the echo canceller in the presence + of non-linear white distortion on the echo cancelled path. For example, if ADPCM is present on the + path, adjusting this parameter will reduce the amount of residual echo. + o Default ERL : + By adjusting this parameter, the echo canceller performance can be improved during the convergence + period (<1s) if the ERL of the echo cancelled path is excessively high. + o Detection of the 1100Hz tone : + The detection of 1100Hz tone allows the gateways that integrate the OCT6100 to take appropriate action + in the presence of fax calls. + + - Bug Fixes : + o Fixed Buffer Playout problem where a delay had to be inserted between the opening of a channel and the playing + out of a buffer. + o SS5 and SS6 COT tones sometimes not detected correctly. + + - Known Issues (All will be fixed in the next firmware release): + o G.168 Test 2A, 5 and 3C: + When performing test in PCM A-Law G.168 tests 2A, 5 and 3C sometimes fail. + o Multiple echo points : + When multiple echo points are present, the convergence may not be optimal. + o V.21 Modems : + In some network configurations where the remote and local echo paths are very asymetrical V.21 calls + may fail to connect. This only happens in cases of echo points of 6dB and infinite ERL on the other side. + o CRC errors when opening channels : + CRC errors are detected when a channel is opened. This has no effect on voice quality. + o Following a 2100Hz without phase reversal call, some residual echo might occur for half a second on the following call, + even if the channel has been reset. + + diff --git a/patches/kdrivers/wanec/image/OCT6126FW-01.05.01/OCT6126-128S.ima b/patches/kdrivers/wanec/image/OCT6126FW-01.05.01/OCT6126-128S.ima new file mode 100644 index 0000000..cd10beb Binary files /dev/null and b/patches/kdrivers/wanec/image/OCT6126FW-01.05.01/OCT6126-128S.ima differ diff --git a/patches/kdrivers/wanec/image/OCT6126FW-01.05.01/OCT6126-128S.ima.org b/patches/kdrivers/wanec/image/OCT6126FW-01.05.01/OCT6126-128S.ima.org new file mode 100644 index 0000000..b8d0fea Binary files /dev/null and b/patches/kdrivers/wanec/image/OCT6126FW-01.05.01/OCT6126-128S.ima.org differ diff --git a/patches/kdrivers/wanec/image/OCT6126FW-01.05.01/OCT6126-128S_features.txt b/patches/kdrivers/wanec/image/OCT6126FW-01.05.01/OCT6126-128S_features.txt new file mode 100644 index 0000000..5cce73a --- /dev/null +++ b/patches/kdrivers/wanec/image/OCT6126FW-01.05.01/OCT6126-128S_features.txt @@ -0,0 +1,18 @@ +Basic Acoustic Echo Cancellation +ADPCM codec +Buffer playback at 31 entries per buffer list +Sin Tone Removal +Conferencing +Conferencing Noise Reduction +Dominant Speaker +Sout Noise Reduction +Idle Code Detection +Music Protection +Rin Manual Level Control +Rin Automatic Level Control +Rin High Level Compensation +Sout Manual Level Control +Sout Automatic Level Control (LR:0.9,GR:1.1) +Sout Automatic Level Enhancement +Sout Natural Listener Enhancement +Voice Activity Detection diff --git a/patches/kdrivers/wanec/image/OCT6126FW-01.05.01/OCT6126-128S_tones_config.txt b/patches/kdrivers/wanec/image/OCT6126FW-01.05.01/OCT6126-128S_tones_config.txt new file mode 100644 index 0000000..c42c217 --- /dev/null +++ b/patches/kdrivers/wanec/image/OCT6126FW-01.05.01/OCT6126-128S_tones_config.txt @@ -0,0 +1,50 @@ +#define OCT6100_IMAGE_NAME "SANGOMA_1_CAPACITY:128" +#define OCT6100_IMAGE_VERSION "01.05.01" +#define OCT6100_IMAGE_DATE "Mon Sep 26 17:24:53 2005" +#define OCT6100_PROJECT_ID 0x00280000 +#define OCT6100_NUM_TONE 44 + +#define SOUT_G168_2100GB_ON 0x40000000 +#define SOUT_G168_2100GB_WSPR 0x40000002 +#define ROUT_G168_2100GB_ON 0x10000000 +#define ROUT_G168_2100GB_WSPR 0x10000002 +#define ROUT_SOUT_G168_2100HB_END 0x50000003 +#define SOUT_G168_1100GB_ON 0x40000004 +#define ROUT_G168_1100GB_ON 0x10000004 +#define SIN_SYSTEM5_2400 0x20000020 +#define SIN_SYSTEM5_2600 0x20000021 +#define SIN_SYSTEM5_2400_2600 0x20000022 +#define SIN_SYSTEM7_2000 0x20000023 +#define SIN_SYSTEM7_1780 0x20000024 +#define SOUT_DTMF_1 0x40000011 +#define SOUT_DTMF_2 0x40000012 +#define SOUT_DTMF_3 0x40000013 +#define SOUT_DTMF_A 0x4000001A +#define SOUT_DTMF_4 0x40000014 +#define SOUT_DTMF_5 0x40000015 +#define SOUT_DTMF_6 0x40000016 +#define SOUT_DTMF_B 0x4000001B +#define SOUT_DTMF_7 0x40000017 +#define SOUT_DTMF_8 0x40000018 +#define SOUT_DTMF_9 0x40000019 +#define SOUT_DTMF_C 0x4000001C +#define SOUT_DTMF_STAR 0x4000001E +#define SOUT_DTMF_0 0x40000010 +#define SOUT_DTMF_POUND 0x4000001F +#define SOUT_DTMF_D 0x4000001D +#define ROUT_DTMF_1 0x10000011 +#define ROUT_DTMF_2 0x10000012 +#define ROUT_DTMF_3 0x10000013 +#define ROUT_DTMF_A 0x1000001A +#define ROUT_DTMF_4 0x10000014 +#define ROUT_DTMF_5 0x10000015 +#define ROUT_DTMF_6 0x10000016 +#define ROUT_DTMF_B 0x1000001B +#define ROUT_DTMF_7 0x10000017 +#define ROUT_DTMF_8 0x10000018 +#define ROUT_DTMF_9 0x10000019 +#define ROUT_DTMF_C 0x1000001C +#define ROUT_DTMF_STAR 0x1000001E +#define ROUT_DTMF_0 0x10000010 +#define ROUT_DTMF_POUND 0x1000001F +#define ROUT_DTMF_D 0x1000001D diff --git a/patches/kdrivers/wanec/image/OCT6126FW-01.05.01/ReleaseNotes.txt b/patches/kdrivers/wanec/image/OCT6126FW-01.05.01/ReleaseNotes.txt new file mode 100644 index 0000000..d0e0ef4 --- /dev/null +++ b/patches/kdrivers/wanec/image/OCT6126FW-01.05.01/ReleaseNotes.txt @@ -0,0 +1,340 @@ +------------------------------------ +OCT6100 Firmware Release 1.5.1 +Release date : September 26th 2005 + The remote client version is 25. +------------------------------------ + Solved issue : + - PR-3657: FAX transmission may not work when setting ulToneDisablerVqeActivationDelay to a different value than the default (300ms) + + Known issues : + o When detecting a 2100 Hz with or without phase reversal, all the following VQE features will be disabled + until a period of silence of length ulToneDisablerVqeActivationDelay is detected regardless of the setting + of Tone Disabler parameter (fEnableToneDisabler). This issue will be resolved in the + next firmware release. + - Adaptive noise reduction + - Conferencing noise reduction + - All Level controls on Rin and Sin (MLC, ALC, HLC, ALE, NLE). + - Rout Noise reduction + - Sin Tone removal + + o On some rare occasions, test 9 of G.168 will fail by up to one dB. This issue will be resolved in the + next firmware release. + + + +------------------------------------ +OCT6100 Firmware Release 1.5.0 +Release date : August 31st 2005: + The remote client version is 25. +------------------------------------ + + Solved issues: + + - PR-3315: ALC rate change too fast + - PR-3316: 1100 Hz CNG tone should not be removed by Sin Tone Removal + - PR-3319: Test G.168 10B sometime fails with NLP off + - PR-3323: In A-law network, echo cannot re-enable after a 2100Hz if silence is 0xFF. + - PR-3351: DTMF tones are attenuated by the flat ANR feature + - PR-3418: Added support of Noise Bleaching + - PR-3436: OCT6100 2100Hz disabling should be compliant to G.164 and G.165 + - PR-3553: The echo canceller cannot cancel some tone echoes + - PR-3557: Test G.168 2ab fails under certain conditions + - PR-3577: Sout direction ALC can not hold the level + - PR-3615: ALC gain reset to unity by silence + - PR-3617: AF & NLP behavior after Fax/Modem tone end + - PR-3635: Allow user to enable/disable idle code detection + - PR-3649: ALC gain is not stable with CSS + - PR-3651: Improved ALC robustness to non-linear echo paths + - PR-3652: Added support of VQE Activation Delay on 2100Hz with well spaced phase reversals + - PR-3654: Disable all VQE during a fax/modem call. + + + Known Issue: + o On some rare occasions, test 9 of G.168 will fail by up to one dB. This issue will be resolved in the + next firmware release. + + +------------------------------------ +OCT6100 Firmware Release 1.4.0 +Release date : July 1st 2005: + The remote client version is 25. +------------------------------------ + Added Feature : + o The NOISE_REDUCTION_FOR_MIXING feature is added. This is a noise reduction algorithm that does not inject + background noise. The intend is to mix music after this algorithm. It also attenuates greatly the + non-speech period for better mixing. If this algorithm is used alone (without later mixing), it will + not give a good subjective quality. + o Configurable gain adjustment for Automatic level control. There are 2 parameters : GAIN_RATE and LOSS_RATE. + The parameter can only be changed at compilation time. + + Removed Feature : + o The Sin energy is not calculated anymore when the RIN ANR feature is present. + + + Bug Fix: + o The WIRELESS Image has a better support for Fax/Modem calls. + o The attenuation speed of the all level controls have changed. The attenuation speed is now uniform even + as we approach the targeted gain. + o When DTMFs were present on the line, a gain of +- 2dB was applied. It is now removed. + o The DTMF Tone Removal feature does not clip the 1100 Hz. + + + Known Issue: + o In A-law networks where the idle line pattern is not A-law silence (0x55 or 0xD5) DC offset removal must be enabled + in order for 2100Hz guard band to be detected correctly in order for echo cancellation to be re-enabled + at the end of a data transmission. + + +------------------------------------ +OCT6100 Firmware Release 1.3.4 +Release date : March 16 2005: + The remote client version is 25. +------------------------------------ + Added Feature : + o The Playout stop and stop immediately functions have been modified so that there is no longer a need + for the host cpu to wait 8ms before playing the next event. + + Bug Fix: + o Better support for low speed fax/modems that which do not respect ITU-T V.25 (ie. without 2100Hz disabling tone). + o The calculation of the Rin and Sout energy level has been modified. The statistics now represent the + average energy of the signal over the last 256ms. + + Known Issue: + o In A-law networks where the idle line pattern is not A-law silence (0x55 or 0xD5) DC offset removal must be enabled + in order for 2100Hz guard band to be detected correctly in order for echo cancellation to be re-enabled + at the end of a data transmission. + o When doing ALC, ALE, NLE on the Sout port in an acoustic environment, the energy target may not always be valid + and may be off by a few dBoV. + This will be fixed in a future release. + o Statistics for Rin Energy and Sout Energy will not work with API versions earlier than 01.00-PR33. + o When using the DTMF Tone Removal feature, if a 1100Hz tone is sent on the Sin-Sout port, it will be clipped. This will + be fixed in a future release. + + +------------------------------------ +OCT6100 Firmware Release 1.3.3 +Release date : January 24 2005: + The remote client version is 25. +------------------------------------ + Added Feature : + o Per channel, configurable tail length. Minimum value is 32ms and maximum value is 128 ms. + o Per channel, configurable ANR settings added (ANR Segregation and ANR Signal to noise ratio improvement). + o Per channel, configurable speech recognition user mode at build time (allow user to enable or disable the feature). + o Per channel, configurable Rin Tone Removal feature. + o Per channel, configurable Rin noise reduction feature (allow user to enable or disable the feature). + o Per channel, configurable new acoustic echo algorithm for non-linear echo points (allow user to enable or disable the feature). + o Per channel, configurable Octasic music protection feature (allow user to enable or disable the feature). + o Per chip, at build time VAD sensitivity thresholds. + o Added Extensive external memory BIST that can be done at boot for production requirement. + + + Please refer to OCT6100 document for feature availability by product number. + + Bug Fix: + o Per channel, during a Fax Relay call VQE features can be reenable only after a configurable period of silence. + o Remaining issues after 0xFFFF echo point changes have been solved in 01.03.03. + o In some cases, activating the NLE could modify the gain on the Rout port + + Known issue : + o After opening a channel it will take 40ms before it is ready to start playing-out a buffer. + This is due to the setup time of the NLP when a channel is opened. + o In A-law networks where the idle line pattern is not A-law silence (0x55) DC offset removal must be enabled in order for 2100Hz guard band + to be detected correctly in order for echo cancellation to be re-enabled at the end of a data transmission. + o In Fax Relay Calls with long delays when only 1 echo canceller is present in the network, and the non echo cancelled echo point is strong, there might be + some call failure. This will be fixed in the next release 01.03.04. + o When doing ALC, ALE, NLE on the Sout port in an acoustic environment, the energy target will not always be valid. + This will be fixed in the next release 01.03.04 + + o ALC after 2100Hz + With Firmware Version 1.3.0, 1.3.1, 1.3.3 without Idle Code Detection, the ALC will not be able to change the gain applied until the channel is reset. + With Firmware Version 1.3.3 with Idle Code Detection, the ALC will not be able to change the gain applied between the maximum of 1.5 s and X ms of silence, where X is given by the user in the “ulToneDisablerVqeActivationDelay” field. + With Firmware Version 1.3.4, the ALC will not be able to change the gain applied until X ms of silence, where X is given by the user in the “ulToneDisablerVqeActivationDelay” field. + + o The tail displacement in version 1.3.3 and greater is incompatible with API versions earlier than 01.00-PR30 + + +------------------------------------ +OCT6100 Firmware Release 1.3.1.1 +Release date : September 24th 2004 + The remote client version is 24. +------------------------------------ + o This version is exactly the same as 1.3.1 except that IDLE detection and reset has been removed because it caused a problem where noise could be generated after a channel is IDLE for a long time. + See errata oct6100er-011204 for more information. + +------------------------------------ +OCT6100 Firmware Release 1.3.1 +Release date : September 24th 2004 + The remote client version is 24. +------------------------------------ + + o Tone Removal Feature: The algorithm has been improved to react within 16 ms when a DTMF is detected on the line. Note that this feature is + part of the conferencing suite of features. This feature should not be enabled with fax or modem calls. + o Added Advanced listener enhancement feature : This determines by how many dB the user wants the SIN voice to be above the RIN noise. + This value is set and enabled in API on a per channel basis. + o Added Natural listener enhancement feature : This will automatically apply a gain on the SOUT signal such that it matches the RIN voice. + This feature is enabled in the API on a per channel basis. + o Added Rout ANR feature : Noise reduction on the Rin-Rout path. + This feature is enabled in the API on a per channel basis. + o Added support for 31 or 127 events of playout queuing at the same time. Previously, the number of playout events was 127 only. This feature + allows the customer to save external memory space for playout (used by the playout events). + + o Added feature for VAD, to allow strong stationary signal (like tone or DTMF) to be detected as voice. Configurable on image build. + o Added mute support for both direction, Sin and Rin. Previously, this was done in the API. + o Added to the ALC algorithm a noise floor so that the algorithm does not adapt to very low voice signal. These low voice signals are + considered to be intentional by the user (like whispering). Configurable on image build. + o Added new hardware chip bist on boot up. + o Z VAD will work only if the RIN ANR is enabled. + + Fix bug : + o Convergence problem for tail displacement above 384 ms. + o Echo point changes could not be detected by the chip after 0xFFFF echo point changes. + + Known issue : + o After opening a channel it will take 40ms before it is ready to start playing-out a buffer. + This is due to the setup time of the NLP when a channel is opened. + o In A-law networks where the idle line pattern is not A-law silence (0x55) DC offset removal must be enabled in order for 2100Hz guard band + to be detected correctly in order for echo cancellation to be re-enabled at the end of a data transmission. + + +------------------------------------ +OCT6100 Firmware Release 1.3.0 +Release date : May 6th 2004 + The remote client version is 23. +------------------------------------ + Added features : + o Added Idle Code detection. The chip will reset after either + - 1 second of idle pattern in both direction + - 1 second of silence in both direction + o Both AEC and tail displacement at the same time are now supported. + o AEC has now a configurable tail length and configurable default ERL value. + o Automatic level control (G.169) is now supported. + o High level control is now supported. High level control consist of settting a maximum threshold value in dBm0 + so that the signal does not exceed this threshold value. + o 127 events (instead of 31) of playout are now supported. + o Wide band 2100Hz detection now supported. + o VQE only mode now supported. This will disable echo cancellation and allow all other VQE functions to work + (ANR, ALC, HLC, Tone detection, Conferencing, Playout) + + Fixed Bugs : + o Removed tone refresh events for 1100Hz + + Known Issue : + o After 0xFFFF echo point changes detected by the chip without resetting the channel, the AF will not be able to find a new convergence in certain conditions. + This bug has been fixed in 01.03.01. + o Convergence problem will occur if tail displacement is above 384 ms + + + +------------------------------------ +OCT6100 Firmware Release 1.2.2 +Release date : April 26th 2004 + The remote client version is 22. +------------------------------------ + Added features : + o Illegals instruction occuring in the processor are loged and the processor is restore to normal + operation afterward. + o Added the Music Protection + o Added new features to Buffer playout ( API parameters : ulRepeatCount and ulDuration) + o Added support to longer tail displacement. + o Added tail displacement per channel. + + Bug Fixes : + o When setting the NLP to disable and resetting it to enable a transition period appears + where the signal is attenuated (known as Whoosh bug). + o The bug related to extended background noise (see 01.02.01) is fixed. + + Known issue : + o The channel operation mode in freeze does not support buffer playout. + o When doing buffer playout, if the channel is changed, the buffer playout must be restarted. + o Dominant speaker (conferencing) does not work when in G169_ALC mode. + +------------------------------------ +OCT6100 Firmware Release 1.2.1 +Release date : March 29th 2004 + The remote client version is 22. +------------------------------------ + Added features : + o The required disabling tone 2100Hz is detected in the tolerance region as defined in G.168. + However, the firmware does not disabled itself in this firmware release. This will be added in the release 01.02.02. + + Known issue : + o In this version, the feature extended background noise is not supported and will not work. + G.168 Test 9 is not supported in this version of firmware. It will be availabe in next release of firmware 01.02.02. + + + + +------------------------------------ +OCT6100 Firmware Release 1.2.0 +Release date : March 26th 2004 + The remote client version is 22. +------------------------------------ + + - Added features : + o NLP_BEHAVIOUR_B per channel: + This feature allows the user to adjust and optimize the behavior of the echo + canceller in the presence of non-linear spectrally rich distortion on the + echo cancelled path. + o Adjustable tail length per image release : + Adjustable tail length for each image release (up to the maximum value supported). + This modification is done in the firmware and cannot be changed by the user. + The adjustable tail length supported range from 32 ms to 128 ms by step of 4 ms. + o Recording length up to 2 minutes with the remote_client : + Now support long recording length (up to 2 minutes) and short recording length (16 seconds). + The short recording length is by default on all releases. + The long recording length is defined in the firmware. + The values are : 16, 32,60 and 120 seconds. + + - BUG Fixes: + o Multiple echo points : + In version 01.01.00, in some cases the convergence wasn't optimal. Now fixed in 01.02.00 + o G.168 Test 2A, Test 5 and Test 3C in PCM A-Law: + In version 01.01.00 when performing test in PCM A-Law G.168 tests 2A and 3C sometimes failed. Now fixed in 01.02.00 + o V.21 Modems : + In version 01.01.00, in some network configurations where the remote and local echo paths are very asymetrical V.21 calls + may fail to connect. This only happens in cases of echo points of 6dB and infinite ERL on the other side. Now fixed in version 01.02.00 + + - Known issue : + o G.168 Test 9 is not supported in this version of firmware. It will be availabe in next release of firmware 01.02.02. + Setting the feature extended background noise to TRUE will cause an illegal instruction in the firmware of the NLP. + + +------------------------------------ +OCT6100 Firmware Release 1.1.0 +Release date : November 5th 2003 + The remote client version is 21. +------------------------------------ + - Added features : + o Tone removal Enable (bit): + This function is used in conferencing applications where a user is sending commands to the bridge + using DTMF tones. After detection, the OCT6100 replaces the DTMF with background noise. + o Non-Linearity A : + This feature allows the user to adjust and optimize the behavior of the echo canceller in the presence + of non-linear white distortion on the echo cancelled path. For example, if ADPCM is present on the + path, adjusting this parameter will reduce the amount of residual echo. + o Default ERL : + By adjusting this parameter, the echo canceller performance can be improved during the convergence + period (<1s) if the ERL of the echo cancelled path is excessively high. + o Detection of the 1100Hz tone : + The detection of 1100Hz tone allows the gateways that integrate the OCT6100 to take appropriate action + in the presence of fax calls. + + - Bug Fixes : + o Fixed Buffer Playout problem where a delay had to be inserted between the opening of a channel and the playing + out of a buffer. + o SS5 and SS6 COT tones sometimes not detected correctly. + + - Known Issues (All will be fixed in the next firmware release): + o G.168 Test 2A, 5 and 3C: + When performing test in PCM A-Law G.168 tests 2A, 5 and 3C sometimes fail. + o Multiple echo points : + When multiple echo points are present, the convergence may not be optimal. + o V.21 Modems : + In some network configurations where the remote and local echo paths are very asymetrical V.21 calls + may fail to connect. This only happens in cases of echo points of 6dB and infinite ERL on the other side. + o CRC errors when opening channels : + CRC errors are detected when a channel is opened. This has no effect on voice quality. + o Following a 2100Hz without phase reversal call, some residual echo might occur for half a second on the following call, + even if the channel has been reset. + + diff --git a/patches/kdrivers/wanec/oct6100_api b/patches/kdrivers/wanec/oct6100_api index 6d591a5..e2b7c26 120000 --- a/patches/kdrivers/wanec/oct6100_api +++ b/patches/kdrivers/wanec/oct6100_api @@ -1 +1 @@ -oct6100_api.PR48 \ No newline at end of file +oct6100_api.PR43 \ No newline at end of file diff --git a/patches/kdrivers/wanec/oct6100_api.PR43/apilib/bt/makefile b/patches/kdrivers/wanec/oct6100_api.PR43/apilib/bt/makefile new file mode 100755 index 0000000..b6c73b5 --- /dev/null +++ b/patches/kdrivers/wanec/oct6100_api.PR43/apilib/bt/makefile @@ -0,0 +1,9 @@ +# +# DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source +# file to this component. This file merely indirects to the real make file +# that is shared by all the driver components of the Windows NT DDK +# + +!INCLUDE $(NTMAKEENV)\makefile.def + + diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/apilib/bt/octapi_bt0.c b/patches/kdrivers/wanec/oct6100_api.PR43/apilib/bt/octapi_bt0.c similarity index 96% rename from patches/kdrivers/wanec/oct6100_api.PR48/apilib/bt/octapi_bt0.c rename to patches/kdrivers/wanec/oct6100_api.PR43/apilib/bt/octapi_bt0.c index e419fe3..cf52b7d 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/apilib/bt/octapi_bt0.c +++ b/patches/kdrivers/wanec/oct6100_api.PR43/apilib/bt/octapi_bt0.c @@ -2,7 +2,7 @@ File: octapi_bt0.c - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -23,7 +23,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 18 $ @@ -32,6 +32,8 @@ $Octasic_Revision: 18 $ #include "octapi_bt0_private.h" +UINT32 OctApiBt0RemoveNode3(OCTAPI_BT0 *,OCTAPI_BT0_LINK *, UINT32 *, OCTAPI_BT0_LINK *, UINT32, OCTAPI_BT0_LINK *, UINT32 *); +UINT32 OctApiBt0QueryNode2(OCTAPI_BT0 *,OCTAPI_BT0_LINK *,UINT32 * lkey,UINT32 *); UINT32 OctApiBt0GetSize(UINT32 number_of_items,UINT32 key_size, UINT32 data_size, UINT32 * b_size) { diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/apilib/bt/octapi_bt0_private.h b/patches/kdrivers/wanec/oct6100_api.PR43/apilib/bt/octapi_bt0_private.h similarity index 96% rename from patches/kdrivers/wanec/oct6100_api.PR48/apilib/bt/octapi_bt0_private.h rename to patches/kdrivers/wanec/oct6100_api.PR43/apilib/bt/octapi_bt0_private.h index b0c501a..7b978e6 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/apilib/bt/octapi_bt0_private.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/apilib/bt/octapi_bt0_private.h @@ -23,7 +23,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 11 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR43/apilib/bt/sources b/patches/kdrivers/wanec/oct6100_api.PR43/apilib/bt/sources new file mode 100755 index 0000000..642a945 --- /dev/null +++ b/patches/kdrivers/wanec/oct6100_api.PR43/apilib/bt/sources @@ -0,0 +1,31 @@ +TARGETNAME=octapi_bt0 +TARGETTYPE=DRIVER_LIBRARY +TARGETPATH=obj + +TARGETLIBS=$(DDK_LIB_PATH)\ntoskrnl.lib + +MSC_WARNING_LEVEL=-W3 -WX + +#make sure no optimization done, even in "Free" build: +MSC_OPTIMIZATION=/Odi + +C_DEFINES=$(C_DEFINES) -D__WINDOWS__ -D__KERNEL__ -DVIRTUAL_IF_DRV +C_DEFINES=$(C_DEFINES) -DSANG_DBG + +#build can not expand Env Vars names longer than 8 chars, so use +#absolute paths +INCLUDES=$(DDK_INC_PATH);\ +D:\cvshome\development\wanpipe_windows\include\pnp;\ +D:\cvshome\development\wanpipe_windows\include\api;\ +D:\cvshome\development\wanpipe_windows\include\octasic\include;\ +D:\cvshome\development\wanpipe_windows\include\octasic\include\oct6100api;\ +D:\cvshome\development\wanpipe_windows\include\octasic\octdeviceapi\oct6100api;\ +D:\cvshome\development\wanpipe_windows\include\octasic\apilib\llman;\ +D:\cvshome\development\wanpipe_windows\include\octasic\include\apilib;\ +D:\cvshome\development\wanpipe_windows\include\octasic\include\octrpc;\ +D:\cvshome\development\wanpipe_windows\include\octasic\apilib\bt;\ +D:\cvshome\development\wanpipe_windows\include\debug + +SOURCES= octapi_bt0.c + + diff --git a/patches/kdrivers/wanec/oct6100_api.PR43/apilib/largmath/makefile b/patches/kdrivers/wanec/oct6100_api.PR43/apilib/largmath/makefile new file mode 100755 index 0000000..b6c73b5 --- /dev/null +++ b/patches/kdrivers/wanec/oct6100_api.PR43/apilib/largmath/makefile @@ -0,0 +1,9 @@ +# +# DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source +# file to this component. This file merely indirects to the real make file +# that is shared by all the driver components of the Windows NT DDK +# + +!INCLUDE $(NTMAKEENV)\makefile.def + + diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/apilib/largmath/octapi_largmath.c b/patches/kdrivers/wanec/oct6100_api.PR43/apilib/largmath/octapi_largmath.c similarity index 96% rename from patches/kdrivers/wanec/oct6100_api.PR48/apilib/largmath/octapi_largmath.c rename to patches/kdrivers/wanec/oct6100_api.PR43/apilib/largmath/octapi_largmath.c index fac7281..5d6a884 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/apilib/largmath/octapi_largmath.c +++ b/patches/kdrivers/wanec/oct6100_api.PR43/apilib/largmath/octapi_largmath.c @@ -2,7 +2,7 @@ File: octapi_largmath.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -23,7 +23,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 10 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR43/apilib/largmath/sources b/patches/kdrivers/wanec/oct6100_api.PR43/apilib/largmath/sources new file mode 100755 index 0000000..a6be2d6 --- /dev/null +++ b/patches/kdrivers/wanec/oct6100_api.PR43/apilib/largmath/sources @@ -0,0 +1,31 @@ +TARGETNAME=octapi_largmath +TARGETTYPE=DRIVER_LIBRARY +TARGETPATH=obj + +TARGETLIBS=$(DDK_LIB_PATH)\ntoskrnl.lib + +MSC_WARNING_LEVEL=-W3 -WX + +#make sure no optimization done, even in "Free" build: +MSC_OPTIMIZATION=/Odi + +C_DEFINES=$(C_DEFINES) -D__WINDOWS__ -D__KERNEL__ -DVIRTUAL_IF_DRV +C_DEFINES=$(C_DEFINES) -DSANG_DBG + +#build can not expand Env Vars names longer than 8 chars, so use +#absolute paths +INCLUDES=$(DDK_INC_PATH);\ +D:\cvshome\development\wanpipe_windows\include\pnp;\ +D:\cvshome\development\wanpipe_windows\include\api;\ +D:\cvshome\development\wanpipe_windows\include\octasic\include;\ +D:\cvshome\development\wanpipe_windows\include\octasic\include\oct6100api;\ +D:\cvshome\development\wanpipe_windows\include\octasic\octdeviceapi\oct6100api;\ +D:\cvshome\development\wanpipe_windows\include\octasic\apilib\llman;\ +D:\cvshome\development\wanpipe_windows\include\octasic\include\apilib;\ +D:\cvshome\development\wanpipe_windows\include\octasic\include\octrpc;\ +D:\cvshome\development\wanpipe_windows\include\octasic\apilib\bt;\ +D:\cvshome\development\wanpipe_windows\include\debug + +SOURCES= octapi_largmath.c + + diff --git a/patches/kdrivers/wanec/oct6100_api.PR43/apilib/llman/makefile b/patches/kdrivers/wanec/oct6100_api.PR43/apilib/llman/makefile new file mode 100755 index 0000000..b6c73b5 --- /dev/null +++ b/patches/kdrivers/wanec/oct6100_api.PR43/apilib/llman/makefile @@ -0,0 +1,9 @@ +# +# DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source +# file to this component. This file merely indirects to the real make file +# that is shared by all the driver components of the Windows NT DDK +# + +!INCLUDE $(NTMAKEENV)\makefile.def + + diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/apilib/llman/octapi_llman.c b/patches/kdrivers/wanec/oct6100_api.PR43/apilib/llman/octapi_llman.c similarity index 96% rename from patches/kdrivers/wanec/oct6100_api.PR48/apilib/llman/octapi_llman.c rename to patches/kdrivers/wanec/oct6100_api.PR43/apilib/llman/octapi_llman.c index e5de0de..dd8ed4b 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/apilib/llman/octapi_llman.c +++ b/patches/kdrivers/wanec/oct6100_api.PR43/apilib/llman/octapi_llman.c @@ -2,7 +2,7 @@ File: octapi_llman.c - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -24,7 +24,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 22 $ @@ -34,6 +34,8 @@ $Octasic_Revision: 22 $ #include "apilib/octapi_largmath.h" +UINT32 OctApiLlm2ListDelete(void * l,UINT32 list_handle); + /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ | API UTILITIES | diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/apilib/llman/octapi_llman_private.h b/patches/kdrivers/wanec/oct6100_api.PR43/apilib/llman/octapi_llman_private.h similarity index 96% rename from patches/kdrivers/wanec/oct6100_api.PR48/apilib/llman/octapi_llman_private.h rename to patches/kdrivers/wanec/oct6100_api.PR43/apilib/llman/octapi_llman_private.h index bf84fdc..7466cb6 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/apilib/llman/octapi_llman_private.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/apilib/llman/octapi_llman_private.h @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 13 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR43/apilib/llman/sources b/patches/kdrivers/wanec/oct6100_api.PR43/apilib/llman/sources new file mode 100755 index 0000000..75cd434 --- /dev/null +++ b/patches/kdrivers/wanec/oct6100_api.PR43/apilib/llman/sources @@ -0,0 +1,31 @@ +TARGETNAME=octapi_llman +TARGETTYPE=DRIVER_LIBRARY +TARGETPATH=obj + +TARGETLIBS=$(DDK_LIB_PATH)\ntoskrnl.lib + +MSC_WARNING_LEVEL=-W3 -WX + +#make sure no optimization done, even in "Free" build: +MSC_OPTIMIZATION=/Odi + +C_DEFINES=$(C_DEFINES) -D__WINDOWS__ -D__KERNEL__ -DVIRTUAL_IF_DRV +C_DEFINES=$(C_DEFINES) -DSANG_DBG + +#build can not expand Env Vars names longer than 8 chars, so use +#absolute paths +INCLUDES=$(DDK_INC_PATH);\ +D:\cvshome\development\wanpipe_windows\include\pnp;\ +D:\cvshome\development\wanpipe_windows\include\api;\ +D:\cvshome\development\wanpipe_windows\include\octasic\include;\ +D:\cvshome\development\wanpipe_windows\include\octasic\include\oct6100api;\ +D:\cvshome\development\wanpipe_windows\include\octasic\octdeviceapi\oct6100api;\ +D:\cvshome\development\wanpipe_windows\include\octasic\apilib\llman;\ +D:\cvshome\development\wanpipe_windows\include\octasic\include\apilib;\ +D:\cvshome\development\wanpipe_windows\include\octasic\include\octrpc;\ +D:\cvshome\development\wanpipe_windows\include\octasic\apilib\bt;\ +D:\cvshome\development\wanpipe_windows\include\debug + +SOURCES=octapi_llman.c + + diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/apilib/octapi_bt0.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/apilib/octapi_bt0.h similarity index 95% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/apilib/octapi_bt0.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/apilib/octapi_bt0.h index 73cdd5e..b99c32b 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/apilib/octapi_bt0.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/apilib/octapi_bt0.h @@ -2,7 +2,7 @@ File: octapi_bt0.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -23,7 +23,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 11 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/apilib/octapi_largmath.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/apilib/octapi_largmath.h similarity index 95% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/apilib/octapi_largmath.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/apilib/octapi_largmath.h index 511c00d..dfbe22b 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/apilib/octapi_largmath.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/apilib/octapi_largmath.h @@ -2,7 +2,7 @@ File: octapi_largmath.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -23,7 +23,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 6 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/apilib/octapi_llman.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/apilib/octapi_llman.h similarity index 97% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/apilib/octapi_llman.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/apilib/octapi_llman.h index d1a29fe..023106f 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/apilib/octapi_llman.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/apilib/octapi_llman.h @@ -2,7 +2,7 @@ File: octapi_llman.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -24,7 +24,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 8 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_adpcm_chan_inst.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_adpcm_chan_inst.h similarity index 92% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_adpcm_chan_inst.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_adpcm_chan_inst.h index a999335..74b2b91 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_adpcm_chan_inst.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_adpcm_chan_inst.h @@ -2,7 +2,7 @@ File: oct6100_adpcm_chan_inst.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,9 +25,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 6 $ +$Octasic_Revision: 5 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_adpcm_chan_pub.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_adpcm_chan_pub.h similarity index 93% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_adpcm_chan_pub.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_adpcm_chan_pub.h index d9931a2..5563db2 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_adpcm_chan_pub.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_adpcm_chan_pub.h @@ -2,7 +2,7 @@ File: oct6100_adpcm_chan_pub.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,9 +25,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 5 $ +$Octasic_Revision: 4 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_api.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_api.h similarity index 92% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_api.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_api.h index 8a4e1db..804a371 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_api.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_api.h @@ -2,7 +2,7 @@ File: oct6100_api.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -22,9 +22,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 23 $ +$Octasic_Revision: 22 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_api_inst.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_api_inst.h similarity index 93% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_api_inst.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_api_inst.h index b6da512..f013949 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_api_inst.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_api_inst.h @@ -2,7 +2,7 @@ File: oct6100_api_inst.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -22,9 +22,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 40 $ +$Octasic_Revision: 39 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -130,7 +130,7 @@ typedef struct _OCT6100_INSTANCE_API_ PVOID pProcessContext; /* Handles to all serialization objects used by the API. */ - tOCT6100_USER_SERIAL_OBJECT ulApiSerObj; + UINT32 ulApiSerObj; } tOCT6100_INSTANCE_API, *tPOCT6100_INSTANCE_API; diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_apimi.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_apimi.h similarity index 92% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_apimi.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_apimi.h index f2ac420..5076d25 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_apimi.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_apimi.h @@ -2,7 +2,7 @@ File: oct6100_apimi.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -27,9 +27,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 6 $ +$Octasic_Revision: 5 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_apiud.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_apiud.h similarity index 90% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_apiud.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_apiud.h index e44811d..6050fdc 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_apiud.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_apiud.h @@ -2,7 +2,7 @@ File: oct6100_apiud.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -23,9 +23,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 16 $ +$Octasic_Revision: 15 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -128,9 +128,6 @@ $Octasic_Revision: 16 $ /***************************** TYPES ***************************************/ -/*Change this type if your platform uses 64bits semaphores/locks */ -typedef UINT32 tOCT6100_USER_SERIAL_OBJECT; - typedef struct _OCT6100_GET_TIME_ { PVOID pProcessContext; @@ -144,34 +141,34 @@ typedef struct _OCT6100_GET_TIME_ typedef struct _OCT6100_CREATE_SERIALIZE_OBJECT_ { - PVOID pProcessContext; - PSZ pszSerialObjName; - tOCT6100_USER_SERIAL_OBJECT ulSerialObjHndl; + PVOID pProcessContext; + PSZ pszSerialObjName; + UINT32 ulSerialObjHndl; } tOCT6100_CREATE_SERIALIZE_OBJECT, *tPOCT6100_CREATE_SERIALIZE_OBJECT; typedef struct _OCT6100_DESTROY_SERIALIZE_OBJECT_ { - PVOID pProcessContext; - tOCT6100_USER_SERIAL_OBJECT ulSerialObjHndl; + PVOID pProcessContext; + UINT32 ulSerialObjHndl; } tOCT6100_DESTROY_SERIALIZE_OBJECT, *tPOCT6100_DESTROY_SERIALIZE_OBJECT; typedef struct _OCT6100_SEIZE_SERIALIZE_OBJECT_ { - PVOID pProcessContext; - tOCT6100_USER_SERIAL_OBJECT ulSerialObjHndl; - UINT32 ulTryTimeMs; + PVOID pProcessContext; + UINT32 ulSerialObjHndl; + UINT32 ulTryTimeMs; } tOCT6100_SEIZE_SERIALIZE_OBJECT, *tPOCT6100_SEIZE_SERIALIZE_OBJECT; typedef struct _OCT6100_RELEASE_SERIALIZE_OBJECT_ { - PVOID pProcessContext; - tOCT6100_USER_SERIAL_OBJECT ulSerialObjHndl; + PVOID pProcessContext; + UINT32 ulSerialObjHndl; } tOCT6100_RELEASE_SERIALIZE_OBJECT, *tPOCT6100_RELEASE_SERIALIZE_OBJECT; diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_channel_inst.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_channel_inst.h similarity index 94% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_channel_inst.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_channel_inst.h index 1d93719..7ef8193 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_channel_inst.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_channel_inst.h @@ -2,7 +2,7 @@ File: oct6100_channel_inst.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,9 +25,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 90 $ +$Octasic_Revision: 88 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -116,7 +116,6 @@ typedef struct _OCT6100_API_CHANNEL_VQE_ OCT_INT8 chAecDefaultErlDb; UINT8 fRoutNoiseReduction; - OCT_INT8 chRoutNoiseReductionLevelGainDb; OCT_INT8 chAnrSnrEnhancementDb; UINT8 fEnableMusicProtection; @@ -131,6 +130,11 @@ typedef struct _OCT6100_API_CHANNEL_VQE_ UINT8 byDoubleTalkBehavior; UINT8 fSoutNoiseBleaching; + UINT8 fResetRinAlcOnTones; + UINT8 fResetSoutAlcOnTones; + + UINT16 usAlcNoiseBleedOutTime; + UINT8 fSoutConferencingNoiseReduction; diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_channel_pub.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_channel_pub.h similarity index 93% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_channel_pub.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_channel_pub.h index ffd0441..38fe1c4 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_channel_pub.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_channel_pub.h @@ -2,7 +2,7 @@ File: oct6100_channel_pub.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,9 +25,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 84 $ +$Octasic_Revision: 82 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -80,7 +80,9 @@ typedef struct _OCT6100_CHANNEL_OPEN_VQE_ BOOL fRinLevelControl; BOOL fSoutLevelControl; BOOL fRinAutomaticLevelControl; + BOOL fResetRinAlcOnTones; BOOL fSoutAutomaticLevelControl; + BOOL fResetSoutAlcOnTones; BOOL fRinHighLevelCompensation; BOOL fAcousticEcho; BOOL fSoutAdaptiveNoiseReduction; @@ -97,6 +99,7 @@ typedef struct _OCT6100_CHANNEL_OPEN_VQE_ INT32 lSoutLevelControlGainDb; INT32 lRinAutomaticLevelControlTargetDb; INT32 lSoutAutomaticLevelControlTargetDb; + UINT32 ulAlcNoiseBleedOutTime; INT32 lRinHighLevelCompensationThresholdDb; INT32 lDefaultErlDb; INT32 lAecDefaultErlDb; @@ -105,7 +108,6 @@ typedef struct _OCT6100_CHANNEL_OPEN_VQE_ UINT32 ulSoutNaturalListenerEnhancementGainDb; BOOL fSoutNaturalListenerEnhancement; BOOL fRoutNoiseReduction; - INT32 lRoutNoiseReductionLevelGainDb; INT32 lAnrSnrEnhancementDb; UINT32 ulAnrVoiceNoiseSegregation; UINT32 ulDoubleTalkBehavior; @@ -199,7 +201,9 @@ typedef struct _OCT6100_CHANNEL_MODIFY_VQE_ BOOL fRinLevelControl; BOOL fSoutLevelControl; BOOL fRinAutomaticLevelControl; + BOOL fResetRinAlcOnTones; BOOL fSoutAutomaticLevelControl; + BOOL fResetSoutAlcOnTones; BOOL fRinHighLevelCompensation; BOOL fAcousticEcho; BOOL fSoutAdaptiveNoiseReduction; @@ -216,6 +220,7 @@ typedef struct _OCT6100_CHANNEL_MODIFY_VQE_ INT32 lSoutLevelControlGainDb; INT32 lRinAutomaticLevelControlTargetDb; INT32 lSoutAutomaticLevelControlTargetDb; + UINT32 ulAlcNoiseBleedOutTime; INT32 lRinHighLevelCompensationThresholdDb; INT32 lDefaultErlDb; INT32 lAecDefaultErlDb; @@ -224,7 +229,6 @@ typedef struct _OCT6100_CHANNEL_MODIFY_VQE_ UINT32 ulSoutNaturalListenerEnhancementGainDb; BOOL fSoutNaturalListenerEnhancement; BOOL fRoutNoiseReduction; - INT32 lRoutNoiseReductionLevelGainDb; INT32 lAnrSnrEnhancementDb; UINT32 ulAnrVoiceNoiseSegregation; UINT32 ulDoubleTalkBehavior; @@ -351,7 +355,9 @@ typedef struct _OCT6100_CHANNEL_STATS_VQE_ BOOL fRinLevelControl; BOOL fSoutLevelControl; BOOL fRinAutomaticLevelControl; + BOOL fResetRinAlcOnTones; BOOL fSoutAutomaticLevelControl; + BOOL fResetSoutAlcOnTones; BOOL fRinHighLevelCompensation; BOOL fAcousticEcho; BOOL fSoutAdaptiveNoiseReduction; @@ -368,6 +374,7 @@ typedef struct _OCT6100_CHANNEL_STATS_VQE_ INT32 lSoutLevelControlGainDb; INT32 lRinAutomaticLevelControlTargetDb; INT32 lSoutAutomaticLevelControlTargetDb; + UINT32 ulAlcNoiseBleedOutTime; INT32 lRinHighLevelCompensationThresholdDb; INT32 lDefaultErlDb; INT32 lAecDefaultErlDb; @@ -376,7 +383,6 @@ typedef struct _OCT6100_CHANNEL_STATS_VQE_ UINT32 ulSoutNaturalListenerEnhancementGainDb; BOOL fSoutNaturalListenerEnhancement; BOOL fRoutNoiseReduction; - INT32 lRoutNoiseReductionLevelGainDb; INT32 lAnrSnrEnhancementDb; UINT32 ulAnrVoiceNoiseSegregation; UINT32 ulDoubleTalkBehavior; diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_chip_open_inst.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_chip_open_inst.h similarity index 93% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_chip_open_inst.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_chip_open_inst.h index 2fe3cf3..5c8573e 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_chip_open_inst.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_chip_open_inst.h @@ -2,7 +2,7 @@ File: oct6100_chip_open_inst.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,9 +25,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 122 $ +$Octasic_Revision: 118 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -88,7 +88,6 @@ typedef struct _OCT6100_API_CHIP_CONFIG_ UINT16 usMaxTsiCncts; UINT8 fEnableExtToneDetection; - UINT8 fEnable2100StopEvent; UINT16 usMaxConfBridges; @@ -109,7 +108,6 @@ typedef struct _OCT6100_API_CHIP_CONFIG_ UINT8 fEnableProductionBist; - UINT32 ulProductionBistMode; UINT32 ulNumProductionBistLoops; } tOCT6100_API_CHIP_CONFIG, *tPOCT6100_API_CHIP_CONFIG; @@ -295,9 +293,6 @@ typedef struct _OCT6100_API_MEMORY_MAP_ /* Rin NR field offset. */ tOCT6100_TLV_OFFSET RinAnrOfst; - - /* Rin NR value field offset. */ - tOCT6100_TLV_OFFSET RinAnrValOfst; /* Sin Mute field offset. */ tOCT6100_TLV_OFFSET SinMuteOfst; @@ -341,6 +336,15 @@ typedef struct _OCT6100_API_MEMORY_MAP_ /* Idle code detection field offset. */ tOCT6100_TLV_OFFSET IdleCodeDetectionFieldOfst; + /* Reset Rin ALC on tones field offset. */ + tOCT6100_TLV_OFFSET ResetRinAlcOnTonesFieldOfst; + + /* Reset Sout ALC on tones field offset. */ + tOCT6100_TLV_OFFSET ResetSoutAlcOnTonesFieldOfst; + + /* ALC noise bleed out time field offset. */ + tOCT6100_TLV_OFFSET AlcNoiseBleedOutTimeFieldOfst; + /* TSI memory mapping information.*/ UINT32 ulNumTsiEntries; @@ -426,7 +430,6 @@ typedef struct _OCT6100_API_IMAGE_INFO_ UINT8 fListenerEnhancement; UINT8 fRoutNoiseReduction; - UINT8 fRoutNoiseReductionLevel; UINT8 fRinMute; UINT8 fSinMute; @@ -465,7 +468,11 @@ typedef struct _OCT6100_API_IMAGE_INFO_ UINT8 fIdleCodeDetection; UINT8 fIdleCodeDetectionConfiguration; + UINT8 fResetRinAlcOnTones; + UINT8 fResetSoutAlcOnTones; + UINT8 fSinLevel; + UINT8 fAlcNoiseBleedOutTime; diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_chip_open_pub.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_chip_open_pub.h similarity index 88% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_chip_open_pub.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_chip_open_pub.h index 8e78acb..0362966 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_chip_open_pub.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_chip_open_pub.h @@ -2,7 +2,7 @@ File: oct6100_chip_open_pub.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,9 +25,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 54 $ +$Octasic_Revision: 48 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -90,7 +90,6 @@ typedef struct _OCT6100_CHIP_OPEN_ UINT32 ulSoftToneEventsBufSize; /* In events. */ BOOL fEnableExtToneDetection; - BOOL fEnable2100StopEvent; UINT32 ulSoftBufferPlayoutEventsBufSize; /* In events. */ @@ -99,7 +98,6 @@ typedef struct _OCT6100_CHIP_OPEN_ BOOL fEnableChannelRecording; BOOL fEnableProductionBist; - UINT32 ulProductionBistMode; UINT32 ulNumProductionBistLoops; } tOCT6100_CHIP_OPEN, *tPOCT6100_CHIP_OPEN; @@ -167,15 +165,6 @@ typedef struct _OCT6100_API_GET_VERSION_ } tOCT6100_API_GET_VERSION, *tPOCT6100_API_GET_VERSION; -typedef struct _OCT6100_API_GET_CAPACITY_PINS_ -{ - UINT32 ulUserChipId; - PVOID pProcessContext; - UINT32 ulMemoryType; /* SDRAM or DDR type external memory. */ - BOOL fEnableMemClkOut; - UINT32 ulMemClkFreq; - UINT32 ulCapacityValue; -} tOCT6100_API_GET_CAPACITY_PINS, *tPOCT6100_API_GET_CAPACITY_PINS; /************************** FUNCTION PROTOTYPES *****************************/ @@ -230,12 +219,4 @@ UINT32 Oct6100ProductionBist( IN OUT tPOCT6100_INSTANCE_API f_pApiInstance, IN OUT tPOCT6100_PRODUCTION_BIST f_pProductionBist ); -UINT32 Oct6100ApiGetCapacityPinsDef( - tPOCT6100_API_GET_CAPACITY_PINS f_pGetCapacityPins); - -UINT32 Oct6100ApiGetCapacityPins( - tPOCT6100_API_GET_CAPACITY_PINS f_pGetCapacityPins ); - - #endif /* __OCT6100_CHIP_OPEN_PUB_H__ */ - diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_chip_stats_inst.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_chip_stats_inst.h similarity index 93% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_chip_stats_inst.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_chip_stats_inst.h index 5ac8de8..2984f08 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_chip_stats_inst.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_chip_stats_inst.h @@ -2,7 +2,7 @@ File: oct6100_chip_stats_inst.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 21 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_chip_stats_pub.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_chip_stats_pub.h similarity index 93% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_chip_stats_pub.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_chip_stats_pub.h index fa6dc84..b6b399c 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_chip_stats_pub.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_chip_stats_pub.h @@ -2,7 +2,7 @@ File: oct6100_chip_stats_pub.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,9 +25,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 59 $ +$Octasic_Revision: 57 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -85,6 +85,8 @@ typedef struct _OCT6100_CHIP_IMAGE_INFO_ BOOL fAdaptiveNoiseReduction; BOOL fSoutNoiseBleaching; BOOL fAutoLevelControl; + BOOL fAlcNoiseBleedOutTime; + BOOL fResetAlcOnTones; BOOL fHighLevelCompensation; BOOL fSilenceSuppression; @@ -104,7 +106,6 @@ typedef struct _OCT6100_CHIP_IMAGE_INFO_ BOOL fPerChannelTailLength; BOOL fListenerEnhancement; BOOL fRoutNoiseReduction; - BOOL fRoutNoiseReductionLevel; BOOL fAnrSnrEnhancement; BOOL fAnrVoiceNoiseSegregation; BOOL fToneDisablerVqeActivationDelay; diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_conf_bridge_inst.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_conf_bridge_inst.h similarity index 94% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_conf_bridge_inst.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_conf_bridge_inst.h index b409252..4215677 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_conf_bridge_inst.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_conf_bridge_inst.h @@ -2,7 +2,7 @@ File: oct6100_conf_bridge_inst.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 19 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_conf_bridge_pub.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_conf_bridge_pub.h similarity index 95% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_conf_bridge_pub.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_conf_bridge_pub.h index 7468a64..fffd2ae 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_conf_bridge_pub.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_conf_bridge_pub.h @@ -2,7 +2,7 @@ File: oct6100_conf_bridge_pub.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 22 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_debug_inst.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_debug_inst.h similarity index 94% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_debug_inst.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_debug_inst.h index 7fca10f..597e318 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_debug_inst.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_debug_inst.h @@ -2,7 +2,7 @@ File: oct6100_debug_inst.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 10 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_debug_pub.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_debug_pub.h similarity index 93% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_debug_pub.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_debug_pub.h index 1c62c86..9799385 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_debug_pub.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_debug_pub.h @@ -2,7 +2,7 @@ File: oct6100_debug_pub.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -24,7 +24,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 14 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_defines.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_defines.h similarity index 91% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_defines.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_defines.h index 7765d40..8b75915 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_defines.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_defines.h @@ -2,7 +2,7 @@ File: oct6100_defines.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -22,9 +22,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.7 -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 170 $ +$Octasic_Revision: 166 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -496,35 +496,16 @@ $Octasic_Revision: 170 $ #define cOCT6100_TONE_EVENT_WRITE_PTR_REG 0x722 #define cOCT6100_TONE_EVENT_READ_PTR_REG 0x720 -/* Special Signaling tone IDs. */ -#define cOCT6100_TONE_SIN_SYSTEM7_2000 0x20000023 -#define cOCT6100_TONE_SIN_SYSTEM7_1780 0x20000024 -#define cOCT6100_TONE_ROUT_G168_2100GB_ON 0x10000000 -#define cOCT6100_TONE_ROUT_G168_2100GB_WSPR 0x10000002 -#define cOCT6100_TONE_ROUT_G168_1100GB_ON 0x10000004 -#define cOCT6100_TONE_ROUT_G168_2100GB_ON_WIDE_A 0x10000005 -#define cOCT6100_TONE_ROUT_G168_2100GB_ON_WIDE_B 0x10000006 -#define cOCT6100_TONE_ROUT_G168_2100GB_WSPR_WIDE 0x10000008 -#define cOCT6100_TONE_SOUT_G168_2100GB_ON 0x40000000 -#define cOCT6100_TONE_SOUT_G168_2100GB_WSPR 0x40000002 -#define cOCT6100_TONE_SOUT_G168_1100GB_ON 0x40000004 -#define cOCT6100_TONE_SOUT_G168_2100GB_ON_WIDE_A 0x40000005 -#define cOCT6100_TONE_SOUT_G168_2100GB_ON_WIDE_B 0x40000006 -#define cOCT6100_TONE_SOUT_G168_2100GB_WSPR_WIDE 0x40000008 -#define cOCT6100_TONE_SIN_SYSTEM5_2400 0x20000020 -#define cOCT6100_TONE_SIN_SYSTEM5_2600 0x20000021 -#define cOCT6100_TONE_SIN_SYSTEM5_2400_2600 0x20000022 +/* Special tone IDs. */ +/* System 5/7 Section */ +#define cOCT6100_TONE_SIN_SYSTEM7_2000 0x20000023 +#define cOCT6100_TONE_SIN_SYSTEM7_1780 0x20000024 #define cOCT6100_CHIP_ID_REVISION_REG 0x17E /* BOOT type. */ #define cOCT6100_AF_BOOT_TYPE 0x5 #define cOCT6100_PRODUCTION_BOOT_TYPE 0x7 -#define cOCT6100_PRODUCTION_SHORT_BOOT_TYPE 0x8 - -/*Production Bist Modes*/ -#define cOCT6100_PRODUCTION_BIST_STANDARD 0x0 -#define cOCT6100_PRODUCTION_BIST_SHORT 0x1 /* Interrupt register masks.*/ #define cOCT6100_INTRPT_MASK_REG_102H 0x0001 @@ -578,9 +559,6 @@ $Octasic_Revision: 170 $ #define cOCT6100_DEBUG_CHAN_STATS_EVENT_BYTE_SIZE 1024 #define cOCT6100_DEBUG_CHAN_STATS_LITE_EVENT_BYTE_SIZE 720 -/* Image start string define */ -#define cOCT6100_IMAGE_START_STRING "EDS3_IMAGE_NAME" - /* Tone image info defines.*/ #define cOCT6100_TONE_INFO_START_STRING "[ToneDetectorInfo]" #define cOCT6100_TONE_INFO_STOP_STRING "[~ToneDetectorInfo]" diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_errors.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_errors.h similarity index 97% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_errors.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_errors.h index 9a7d53e..a54bc3b 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_errors.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_errors.h @@ -2,7 +2,7 @@ File: oct6100_errors.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -22,9 +22,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 205 $ +$Octasic_Revision: 196 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -82,9 +82,9 @@ $Octasic_Revision: 205 $ #define cOCT6100_ERR_NOT_SUPPORTED_DOUBLE_TALK_BEHAVIOR_MODE (0x00024 + cOCT6100_NOT_SUPPORTED_BASE) #define cOCT6100_ERR_NOT_SUPPORTED_IDLE_CODE_DETECTION (0x00025 + cOCT6100_NOT_SUPPORTED_BASE) #define cOCT6100_ERR_NOT_SUPPORTED_IDLE_CODE_DETECTION_CONFIG (0x00026 + cOCT6100_NOT_SUPPORTED_BASE) - - -#define cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_ROUT_NOISE_REDUCTION_GAIN (0x0002B + cOCT6100_NOT_SUPPORTED_BASE) +#define cOCT6100_ERR_NOT_SUPPORTED_RESET_RIN_ALC_ON_TONES (0x00027 + cOCT6100_NOT_SUPPORTED_BASE) +#define cOCT6100_ERR_NOT_SUPPORTED_RESET_SOUT_ALC_ON_TONES (0x00028 + cOCT6100_NOT_SUPPORTED_BASE) +#define cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_ALC_NOISE_BLEED_OUT_TIME (0x00029 + cOCT6100_NOT_SUPPORTED_BASE) #define cOCT6100_ERR_NOT_SUPPORTED_BUFFER_PLAYOUT (0x00100 + cOCT6100_NOT_SUPPORTED_BASE) #define cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_CNR (0x00101 + cOCT6100_NOT_SUPPORTED_BASE) @@ -96,7 +96,6 @@ $Octasic_Revision: 205 $ #define cOCT6100_ERR_NOT_SUPPORTED_DOMINANT_SPEAKER (0x00301 + cOCT6100_NOT_SUPPORTED_BASE) - #define cOCT6100_ERR_OPEN_INVALID_DEVICE (0x03000 + cOCT6100_ERR_BASE) #define cOCT6100_ERR_OPEN_INSUFFICIENT_EXTERNAL_MEMORY (0x03001 + cOCT6100_ERR_BASE) #define cOCT6100_ERR_OPEN_MEMORY_CHIP_SIZE (0x03002 + cOCT6100_ERR_BASE) @@ -181,13 +180,6 @@ $Octasic_Revision: 205 $ #define cOCT6100_ERR_OPEN_PRODUCTION_BIST_CONF_FAILED (0x03059 + cOCT6100_ERR_BASE) #define cOCT6100_ERR_OPEN_PRODUCTION_BIST_POUCH_ERROR (0x0305A + cOCT6100_ERR_BASE) #define cOCT6100_ERR_OPEN_INVALID_TLV_LENGTH (0x0305B + cOCT6100_ERR_BASE) -#define cOCT6100_ERR_OPEN_PRODUCTION_BIST_MODE (0x0305C + cOCT6100_ERR_BASE) - -#define cOCT6100_ERR_OPEN_ENABLE_2100_STOP_EVENT (0x03060 + cOCT6100_ERR_BASE) - - -#define cOCT6100_ERR_CAP_PINS_INVALID_CHIP_STATE (0x03081 + cOCT6100_ERR_BASE) -#define cOCT6100_ERR_CAP_PINS_INVALID_CAPACITY_VALUE (0x03082 + cOCT6100_ERR_BASE) #define cOCT6100_ERR_TSI_CNCT_ALL_CHANNELS_ARE_OPENED (0x04000 + cOCT6100_ERR_BASE) #define cOCT6100_ERR_TSI_CNCT_DISABLED (0x04001 + cOCT6100_ERR_BASE) @@ -409,14 +401,14 @@ $Octasic_Revision: 205 $ #define cOCT6100_ERR_CHANNEL_ANR_CNR_SIMULTANEOUSLY (0x070C0 + cOCT6100_ERR_BASE) #define cOCT6100_ERR_CHANNEL_IDLE_CODE_DETECTION (0x070C1 + cOCT6100_ERR_BASE) #define cOCT6100_ERR_CHANNEL_MUST_ENABLE_TONE_DISABLER (0x070C2 + cOCT6100_ERR_BASE) - +#define cOCT6100_ERR_CHANNEL_RESET_RIN_ALC_ON_TONES (0x070C3 + cOCT6100_ERR_BASE) +#define cOCT6100_ERR_CHANNEL_RESET_SOUT_ALC_ON_TONES (0x070C4 + cOCT6100_ERR_BASE) #define cOCT6100_ERR_CHANNEL_RIN_AUTO_LEVEL_CONTROL_REQUIRED (0x070C5 + cOCT6100_ERR_BASE) #define cOCT6100_ERR_CHANNEL_SOUT_AUTO_LEVEL_CONTROL_REQUIRED (0x070C6 + cOCT6100_ERR_BASE) - +#define cOCT6100_ERR_CHANNEL_ALC_NOISE_BLEED_OUT_TIME (0x070C7 + cOCT6100_ERR_BASE) #define cOCT6100_ERR_CHANNEL_AUTO_LEVEL_CONTROL_REQUIRED (0x070C8 + cOCT6100_ERR_BASE) #define cOCT6100_ERR_CHANNEL_COMFORT_NOISE_REQUIRED (0x070CB + cOCT6100_ERR_BASE) -#define cOCT6100_ERR_CHANNEL_ROUT_NOISE_REDUCTION_GAIN (0x070CC + cOCT6100_ERR_BASE) #define cOCT6100_ERR_PHASING_TSST_ALL_ENTRIES_ARE_OPENED (0x08000 + cOCT6100_ERR_BASE) #define cOCT6100_ERR_PHASING_TSST_DISABLED (0x08001 + cOCT6100_ERR_BASE) diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_events_inst.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_events_inst.h similarity index 89% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_events_inst.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_events_inst.h index f97e483..8128794 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_events_inst.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_events_inst.h @@ -1,9 +1,9 @@ - +#ifndef cOCT6100_REMOVE_EVENTS /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ File: oct6100_events_inst.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -26,9 +26,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 12 $ +$Octasic_Revision: 11 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -66,4 +66,4 @@ typedef struct _OCT6100_API_BUFFER_PLAYOUT_EVENT_ } tOCT6100_API_BUFFER_PLAYOUT_EVENT, *tPOCT6100_API_BUFFER_PLAYOUT_EVENT; #endif /* __OCT6100_EVENTS_INST_H__ */ - +#endif /* cOCT6100_REMOVE_EVENTS */ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_events_pub.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_events_pub.h similarity index 91% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_events_pub.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_events_pub.h index ae992c4..b1c4b22 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_events_pub.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_events_pub.h @@ -1,8 +1,9 @@ +#ifndef cOCT6100_REMOVE_EVENTS /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ File: oct6100_events_pub.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,9 +26,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 14 $ +$Octasic_Revision: 13 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -108,4 +109,4 @@ UINT32 Oct6100BufferPlayoutGetEvent( IN OUT tPOCT6100_BUFFER_PLAYOUT_GET_EVENT f_pBufPlayoutGetEvent ); #endif /* __OCT6100_EVENTS_PUB_H__ */ - +#endif /* cOCT6100_REMOVE_EVENTS */ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_interrupts_inst.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_interrupts_inst.h similarity index 95% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_interrupts_inst.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_interrupts_inst.h index f41bdb7..37995ba 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_interrupts_inst.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_interrupts_inst.h @@ -2,7 +2,7 @@ File: oct6100_interrupts_inst.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 16 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_interrupts_pub.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_interrupts_pub.h similarity index 94% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_interrupts_pub.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_interrupts_pub.h index 3d445e5..7ed2fed 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_interrupts_pub.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_interrupts_pub.h @@ -2,7 +2,7 @@ File: oct6100_interrupts_pub.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 23 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_mixer_inst.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_mixer_inst.h similarity index 93% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_mixer_inst.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_mixer_inst.h index ef30656..8fb0cc9 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_mixer_inst.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_mixer_inst.h @@ -2,7 +2,7 @@ File: oct6100_mixer_inst.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 13 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_mixer_pub.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_mixer_pub.h similarity index 94% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_mixer_pub.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_mixer_pub.h index e682c36..29c29e1 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_mixer_pub.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_mixer_pub.h @@ -2,7 +2,7 @@ File: oct6100_mixer_pub.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 7 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_phasing_tsst_inst.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_phasing_tsst_inst.h similarity index 92% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_phasing_tsst_inst.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_phasing_tsst_inst.h index 54f785d..0585159 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_phasing_tsst_inst.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_phasing_tsst_inst.h @@ -2,7 +2,7 @@ File: oct6100_phasing_tsst_inst.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,9 +25,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 11 $ +$Octasic_Revision: 9 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_phasing_tsst_pub.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_phasing_tsst_pub.h similarity index 93% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_phasing_tsst_pub.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_phasing_tsst_pub.h index bb1ccdf..55bdf58 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_phasing_tsst_pub.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_phasing_tsst_pub.h @@ -2,7 +2,7 @@ File: oct6100_phasing_tsst_pub.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,9 +25,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 10 $ +$Octasic_Revision: 9 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -75,4 +75,3 @@ UINT32 Oct6100PhasingTsstClose( IN OUT tPOCT6100_PHASING_TSST_CLOSE f_pPhasingTsstClose ); #endif /* __OCT6100_PHASING_TSST_PUB_H__ */ - diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_playout_buf_inst.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_playout_buf_inst.h similarity index 94% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_playout_buf_inst.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_playout_buf_inst.h index ae6decf..d40bff4 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_playout_buf_inst.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_playout_buf_inst.h @@ -2,7 +2,7 @@ File: oct6100_playout_buf_inst.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 10 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_playout_buf_pub.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_playout_buf_pub.h similarity index 96% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_playout_buf_pub.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_playout_buf_pub.h index cd6ef8a..72a69ee 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_playout_buf_pub.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_playout_buf_pub.h @@ -2,7 +2,7 @@ File: oct6100_playout_buf_pub.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 21 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_remote_debug_inst.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_remote_debug_inst.h similarity index 93% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_remote_debug_inst.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_remote_debug_inst.h index 660ac27..544c59a 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_remote_debug_inst.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_remote_debug_inst.h @@ -2,7 +2,7 @@ File: oct6100_remote_debug_inst.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 6 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_remote_debug_pub.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_remote_debug_pub.h similarity index 93% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_remote_debug_pub.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_remote_debug_pub.h index 048031a..7e38087 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_remote_debug_pub.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_remote_debug_pub.h @@ -2,7 +2,7 @@ File: oct6100_remote_debug_pub.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 6 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_tlv_inst.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_tlv_inst.h similarity index 93% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_tlv_inst.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_tlv_inst.h index bee9154..784b517 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_tlv_inst.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_tlv_inst.h @@ -2,7 +2,7 @@ File: oct6100_tlv_inst.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 7 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_tone_detection_inst.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_tone_detection_inst.h similarity index 92% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_tone_detection_inst.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_tone_detection_inst.h index 3a8a3be..22b27f0 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_tone_detection_inst.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_tone_detection_inst.h @@ -2,7 +2,7 @@ File: oct6100_tone_detection_inst.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 8 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_tone_detection_pub.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_tone_detection_pub.h similarity index 94% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_tone_detection_pub.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_tone_detection_pub.h index 02f3d85..3bb9d67 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_tone_detection_pub.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_tone_detection_pub.h @@ -2,7 +2,7 @@ File: oct6100_tone_detection_pub.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 10 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_tsi_cnct_inst.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_tsi_cnct_inst.h similarity index 92% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_tsi_cnct_inst.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_tsi_cnct_inst.h index c3ae272..4b17780 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_tsi_cnct_inst.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_tsi_cnct_inst.h @@ -2,7 +2,7 @@ File: oct6100_tsi_cnct_inst.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,9 +25,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 9 $ +$Octasic_Revision: 8 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_tsi_cnct_pub.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_tsi_cnct_pub.h similarity index 92% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_tsi_cnct_pub.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_tsi_cnct_pub.h index 009fe76..a865e97 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_tsi_cnct_pub.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_tsi_cnct_pub.h @@ -2,7 +2,7 @@ File: oct6100_tsi_cnct_pub.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,9 +25,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 11 $ +$Octasic_Revision: 10 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -74,3 +74,4 @@ UINT32 Oct6100TsiCnctClose( IN OUT tPOCT6100_TSI_CNCT_CLOSE f_pTsiCnctClose ); #endif /* __OCT6100_TSI_CNCT_PUB_H__ */ + diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_tsst_inst.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_tsst_inst.h similarity index 93% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_tsst_inst.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_tsst_inst.h index 239ff96..a1c592f 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/oct6100api/oct6100_tsst_inst.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/oct6100api/oct6100_tsst_inst.h @@ -2,7 +2,7 @@ File: oct6100_tsst_inst.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 5 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/octdef.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/octdef.h similarity index 94% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/octdef.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/octdef.h index ce5339e..79802fd 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/octdef.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/octdef.h @@ -2,7 +2,7 @@ File: octdef.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -22,7 +22,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 12 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/octmac.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/octmac.h similarity index 94% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/octmac.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/octmac.h index b7647b4..b46e0b7 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/octmac.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/octmac.h @@ -2,7 +2,7 @@ File: octmac.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -22,7 +22,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 14 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/octosdependant.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/octosdependant.h similarity index 78% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/octosdependant.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/octosdependant.h index 078309c..ffa0561 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/octosdependant.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/octosdependant.h @@ -1,165 +1,159 @@ -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ - -File: octosdependant.h - - Copyright (c) 2001-2007 Octasic Inc. - -Description: - - This file is included to set target-specific constants. - -This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API 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. - -The OCT6100 GPL API is distributed in the hope that 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 the OCT6100 GPL API; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - -$Octasic_Release: OCT612xAPI-01.00-PR48 $ - -$Octasic_Revision: 17 $ - -\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ - -#ifndef __OCTOSDEPENDANT_H__ -#define __OCTOSDEPENDANT_H__ - - -/*-------------------------------------------------------------------------- - C language -----------------------------------------------------------------------------*/ - -#ifdef __cplusplus -extern "C" { -#endif - - - -/***************************************************************************** - - Known define values - - MSDEV: - WIN32 == WINDOWS 32 bit app - __WIN32__ == WINDOWS 32 bit app - _Windows == WINDOWS 16 bit app - - _WINDOWS == Windows application .. not console - _DLL == Dll Application - _CONSOLE == Console Application .. no windows - - BORLANDC - __TURBOC__ == Turbo Compiler - __BORLANDC__ == Borland compiler - __OS2__ == Borland OS2 compiler - _Windows == Windows 16 bit app - - GCC Compiler - __GNUC__ == GCC Compiler - __unix__ == Unix system - __vax__ == Unix system - unix == Unix system - vax == vax system - - TORNADO - _VXWORKS_ == VXWORK - - ECOS/CYGWIN - _ECOS_ == eCos - - SOLARIS - _SOLARIS_ == Solaris - -*****************************************************************************/ - -/* Machine endian type */ - -#define OCT_MACH_LITTLE_ENDIAN 1 -#define OCT_MACH_BIG_ENDIAN 2 - -/* Try to find current OCT_MACH_ENDIAN from compiler define values */ -#if !defined( MACH_TYPE_BIG_ENDIAN ) && !defined( MACH_TYPE_LITTLE_ENDIAN ) - /* Does GNU defines the endian ? */ - #if defined(__GNU_C__) - #if defined(_BIG_ENDIAN) || defined(__BIG_ENDIAN__) - #define OCT_MACH_ENDIAN OCT_MACH_BIG_ENDIAN - #elif defined(_LITTLE_ENDIAN) || defined(__LITTLE_ENDIAN__) - #define OCT_MACH_ENDIAN OCT_MACH_LITTLE_ENDIAN - #endif - #endif - - /* Try with cpu type */ - #if !defined(OCT_MACH_ENDIAN) - /* Look for intel */ - #if defined( _M_IX86 ) - #define OCT_MACH_ENDIAN OCT_MACH_LITTLE_ENDIAN - /* Look for PowerPC */ - #elif defined( _M_MPPC ) || defined( _M_PPC ) || defined(PPC) || defined(__PPC) || defined(_ARCH_PPC) - #define OCT_MACH_ENDIAN OCT_MACH_BIG_ENDIAN - #elif defined( CPU ) - #if CPU==PPC860 || CPU==SIMNT - #define OCT_MACH_ENDIAN OCT_MACH_BIG_ENDIAN - #else - #define OCT_MACH_ENDIAN OCT_MACH_LITTLE_ENDIAN - #endif - #else - #define OCT_MACH_ENDIAN OCT_MACH_LITTLE_ENDIAN - #endif - #endif -#else - #if defined( MACH_TYPE_BIG_ENDIAN ) - #define OCT_MACH_ENDIAN OCT_MACH_BIG_ENDIAN - #else - #define OCT_MACH_ENDIAN OCT_MACH_LITTLE_ENDIAN - #endif -#endif - -/* Find system type if not already defined */ -#if !defined( OCT_NTDRVENV ) && !defined( OCT_VXENV ) && !defined( OCT_WINENV ) - -#if defined( WIN32 ) || defined( __WIN32__ ) || defined( _WIN32_ ) || defined( WIN32S ) - /* Verif if building a win32 driver */ - #if ( defined( WIN32 ) && WIN32==100 ) - #define OCT_NTDRVENV - #else - #define OCT_WINENV - #endif -#elif defined( _VXWORKS_ ) - #define OCT_VXENV -#elif defined( _ECOS_ ) - #define OCT_ECOSENV -#elif defined( _SOLARIS_ ) - #define OCT_SOLARISENV -#elif defined( _LINUX_ ) - #define OCT_LINUXENV -#else - /* Unknown environment */ - #define OCT_UNKNOWNENV -#endif /* WIN env */ - -#endif /* Already defined */ - -#if defined( __KERNEL__ ) && defined( OCT_LINUXENV ) -#define OCT_LINUXDRVENV -#endif - -#ifdef _DEBUG -#define OCT_OPT_USER_DEBUG -#endif - -/*-------------------------------------------------------------------------- - C language -----------------------------------------------------------------------------*/ - -#ifdef __cplusplus -} -#endif - -#endif /* __OCTOSDEPENDANT_H__ */ +/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ + +File: octosdependant.h + + Copyright (c) 2001-2006 Octasic Inc. + +Description: + + This file is included to set target-specific constants. + +This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API 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. + +The OCT6100 GPL API is distributed in the hope that 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 the OCT6100 GPL API; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + +$Octasic_Release: OCT612xAPI-01.00-PR43 $ + +$Octasic_Revision: 16 $ + +\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ + +#ifndef __OCTOSDEPENDANT_H__ +#define __OCTOSDEPENDANT_H__ + + +/*-------------------------------------------------------------------------- + C language +----------------------------------------------------------------------------*/ + +#ifdef __cplusplus +extern "C" { +#endif + + + +/***************************************************************************** + + Known define values + + MSDEV: + WIN32 == WINDOWS 32 bit app + __WIN32__ == WINDOWS 32 bit app + _Windows == WINDOWS 16 bit app + + _WINDOWS == Windows application .. not console + _DLL == Dll Application + _CONSOLE == Console Application .. no windows + + BORLANDC + __TURBOC__ == Turbo Compiler + __BORLANDC__ == Borland compiler + __OS2__ == Borland OS2 compiler + _Windows == Windows 16 bit app + + GCC Compiler + __GNUC__ == GCC Compiler + __unix__ == Unix system + __vax__ == Unix system + unix == Unix system + vax == vax system + + TORNADO + _VXWORKS_ == VXWORK + + ECOS/CYGWIN + _ECOS_ == eCos + + SOLARIS + _SOLARIS_ == Solaris + +*****************************************************************************/ + +/* Machine endian type */ + +#define OCT_MACH_LITTLE_ENDIAN 1 +#define OCT_MACH_BIG_ENDIAN 2 + +/* Try to find current OCT_MACH_ENDIAN from compiler define values */ +#if !defined( MACH_TYPE_BIG_ENDIAN ) && !defined( MACH_TYPE_LITTLE_ENDIAN ) + + /* Look for intel */ + #if defined( _M_IX86 ) + #define OCT_MACH_ENDIAN OCT_MACH_LITTLE_ENDIAN + /* Look for PowerPC */ + #elif defined( _M_MPPC ) || defined( _M_PPC ) + #define OCT_MACH_ENDIAN OCT_MACH_BIG_ENDIAN + #elif defined( CPU ) + #if CPU==PPC860 || CPU==SIMNT + #define OCT_MACH_ENDIAN OCT_MACH_BIG_ENDIAN + #else + #define OCT_MACH_ENDIAN OCT_MACH_LITTLE_ENDIAN + #endif + /* Default is little endian */ + #else + #define OCT_MACH_ENDIAN OCT_MACH_LITTLE_ENDIAN + #endif +#else + #if defined( MACH_TYPE_BIG_ENDIAN ) + #define OCT_MACH_ENDIAN OCT_MACH_BIG_ENDIAN + #else + #define OCT_MACH_ENDIAN OCT_MACH_LITTLE_ENDIAN + #endif +#endif + +/* Find system type if not already defined */ +#if !defined( OCT_NTDRVENV ) && !defined( OCT_VXENV ) && !defined( OCT_WINENV ) + +#if defined( WIN32 ) || defined( __WIN32__ ) || defined( _WIN32_ ) || defined( WIN32S ) + /* Verif if building a win32 driver */ + #if ( defined( WIN32 ) && WIN32==100 ) + #define OCT_NTDRVENV + #else + #define OCT_WINENV + #endif +#elif defined( _VXWORKS_ ) + #define OCT_VXENV +#elif defined( _ECOS_ ) + #define OCT_ECOSENV +#elif defined( _SOLARIS_ ) + #define OCT_SOLARISENV +#elif defined( _LINUX_ ) + #define OCT_LINUXENV +#else + /* Unknown environment */ + #define OCT_UNKNOWNENV +#endif /* WIN env */ + +#endif /* Already defined */ + +#if defined(__WINDOWS__) +#define OCT_NTDRVENV +#endif + +#if defined( __KERNEL__ ) && defined( OCT_LINUXENV ) +#define OCT_LINUXDRVENV +#endif + +#ifdef _DEBUG +#define OCT_OPT_USER_DEBUG +#endif + +/*-------------------------------------------------------------------------- + C language +----------------------------------------------------------------------------*/ + +#ifdef __cplusplus +} +#endif + +#endif /* __OCTOSDEPENDANT_H__ */ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/octrpc/oct6100_rpc_protocol.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/octrpc/oct6100_rpc_protocol.h similarity index 96% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/octrpc/oct6100_rpc_protocol.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/octrpc/oct6100_rpc_protocol.h index b990f47..c283bc8 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/octrpc/oct6100_rpc_protocol.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/octrpc/oct6100_rpc_protocol.h @@ -2,7 +2,7 @@ File: oct6100_rpc_protocol.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -23,7 +23,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 6 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/octrpc/rpc_protocol.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/octrpc/rpc_protocol.h similarity index 95% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/octrpc/rpc_protocol.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/octrpc/rpc_protocol.h index b1889e9..8630ba9 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/octrpc/rpc_protocol.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/octrpc/rpc_protocol.h @@ -2,7 +2,7 @@ File: rpc_protocol.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -22,7 +22,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 23 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/octtype.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/octtype.h similarity index 94% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/octtype.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/octtype.h index 4eaf4b1..4109b0c 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/octtype.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/octtype.h @@ -1,153 +1,157 @@ -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ - -File: octtype.h - - Copyright (c) 2001-2007 Octasic Inc. - -Description: - - This file defines the base storage types. - -This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API 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. - -The OCT6100 GPL API is distributed in the hope that 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 the OCT6100 GPL API; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - -$Octasic_Release: OCT612xAPI-01.00-PR48 $ - -$Octasic_Revision: 18 $ - -\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ -#ifndef __OCTTYPE_H__ -#define __OCTTYPE_H__ - -/*-------------------------------------------------------------------------- - C language -----------------------------------------------------------------------------*/ - -#ifdef __cplusplus -extern "C" { -#endif - -/*-------------------------------------------------------------------------- - Include target-specific header if available -----------------------------------------------------------------------------*/ -#if defined( OCT_NTDRVENV ) - #include "octtypentdrv.h" /* All NT driver typedef */ -#elif defined( OCT_WINENV ) - #include "octtypewin.h" /* All Win32 typedef */ -#elif defined( OCT_VXENV ) - #include "octtypevx.h" /* All VxWorks typedef */ -#else -/*-------------------------------------------------------------------------- - No target-specific header available -----------------------------------------------------------------------------*/ - -/***************************** DEFINES *************************************/ -/* 16-bit integer */ -typedef unsigned short UINT16; -typedef signed short INT16; -typedef unsigned short *PUINT16; -typedef signed short *PINT16; - -/* 8-bit integer */ -typedef unsigned char UINT8; -typedef signed char INT8; -typedef signed char OCT_INT8; -typedef unsigned char *PUINT8; -typedef signed char *PINT8; - - -/* 32 bit integer */ -typedef unsigned int UINT32; -typedef signed int INT32; -typedef INT32 * PINT32; -typedef UINT32 * PUINT32; - -/* Long integer */ -typedef signed long LONG; -typedef unsigned long ULONG; -typedef long * PLONG; -typedef unsigned long * PULONG; - -/* Short integer */ -typedef short SHORT; -typedef unsigned short USHORT; -typedef short * PSHORT; -typedef unsigned short *PUSHORT; - -/* 8-bit integer*/ -typedef unsigned char BYTE; -typedef BYTE * PBYTE; -typedef unsigned char UCHAR; - -/* Character and strings */ -typedef char CHAR; -typedef CHAR SZ; -typedef CHAR * PSZ; -typedef CHAR * PCHAR; - -/* Double integers */ -typedef double DOUBLE; -typedef double * PDOUBLE; -typedef float FLOAT; -typedef float * PFLOAT; - -typedef void VOID; -typedef void * PVOID; - -/* Booleans */ -typedef int BOOL; -typedef BOOL * PBOOL; - -/* Integers */ -typedef int INT; -typedef int * PINT; -typedef unsigned int UINT; -typedef unsigned int * PUINT; - -/* Define pseudo-keywords IN and OUT if not defined yet */ -#ifndef IN -#define IN /* IN param */ -#endif - -#ifndef OUT -#define OUT /* OUT param */ -#endif - -/* LONG LONG */ -#define LLONG signed long long -#define PLLONG signed long long * -#define ULLONG unsigned long long -#define PULLONG unsigned long long * - -#ifndef OPT -#define OPT /* OPT param */ -#endif - -typedef PSZ * PPSZ; - -#ifndef NULL -#define NULL 0 -#endif - -#endif - -/*-------------------------------------------------------------------------- - C language -----------------------------------------------------------------------------*/ - -#ifdef __cplusplus -} -#endif - -#endif /* __OCTTYPE_H__ */ +/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ + +File: octtype.h + + Copyright (c) 2001-2006 Octasic Inc. + +Description: + + This file defines the base storage types. + +This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API 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. + +The OCT6100 GPL API is distributed in the hope that 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 the OCT6100 GPL API; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + +$Octasic_Release: OCT612xAPI-01.00-PR43 $ + +$Octasic_Revision: 18 $ + +\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ +#ifndef __OCTTYPE_H__ +#define __OCTTYPE_H__ + +/*-------------------------------------------------------------------------- + C language +----------------------------------------------------------------------------*/ + +#ifdef __cplusplus +extern "C" { +#endif + +/*-------------------------------------------------------------------------- + Include target-specific header if available +----------------------------------------------------------------------------*/ +#if defined( OCT_NTDRVENV ) + #include "octtypentdrv.h" /* All NT driver typedef */ +#elif defined( OCT_WINENV ) + #include "octtypewin.h" /* All Win32 typedef */ +#elif defined( OCT_VXENV ) + #include "octtypevx.h" /* All VxWorks typedef */ +//#else +#endif +/*-------------------------------------------------------------------------- + No target-specific header available +----------------------------------------------------------------------------*/ + +/***************************** DEFINES *************************************/ +/* 16-bit integer */ +typedef unsigned short UINT16; +typedef signed short INT16; +typedef unsigned short *PUINT16; +typedef signed short *PINT16; + +/* 8-bit integer */ +typedef unsigned char UINT8; +typedef signed char INT8; +typedef signed char OCT_INT8; +typedef unsigned char *PUINT8; +typedef signed char *PINT8; + + +/* 32 bit integer */ +typedef unsigned int UINT32; +typedef signed int INT32; +typedef INT32 * PINT32; +typedef UINT32 * PUINT32; + +/* Long integer */ +typedef signed long LONG; +typedef unsigned long ULONG; +typedef long * PLONG; +typedef unsigned long * PULONG; + +/* Short integer */ +typedef short SHORT; +typedef unsigned short USHORT; +typedef short * PSHORT; +typedef unsigned short *PUSHORT; + +/* 8-bit integer*/ +typedef unsigned char BYTE; +typedef BYTE * PBYTE; +typedef unsigned char UCHAR; + +/* Character and strings */ +typedef char CHAR; +typedef CHAR SZ; +typedef CHAR * PSZ; +typedef CHAR * PCHAR; + +/* Double integers */ +typedef double DOUBLE; +typedef double * PDOUBLE; +typedef float FLOAT; +typedef float * PFLOAT; + +#if !defined(__WINDOWS__) +typedef void VOID; +#else +#define VOID void +#endif +typedef void * PVOID; + +/* Booleans */ +typedef int BOOL; +typedef BOOL * PBOOL; + +/* Integers */ +typedef int INT; +typedef int * PINT; +typedef unsigned int UINT; +typedef unsigned int * PUINT; + +/* Define pseudo-keywords IN and OUT if not defined yet */ +#ifndef IN +#define IN /* IN param */ +#endif + +#ifndef OUT +#define OUT /* OUT param */ +#endif + +/* LONG LONG */ +#define LLONG signed long long +#define PLLONG signed long long * +#define ULLONG unsigned long long +#define PULLONG unsigned long long * + +#ifndef OPT +#define OPT /* OPT param */ +#endif + +typedef PSZ * PPSZ; + +#ifndef NULL +#define NULL 0 +#endif + + +/*-------------------------------------------------------------------------- + C language +----------------------------------------------------------------------------*/ + +#ifdef __cplusplus +} +#endif + +#endif /* __OCTTYPE_H__ */ diff --git a/patches/kdrivers/wanec/oct6100_api.PR43/include/octtypentdrv.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/octtypentdrv.h new file mode 100755 index 0000000..ac8e8f8 --- /dev/null +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/octtypentdrv.h @@ -0,0 +1,41 @@ +/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ + +File: octtypentdrv.h + +Copyright (c) 2001 Octasic Inc. All rights reserved. + +Description: This file defines the base storage types for the NT driver + environment. + +$Octasic_Confidentiality: $ + +$Octasic_Release: $ + +$Revision: 1.1 $ + +\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ + +#ifndef __OCTTYPENTDRV_H__ +#define __OCTTYPENTDRV_H__ + +#if defined(__KERNEL__) + +#include //for DbgPrint + +#if 0 + #define OCT_FUNC_DEBUG() \ + { \ + DbgPrint("%s:%s(): File: %s, Line: %d.\n", \ + "Oct", __FUNCTION__, __FILE__, __LINE__); \ + } +#else + #define OCT_FUNC_DEBUG() +#endif + +#define OCT_DBG if(0)DbgPrint + +//Memory allocation inside ISR is illegal. Create temporary local buffers. +#define OCT_TMP_MEMORY_SIZE 500 + +#endif /*__KERNEL__*/ +#endif /*__OCTTYPENTDRV_H__*/ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/octtypevx.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/octtypevx.h similarity index 88% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/octtypevx.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/octtypevx.h index 4f5a6de..30f369d 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/octtypevx.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/octtypevx.h @@ -2,7 +2,7 @@ File: octtypevx.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -22,9 +22,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 9 $ +$Octasic_Revision: 8 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -54,8 +54,7 @@ typedef INT32 * PINT32; typedef UINT32 * PUINT32; /* Long integer pointer */ -/*Intel library for file system definition*/ -#ifndef DATATYPE_H +#ifndef DATATYPE_H /*Intel library for file system definition*/ typedef long LONG; #endif typedef long * PLONG; @@ -75,8 +74,7 @@ typedef char BYTE; typedef BYTE * PBYTE; /* Character and strings */ -/*Intel library for file system definition*/ -#ifndef DATATYPE_H +#ifndef DATATYPE_H /*Intel library for file system definition*/ typedef char CHAR; #endif typedef char * PCHAR; diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/include/octtypewin.h b/patches/kdrivers/wanec/oct6100_api.PR43/include/octtypewin.h similarity index 93% rename from patches/kdrivers/wanec/oct6100_api.PR48/include/octtypewin.h rename to patches/kdrivers/wanec/oct6100_api.PR43/include/octtypewin.h index dd67ab3..22d92e7 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/include/octtypewin.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/include/octtypewin.h @@ -2,7 +2,7 @@ File: octtypewin.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -23,7 +23,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 16 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_adpcm_chan_priv.h b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_adpcm_chan_priv.h similarity index 95% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_adpcm_chan_priv.h rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_adpcm_chan_priv.h index 6bd02f7..2fe43d0 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_adpcm_chan_priv.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_adpcm_chan_priv.h @@ -2,7 +2,7 @@ File: oct6100_adpcm_chan_priv.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,9 +25,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 7 $ +$Octasic_Revision: 6 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ diff --git a/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/makefile b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/makefile new file mode 100755 index 0000000..b6c73b5 --- /dev/null +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/makefile @@ -0,0 +1,9 @@ +# +# DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source +# file to this component. This file merely indirects to the real make file +# that is shared by all the driver components of the Windows NT DDK +# + +!INCLUDE $(NTMAKEENV)\makefile.def + + diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_adpcm_chan.c b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_adpcm_chan.c similarity index 97% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_adpcm_chan.c rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_adpcm_chan.c index 9b8dd0f..ed8e8d3 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_adpcm_chan.c +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_adpcm_chan.c @@ -2,7 +2,7 @@ File: oct6100_adpcm_chan.c - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -22,9 +22,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 16 $ +$Octasic_Revision: 15 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -1201,3 +1201,4 @@ UINT32 Oct6100ApiReleaseAdpcmChanEntry( return cOCT6100_ERR_OK; } + diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.c b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.c similarity index 95% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.c rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.c index dd7935c..3068d97 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.c +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.c @@ -2,7 +2,7 @@ File: oct6100_channel.c - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -23,9 +23,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 491 $ +$Octasic_Revision: 469 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -80,6 +80,9 @@ $Octasic_Revision: 491 $ #include "oct6100_debug_priv.h" +UINT32 Oct6100ApiReserveBiDirChanEntry(tPOCT6100_INSTANCE_API, PUINT16); +UINT32 Oct6100ApiReleaseBiDirChanEntry(tPOCT6100_INSTANCE_API, UINT32); + /**************************** PUBLIC FUNCTIONS ****************************/ /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ @@ -119,6 +122,7 @@ UINT32 Oct6100ChannelOpenDef( f_pChannelOpen->VqeConfig.lRinAutomaticLevelControlTargetDb = -20; f_pChannelOpen->VqeConfig.fSoutAutomaticLevelControl = FALSE; f_pChannelOpen->VqeConfig.lSoutAutomaticLevelControlTargetDb = -20; + f_pChannelOpen->VqeConfig.ulAlcNoiseBleedOutTime = 0; f_pChannelOpen->VqeConfig.fRinHighLevelCompensation = FALSE; f_pChannelOpen->VqeConfig.lRinHighLevelCompensationThresholdDb = -10; f_pChannelOpen->VqeConfig.fSoutAdaptiveNoiseReduction = FALSE; @@ -143,13 +147,14 @@ UINT32 Oct6100ChannelOpenDef( f_pChannelOpen->VqeConfig.ulSoutNaturalListenerEnhancementGainDb = 0; f_pChannelOpen->VqeConfig.fSoutNaturalListenerEnhancement = FALSE; f_pChannelOpen->VqeConfig.fRoutNoiseReduction = FALSE; - f_pChannelOpen->VqeConfig.lRoutNoiseReductionLevelGainDb = -18; f_pChannelOpen->VqeConfig.lAnrSnrEnhancementDb = -18; f_pChannelOpen->VqeConfig.ulAnrVoiceNoiseSegregation = 6; f_pChannelOpen->VqeConfig.ulToneDisablerVqeActivationDelay = 300; f_pChannelOpen->VqeConfig.fEnableMusicProtection = FALSE; /* Older images have idle code detection hard-coded to enabled. */ f_pChannelOpen->VqeConfig.fIdleCodeDetection = TRUE; + f_pChannelOpen->VqeConfig.fResetRinAlcOnTones = FALSE; + f_pChannelOpen->VqeConfig.fResetSoutAlcOnTones = FALSE; /* TDM configuration.*/ f_pChannelOpen->TdmConfig.ulRinNumTssts = 1; @@ -344,6 +349,7 @@ UINT32 Oct6100ChannelModifyDef( f_pChannelModify->VqeConfig.lRinAutomaticLevelControlTargetDb = (INT32)cOCT6100_KEEP_PREVIOUS_SETTING; f_pChannelModify->VqeConfig.fSoutAutomaticLevelControl = cOCT6100_KEEP_PREVIOUS_SETTING; f_pChannelModify->VqeConfig.lSoutAutomaticLevelControlTargetDb = (INT32)cOCT6100_KEEP_PREVIOUS_SETTING; + f_pChannelModify->VqeConfig.ulAlcNoiseBleedOutTime = cOCT6100_KEEP_PREVIOUS_SETTING; f_pChannelModify->VqeConfig.fRinHighLevelCompensation = cOCT6100_KEEP_PREVIOUS_SETTING; f_pChannelModify->VqeConfig.lRinHighLevelCompensationThresholdDb = (INT32)cOCT6100_KEEP_PREVIOUS_SETTING; f_pChannelModify->VqeConfig.fSoutAdaptiveNoiseReduction = cOCT6100_KEEP_PREVIOUS_SETTING; @@ -367,12 +373,13 @@ UINT32 Oct6100ChannelModifyDef( f_pChannelModify->VqeConfig.ulSoutNaturalListenerEnhancementGainDb = cOCT6100_KEEP_PREVIOUS_SETTING; f_pChannelModify->VqeConfig.fSoutNaturalListenerEnhancement = cOCT6100_KEEP_PREVIOUS_SETTING; f_pChannelModify->VqeConfig.fRoutNoiseReduction = cOCT6100_KEEP_PREVIOUS_SETTING; - f_pChannelModify->VqeConfig.lRoutNoiseReductionLevelGainDb = cOCT6100_KEEP_PREVIOUS_SETTING; f_pChannelModify->VqeConfig.lAnrSnrEnhancementDb = cOCT6100_KEEP_PREVIOUS_SETTING; f_pChannelModify->VqeConfig.ulAnrVoiceNoiseSegregation = cOCT6100_KEEP_PREVIOUS_SETTING; f_pChannelModify->VqeConfig.ulToneDisablerVqeActivationDelay = cOCT6100_KEEP_PREVIOUS_SETTING; f_pChannelModify->VqeConfig.fEnableMusicProtection = cOCT6100_KEEP_PREVIOUS_SETTING; f_pChannelModify->VqeConfig.fIdleCodeDetection = cOCT6100_KEEP_PREVIOUS_SETTING; + f_pChannelModify->VqeConfig.fResetRinAlcOnTones = cOCT6100_KEEP_PREVIOUS_SETTING; + f_pChannelModify->VqeConfig.fResetSoutAlcOnTones = cOCT6100_KEEP_PREVIOUS_SETTING; /* TDM config. */ f_pChannelModify->TdmConfig.ulRinNumTssts = cOCT6100_KEEP_PREVIOUS_SETTING; @@ -801,6 +808,7 @@ UINT32 Oct6100ChannelGetStatsDef( f_pChannelStats->VqeConfig.fSoutLevelControl = FALSE; f_pChannelStats->VqeConfig.fRinAutomaticLevelControl = FALSE; f_pChannelStats->VqeConfig.fSoutAutomaticLevelControl = FALSE; + f_pChannelStats->VqeConfig.ulAlcNoiseBleedOutTime = cOCT6100_INVALID_STAT; f_pChannelStats->VqeConfig.fRinHighLevelCompensation = FALSE; f_pChannelStats->VqeConfig.fAcousticEcho = FALSE; f_pChannelStats->VqeConfig.fSoutAdaptiveNoiseReduction = FALSE; @@ -825,12 +833,13 @@ UINT32 Oct6100ChannelGetStatsDef( f_pChannelStats->VqeConfig.ulSoutNaturalListenerEnhancementGainDb = cOCT6100_INVALID_STAT; f_pChannelStats->VqeConfig.fSoutNaturalListenerEnhancement = FALSE; f_pChannelStats->VqeConfig.fRoutNoiseReduction = FALSE; - f_pChannelStats->VqeConfig.lRoutNoiseReductionLevelGainDb = cOCT6100_INVALID_SIGNED_STAT; f_pChannelStats->VqeConfig.lAnrSnrEnhancementDb = cOCT6100_INVALID_SIGNED_STAT; f_pChannelStats->VqeConfig.ulAnrVoiceNoiseSegregation = cOCT6100_INVALID_STAT; f_pChannelStats->VqeConfig.ulToneDisablerVqeActivationDelay = cOCT6100_INVALID_STAT; f_pChannelStats->VqeConfig.fEnableMusicProtection = FALSE; f_pChannelStats->VqeConfig.fIdleCodeDetection = FALSE; + f_pChannelStats->VqeConfig.fResetRinAlcOnTones = FALSE; + f_pChannelStats->VqeConfig.fResetSoutAlcOnTones = FALSE; @@ -1895,7 +1904,7 @@ UINT32 Oct6100ApiWriteChannelStructs( mOCT6100_GET_CHANNEL_ENTRY_PNT( f_pApiInstance->pSharedInfo, pChanEntry, f_pChanIndexConf->usEchoChanIndex ); /*==============================================================================*/ - /* Configure the Input Tsst control memory.*/ + /* Configure the Tsst control memory.*/ /* Set the RIN Tsst control entry.*/ if ( f_pChanIndexConf->usRinTsstIndex != cOCT6100_INVALID_INDEX ) @@ -1908,6 +1917,18 @@ UINT32 Oct6100ApiWriteChannelStructs( return ulResult; } + /* Set the ROUT Tsst control entry.*/ + if ( f_pChanIndexConf->usRoutTsstIndex != cOCT6100_INVALID_INDEX ) + { + ulResult = Oct6100ApiWriteOutputTsstControlMemory( f_pApiInstance, + f_pChanIndexConf->usRoutTsstIndex, + f_pChannelOpen->CodecConfig.ulAdpcmNibblePosition, + pTdmConfig->ulRoutNumTssts, + f_pChanIndexConf->usRinRoutTsiMemIndex ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + } + /* Set the SIN Tsst control entry.*/ if ( f_pChanIndexConf->usSinTsstIndex != cOCT6100_INVALID_INDEX ) { @@ -1919,6 +1940,18 @@ UINT32 Oct6100ApiWriteChannelStructs( return ulResult; } + /* Set the SOUT Tsst control entry.*/ + if ( f_pChanIndexConf->usSoutTsstIndex != cOCT6100_INVALID_INDEX ) + { + ulResult = Oct6100ApiWriteOutputTsstControlMemory( f_pApiInstance, + f_pChanIndexConf->usSoutTsstIndex, + f_pChannelOpen->CodecConfig.ulAdpcmNibblePosition, + pTdmConfig->ulSoutNumTssts, + f_pChanIndexConf->usSinSoutTsiMemIndex ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + } + /*==============================================================================*/ /*==============================================================================*/ @@ -1940,19 +1973,10 @@ UINT32 Oct6100ApiWriteChannelStructs( { if ( pTdmConfig->ulRinPcmLaw == pTdmConfig->ulRoutPcmLaw ) fProgramAdpcmMem = FALSE; - - /* Check if both ports are assigned. If not, no law conversion needed here.. */ - if ( ( pTdmConfig->ulRinStream == cOCT6100_UNASSIGNED ) - || ( pTdmConfig->ulRoutStream == cOCT6100_UNASSIGNED ) ) - fProgramAdpcmMem = FALSE; } else /* f_pChannelOpen->CodecConfig.ulDecoderPort == cOCT6100_CHANNEL_PORT_SIN */ { - if ( pTdmConfig->ulSinPcmLaw == pTdmConfig->ulSoutPcmLaw ) - fProgramAdpcmMem = FALSE; - - if ( ( pTdmConfig->ulSinStream == cOCT6100_UNASSIGNED ) - || ( pTdmConfig->ulSoutStream == cOCT6100_UNASSIGNED ) ) + if ( f_pChannelOpen->TdmConfig.ulSinPcmLaw == f_pChannelOpen->TdmConfig.ulSoutPcmLaw ) fProgramAdpcmMem = FALSE; } break; @@ -2078,11 +2102,6 @@ UINT32 Oct6100ApiWriteChannelStructs( /* Check for law conversion.*/ if ( pTdmConfig->ulRinPcmLaw == pTdmConfig->ulRoutPcmLaw ) fProgramAdpcmMem = FALSE; - - /* Check if both ports are assigned. If not, no law conversion needed here.. */ - if ( ( pTdmConfig->ulRinStream == cOCT6100_UNASSIGNED ) - || ( pTdmConfig->ulRoutStream == cOCT6100_UNASSIGNED ) ) - fProgramAdpcmMem = FALSE; } else /* f_pChannelOpen->CodecConfig.ulEncoderPort == cOCT6100_CHANNEL_PORT_SOUT */ { @@ -2094,13 +2113,8 @@ UINT32 Oct6100ApiWriteChannelStructs( /* Check for law conversion.*/ if ( pTdmConfig->ulSinPcmLaw == pTdmConfig->ulSoutPcmLaw ) fProgramAdpcmMem = FALSE; + } - /* Check if both ports are assigned. If not, no law conversion needed here.. */ - if ( ( pTdmConfig->ulSinStream == cOCT6100_UNASSIGNED ) - || ( pTdmConfig->ulSoutStream == cOCT6100_UNASSIGNED ) ) - fProgramAdpcmMem = FALSE; - } - break; case cOCT6100_G726_40KBPS: ulCompType = 0x3; @@ -2427,35 +2441,6 @@ UINT32 Oct6100ApiWriteChannelStructs( /*==============================================================================*/ - /*==============================================================================*/ - /* Configure the Output Tsst control memory.*/ - - /* Set the ROUT Tsst control entry.*/ - if ( f_pChanIndexConf->usRoutTsstIndex != cOCT6100_INVALID_INDEX ) - { - ulResult = Oct6100ApiWriteOutputTsstControlMemory( f_pApiInstance, - f_pChanIndexConf->usRoutTsstIndex, - f_pChannelOpen->CodecConfig.ulAdpcmNibblePosition, - pTdmConfig->ulRoutNumTssts, - f_pChanIndexConf->usRinRoutTsiMemIndex ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - } - - /* Set the SOUT Tsst control entry.*/ - if ( f_pChanIndexConf->usSoutTsstIndex != cOCT6100_INVALID_INDEX ) - { - ulResult = Oct6100ApiWriteOutputTsstControlMemory( f_pApiInstance, - f_pChanIndexConf->usSoutTsstIndex, - f_pChannelOpen->CodecConfig.ulAdpcmNibblePosition, - pTdmConfig->ulSoutNumTssts, - f_pChanIndexConf->usSinSoutTsiMemIndex ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - } - - /*==============================================================================*/ - return cOCT6100_ERR_OK; } @@ -2518,6 +2503,7 @@ UINT32 Oct6100ApiUpdateChannelEntry( pChanEntry->VqeConfig.fRinAutomaticLevelControl = (UINT8)( pVqeConfig->fRinAutomaticLevelControl & 0xFF ); pChanEntry->VqeConfig.chRinAutomaticLevelControlTargetDb = (OCT_INT8)( pVqeConfig->lRinAutomaticLevelControlTargetDb & 0xFF ); pChanEntry->VqeConfig.fSoutAutomaticLevelControl = (UINT8)( pVqeConfig->fSoutAutomaticLevelControl & 0xFF ); + pChanEntry->VqeConfig.usAlcNoiseBleedOutTime = (UINT16)( pVqeConfig->ulAlcNoiseBleedOutTime & 0xFFFF ); pChanEntry->VqeConfig.chSoutAutomaticLevelControlTargetDb = (OCT_INT8)( pVqeConfig->lSoutAutomaticLevelControlTargetDb & 0xFF ); pChanEntry->VqeConfig.fRinHighLevelCompensation = (UINT8)( pVqeConfig->fRinHighLevelCompensation & 0xFF ); pChanEntry->VqeConfig.chRinHighLevelCompensationThresholdDb = (OCT_INT8)( pVqeConfig->lRinHighLevelCompensationThresholdDb & 0xFF ); @@ -2543,9 +2529,10 @@ UINT32 Oct6100ApiUpdateChannelEntry( pChanEntry->VqeConfig.bySoutNaturalListenerEnhancementGainDb = (UINT8)( pVqeConfig->ulSoutNaturalListenerEnhancementGainDb & 0xFF ); pChanEntry->VqeConfig.fSoutNaturalListenerEnhancement = (UINT8)( pVqeConfig->fSoutNaturalListenerEnhancement & 0xFF ); pChanEntry->VqeConfig.fRoutNoiseReduction = (UINT8)( pVqeConfig->fRoutNoiseReduction & 0xFF ); - pChanEntry->VqeConfig.chRoutNoiseReductionLevelGainDb = (OCT_INT8) (pVqeConfig->lRoutNoiseReductionLevelGainDb & 0xFF); pChanEntry->VqeConfig.fEnableMusicProtection = (UINT8)( pVqeConfig->fEnableMusicProtection & 0xFF ); pChanEntry->VqeConfig.fIdleCodeDetection = (UINT8)( pVqeConfig->fIdleCodeDetection & 0xFF ); + pChanEntry->VqeConfig.fResetRinAlcOnTones = (UINT8)( pVqeConfig->fResetRinAlcOnTones & 0xFF ); + pChanEntry->VqeConfig.fResetSoutAlcOnTones = (UINT8)( pVqeConfig->fResetSoutAlcOnTones & 0xFF ); /* Save the codec information.*/ pChanEntry->CodecConfig.byAdpcmNibblePosition = (UINT8)( pCodecConfig->ulAdpcmNibblePosition & 0xFF ); @@ -3200,16 +3187,6 @@ UINT32 Oct6100ApiInvalidateChannelStructs( return ulResult; /*------------------------------------------------------------------------------*/ - /*------------------------------------------------------------------------------*/ - /* Clear the NLP memory. */ - - SmearParams.ulWriteAddress = cOCT6100_CHANNEL_ROOT_BASE + ( pChanEntry->usEchoMemIndex * cOCT6100_CHANNEL_ROOT_SIZE ) + pSharedInfo->MemoryMap.ulChanRootConfOfst + 0x28; - SmearParams.usWriteData = 0x0000; - SmearParams.ulWriteLength = 2; - - mOCT6100_DRIVER_WRITE_SMEAR_API( SmearParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; /*------------------------------------------------------------------------------*/ /* Clear the AF information memory. */ @@ -3475,11 +3452,6 @@ UINT32 Oct6100ApiReleaseChannelResources( pChanEntry->fReserved = FALSE; pChanEntry->byEntryOpenCnt++; - /* Reset the port, the bridge and BidirInfo */ - pChanEntry->usMutedPorts = cOCT6100_CHANNEL_MUTE_PORT_NONE; - pChanEntry->fBiDirChannel = FALSE; - pChanEntry->usBridgeIndex = cOCT6100_INVALID_INDEX; - /* Decrement the number of channel open.*/ f_pApiInstance->pSharedInfo->ChipStats.usNumberChannels--; @@ -5785,6 +5757,7 @@ UINT32 Oct6100ApiModifyChannelEntry( pApiVqeConf->fSoutLevelControl = (UINT8)( f_pChannelOpen->VqeConfig.fSoutLevelControl & 0xFF ); pApiVqeConf->fRinAutomaticLevelControl = (UINT8)( f_pChannelOpen->VqeConfig.fRinAutomaticLevelControl & 0xFF ); pApiVqeConf->fSoutAutomaticLevelControl = (UINT8)( f_pChannelOpen->VqeConfig.fSoutAutomaticLevelControl & 0xFF ); + pApiVqeConf->usAlcNoiseBleedOutTime = (UINT16)( f_pChannelOpen->VqeConfig.ulAlcNoiseBleedOutTime & 0xFFFF ); pApiVqeConf->fRinHighLevelCompensation = (UINT8)( f_pChannelOpen->VqeConfig.fRinHighLevelCompensation & 0xFF ); pApiVqeConf->fSoutAdaptiveNoiseReduction = (UINT8)( f_pChannelOpen->VqeConfig.fSoutAdaptiveNoiseReduction & 0xFF ); @@ -5814,9 +5787,10 @@ UINT32 Oct6100ApiModifyChannelEntry( pApiVqeConf->bySoutNaturalListenerEnhancementGainDb = (UINT8)( f_pChannelOpen->VqeConfig.ulSoutNaturalListenerEnhancementGainDb & 0xFF ); pApiVqeConf->fSoutNaturalListenerEnhancement = (UINT8)( f_pChannelOpen->VqeConfig.fSoutNaturalListenerEnhancement & 0xFF ); pApiVqeConf->fRoutNoiseReduction = (UINT8)( f_pChannelOpen->VqeConfig.fRoutNoiseReduction & 0xFF ); - pApiVqeConf->chRoutNoiseReductionLevelGainDb = (OCT_INT8)( f_pChannelOpen->VqeConfig.lRoutNoiseReductionLevelGainDb & 0xFF ); pApiVqeConf->fEnableMusicProtection = (UINT8)( f_pChannelOpen->VqeConfig.fEnableMusicProtection & 0xFF ); pApiVqeConf->fIdleCodeDetection = (UINT8)( f_pChannelOpen->VqeConfig.fIdleCodeDetection & 0xFF ); + pApiVqeConf->fResetRinAlcOnTones = (UINT8)( f_pChannelOpen->VqeConfig.fResetRinAlcOnTones & 0xFF ); + pApiVqeConf->fResetSoutAlcOnTones = (UINT8)( f_pChannelOpen->VqeConfig.fResetSoutAlcOnTones & 0xFF ); } /*=======================================================================*/ @@ -6848,6 +6822,7 @@ UINT32 Oct6100ApiChannelGetStatsSer( f_pChannelStats->VqeConfig.fSoutLevelControl = pChanEntry->VqeConfig.fSoutLevelControl; f_pChannelStats->VqeConfig.fRinAutomaticLevelControl = pChanEntry->VqeConfig.fRinAutomaticLevelControl; f_pChannelStats->VqeConfig.fSoutAutomaticLevelControl = pChanEntry->VqeConfig.fSoutAutomaticLevelControl; + f_pChannelStats->VqeConfig.ulAlcNoiseBleedOutTime = pChanEntry->VqeConfig.usAlcNoiseBleedOutTime; f_pChannelStats->VqeConfig.fRinHighLevelCompensation = pChanEntry->VqeConfig.fRinHighLevelCompensation; f_pChannelStats->VqeConfig.fSoutAdaptiveNoiseReduction = pChanEntry->VqeConfig.fSoutAdaptiveNoiseReduction; f_pChannelStats->VqeConfig.fSoutNoiseBleaching = pChanEntry->VqeConfig.fSoutNoiseBleaching; @@ -6873,9 +6848,10 @@ UINT32 Oct6100ApiChannelGetStatsSer( f_pChannelStats->VqeConfig.ulSoutNaturalListenerEnhancementGainDb = pChanEntry->VqeConfig.bySoutNaturalListenerEnhancementGainDb; f_pChannelStats->VqeConfig.fSoutNaturalListenerEnhancement = pChanEntry->VqeConfig.fSoutNaturalListenerEnhancement; f_pChannelStats->VqeConfig.fRoutNoiseReduction = pChanEntry->VqeConfig.fRoutNoiseReduction; - f_pChannelStats->VqeConfig.lRoutNoiseReductionLevelGainDb = pChanEntry->VqeConfig.chRoutNoiseReductionLevelGainDb; f_pChannelStats->VqeConfig.fEnableMusicProtection = pChanEntry->VqeConfig.fEnableMusicProtection; f_pChannelStats->VqeConfig.fIdleCodeDetection = pChanEntry->VqeConfig.fIdleCodeDetection; + f_pChannelStats->VqeConfig.fResetRinAlcOnTones = pChanEntry->VqeConfig.fResetRinAlcOnTones; + f_pChannelStats->VqeConfig.fResetSoutAlcOnTones = pChanEntry->VqeConfig.fResetSoutAlcOnTones; /* Copy the CODEC configuration.*/ f_pChannelStats->CodecConfig.ulAdpcmNibblePosition = pChanEntry->CodecConfig.byAdpcmNibblePosition; @@ -7684,9 +7660,23 @@ UINT32 Oct6100ApiCheckVqeConfig( if ( ( f_pVqeConfig->fRinAutomaticLevelControl == TRUE ) && ( pImageInfo->fRinAutoLevelControl == FALSE ) ) return cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_RIN_AUTO_LC; + if ( f_pVqeConfig->ulAlcNoiseBleedOutTime > 63750 ) + return cOCT6100_ERR_CHANNEL_ALC_NOISE_BLEED_OUT_TIME; + + if ( ( f_pVqeConfig->ulAlcNoiseBleedOutTime != 0 ) && ( pImageInfo->fAlcNoiseBleedOutTime == FALSE ) ) + return cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_ALC_NOISE_BLEED_OUT_TIME; + if ( ( f_pVqeConfig->fRinHighLevelCompensation == TRUE ) && ( pImageInfo->fRinHighLevelCompensation == FALSE ) ) return cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_RIN_HIGH_LEVEL_COMP; + /* Check the enable reset Rin ALC on tone detection flag. */ + if ( ( f_pVqeConfig->fResetRinAlcOnTones != TRUE ) && ( f_pVqeConfig->fResetRinAlcOnTones != FALSE ) ) + return cOCT6100_ERR_CHANNEL_RESET_RIN_ALC_ON_TONES; + + /* The reset Rin ALC on tone detection can be activated if the image supports it. */ + if ( ( f_pVqeConfig->fResetRinAlcOnTones == TRUE ) && ( pImageInfo->fResetRinAlcOnTones == FALSE ) ) + return cOCT6100_ERR_NOT_SUPPORTED_RESET_RIN_ALC_ON_TONES; + if ( f_pVqeConfig->fRinAutomaticLevelControl == TRUE ) { if ( f_pVqeConfig->fRinLevelControl == TRUE ) @@ -7698,6 +7688,12 @@ UINT32 Oct6100ApiCheckVqeConfig( if ( ( f_pVqeConfig->lRinAutomaticLevelControlTargetDb < -40 || f_pVqeConfig->lRinAutomaticLevelControlTargetDb > 0 ) ) return cOCT6100_ERR_CHANNEL_RIN_AUTO_LEVEL_CONTROL_TARGET; } + else /* if ( f_pVqeConfig->fRinAutomaticLevelControl != TRUE ) */ + { + /* Reset Rin ALC on tones can only be activated in Rin ALC is requested. */ + if ( f_pVqeConfig->fResetRinAlcOnTones == TRUE ) + return cOCT6100_ERR_CHANNEL_RIN_AUTO_LEVEL_CONTROL_REQUIRED; + } if ( f_pVqeConfig->fRinHighLevelCompensation == TRUE ) { @@ -7714,6 +7710,14 @@ UINT32 Oct6100ApiCheckVqeConfig( if ( ( f_pVqeConfig->fSoutAutomaticLevelControl == TRUE ) && ( pImageInfo->fSoutAutoLevelControl == FALSE ) ) return cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_SOUT_AUTO_LC; + /* Check the enable reset Sout ALC on tone detection flag. */ + if ( ( f_pVqeConfig->fResetSoutAlcOnTones != TRUE ) && ( f_pVqeConfig->fResetSoutAlcOnTones != FALSE ) ) + return cOCT6100_ERR_CHANNEL_RESET_SOUT_ALC_ON_TONES; + + /* The reset Sout ALC on tone detection can be activated if the image supports it. */ + if ( ( f_pVqeConfig->fResetSoutAlcOnTones == TRUE ) && ( pImageInfo->fResetSoutAlcOnTones == FALSE ) ) + return cOCT6100_ERR_NOT_SUPPORTED_RESET_SOUT_ALC_ON_TONES; + if ( f_pVqeConfig->fSoutAutomaticLevelControl == TRUE ) { if ( f_pVqeConfig->fSoutLevelControl == TRUE ) @@ -7722,6 +7726,21 @@ UINT32 Oct6100ApiCheckVqeConfig( if ( ( f_pVqeConfig->lSoutAutomaticLevelControlTargetDb < -40 || f_pVqeConfig->lSoutAutomaticLevelControlTargetDb > 0 ) ) return cOCT6100_ERR_CHANNEL_SOUT_AUTO_LEVEL_CONTROL_TARGET; } + else /* if ( f_pVqeConfig->fSoutAutomaticLevelControl != TRUE ) */ + { + /* Reset Sout ALC on tones can only be activated if Sout ALC is requested. */ + if ( f_pVqeConfig->fResetSoutAlcOnTones == TRUE ) + return cOCT6100_ERR_CHANNEL_SOUT_AUTO_LEVEL_CONTROL_REQUIRED; + } + + /* ALC noise bleed out can only be configured if ALC is requested. */ + if ( f_pVqeConfig->ulAlcNoiseBleedOutTime != 0 ) + { + /* If both ports ALC is disabled, let the user know. */ + if ( ( f_pVqeConfig->fRinAutomaticLevelControl == FALSE ) + && ( f_pVqeConfig->fSoutAutomaticLevelControl == FALSE ) ) + return cOCT6100_ERR_CHANNEL_AUTO_LEVEL_CONTROL_REQUIRED; + } if ( f_pVqeConfig->fSoutAdaptiveNoiseReduction != TRUE && f_pVqeConfig->fSoutAdaptiveNoiseReduction != FALSE ) @@ -7934,17 +7953,6 @@ UINT32 Oct6100ApiCheckVqeConfig( if ( f_pVqeConfig->fRoutNoiseReduction == TRUE && pImageInfo->fRoutNoiseReduction == FALSE ) return cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_ROUT_NR; - /*Check if noise reduction level gain is supported*/ - if ( ( pImageInfo->fRoutNoiseReductionLevel == FALSE ) && ( f_pVqeConfig->lRoutNoiseReductionLevelGainDb != -18 ) ) - return cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_ROUT_NOISE_REDUCTION_GAIN; - - if ( ( f_pVqeConfig->lRoutNoiseReductionLevelGainDb != 0 ) && - ( f_pVqeConfig->lRoutNoiseReductionLevelGainDb != -6 ) && - ( f_pVqeConfig->lRoutNoiseReductionLevelGainDb != -12 ) && - ( f_pVqeConfig->lRoutNoiseReductionLevelGainDb != -18 ) ) - - return cOCT6100_ERR_CHANNEL_ROUT_NOISE_REDUCTION_GAIN; - /* Check if ANR SNRE is supported. */ if ( ( f_pVqeConfig->lAnrSnrEnhancementDb != -18 ) && ( pImageInfo->fAnrSnrEnhancement == FALSE ) ) return cOCT6100_ERR_NOT_SUPPORTED_CHANNEL_ANR_SNR_ENHANCEMENT; @@ -8781,61 +8789,6 @@ UINT32 Oct6100ApiWriteVqeNlpMemory( return ulResult; } } - if (pSharedInfo->ImageInfo.fRoutNoiseReductionLevel == TRUE) - { - /* Check if the configuration has been changed. */ - if ( ( f_fModifyOnly == FALSE ) - || ( ( f_fModifyOnly == TRUE ) - && ( (f_pVqeConfig->lRoutNoiseReductionLevelGainDb != pChanEntry->VqeConfig.chRoutNoiseReductionLevelGainDb ) - ||( f_pVqeConfig->fRoutNoiseReduction != pChanEntry->VqeConfig.fRoutNoiseReduction ) ) ) ) - { - ulFeatureBytesOffset = pSharedInfo->MemoryMap.RinAnrValOfst.usDwordOffset * 4; - ulFeatureBitOffset = pSharedInfo->MemoryMap.RinAnrValOfst.byBitOffset; - ulFeatureFieldLength = pSharedInfo->MemoryMap.RinAnrValOfst.byFieldSize; - - mOCT6100_RETRIEVE_NLP_CONF_DWORD( f_pApiInstance, - pChanEntry, - ulNlpConfigBaseAddress + ulFeatureBytesOffset, - &ulTempData, - ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - /* Clear previous value set in the feature field.*/ - mOCT6100_CREATE_FEATURE_MASK( ulFeatureFieldLength, ulFeatureBitOffset, &ulMask ); - - ulTempData &= (~ulMask); - - if (f_pVqeConfig->fRoutNoiseReduction == TRUE) - { - switch( f_pVqeConfig->lRoutNoiseReductionLevelGainDb) - { - case 0: ulTempData |= ( 0 << ulFeatureBitOffset ); - break; - case -6: ulTempData |= ( 1 << ulFeatureBitOffset ); - break; - case -12: ulTempData |= ( 2 << ulFeatureBitOffset ); - break; - case -18: ulTempData |= ( 3 << ulFeatureBitOffset ); - break; - default: ulTempData |= ( 0 << ulFeatureBitOffset ); - break; - } - } - else - ulTempData |= ( 0 << ulFeatureBitOffset ); - - /* Write the new DWORD where the field is located. */ - mOCT6100_SAVE_NLP_CONF_DWORD( f_pApiInstance, - pChanEntry, - ulNlpConfigBaseAddress + ulFeatureBytesOffset, - ulTempData, - ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - } - - } /* Configure Sout ANR SNR enhancement. */ if ( pSharedInfo->ImageInfo.fAnrSnrEnhancement == TRUE ) @@ -9418,14 +9371,6 @@ UINT32 Oct6100ApiWriteVqeNlpMemory( mOCT6100_CREATE_FEATURE_MASK( ulFeatureFieldLength, ulFeatureBitOffset, &ulMask ); ulTempData &= (~ulMask); - - /*If we support ANR level the TLV is shared over 2 bits*/ - if (pSharedInfo->ImageInfo.fRoutNoiseReductionLevel == TRUE) - { - ulFeatureBitOffset -= 2; - ausLookupTable[ f_pVqeConfig->ulNonLinearityBehaviorA ] &= 0xFFFC; - } - if ( ( f_pChannelOpen->ulEchoOperationMode == cOCT6100_ECHO_OP_MODE_NO_ECHO ) || ( f_pChannelOpen->ulEchoOperationMode == cOCT6100_ECHO_OP_MODE_SPEECH_RECOGNITION ) ) ulTempData |= ( 0x0 << ulFeatureBitOffset ); @@ -10385,6 +10330,18 @@ UINT32 Oct6100ApiUpdateOpenStruct( f_pChanOpen->VqeConfig.fRinAutomaticLevelControl = f_pChanModify->VqeConfig.fRinAutomaticLevelControl; + if ( f_pChanModify->VqeConfig.fResetRinAlcOnTones == cOCT6100_KEEP_PREVIOUS_SETTING ) + f_pChanOpen->VqeConfig.fResetRinAlcOnTones = f_pChanEntry->VqeConfig.fResetRinAlcOnTones; + else + f_pChanOpen->VqeConfig.fResetRinAlcOnTones = f_pChanModify->VqeConfig.fResetRinAlcOnTones; + + + if ( f_pChanModify->VqeConfig.ulAlcNoiseBleedOutTime == cOCT6100_KEEP_PREVIOUS_SETTING ) + f_pChanOpen->VqeConfig.ulAlcNoiseBleedOutTime = f_pChanEntry->VqeConfig.usAlcNoiseBleedOutTime; + else + f_pChanOpen->VqeConfig.ulAlcNoiseBleedOutTime = f_pChanModify->VqeConfig.ulAlcNoiseBleedOutTime; + + if ( f_pChanModify->VqeConfig.fRinHighLevelCompensation == cOCT6100_KEEP_PREVIOUS_SETTING ) f_pChanOpen->VqeConfig.fRinHighLevelCompensation = f_pChanEntry->VqeConfig.fRinHighLevelCompensation; else @@ -10433,6 +10390,12 @@ UINT32 Oct6100ApiUpdateOpenStruct( f_pChanOpen->VqeConfig.fSoutAutomaticLevelControl = f_pChanModify->VqeConfig.fSoutAutomaticLevelControl; + if ( f_pChanModify->VqeConfig.fResetSoutAlcOnTones == cOCT6100_KEEP_PREVIOUS_SETTING ) + f_pChanOpen->VqeConfig.fResetSoutAlcOnTones = f_pChanEntry->VqeConfig.fResetSoutAlcOnTones; + else + f_pChanOpen->VqeConfig.fResetSoutAlcOnTones = f_pChanModify->VqeConfig.fResetSoutAlcOnTones; + + if ( f_pChanModify->VqeConfig.lRinLevelControlGainDb == ( (INT32)cOCT6100_KEEP_PREVIOUS_SETTING ) ) f_pChanOpen->VqeConfig.lRinLevelControlGainDb = f_pChanEntry->VqeConfig.chRinLevelControlGainDb; else @@ -10531,11 +10494,6 @@ UINT32 Oct6100ApiUpdateOpenStruct( else f_pChanOpen->VqeConfig.fRoutNoiseReduction = f_pChanModify->VqeConfig.fRoutNoiseReduction; - if ( f_pChanModify->VqeConfig.lRoutNoiseReductionLevelGainDb == cOCT6100_KEEP_PREVIOUS_SETTING ) - f_pChanOpen->VqeConfig.lRoutNoiseReductionLevelGainDb = f_pChanEntry->VqeConfig.chRoutNoiseReductionLevelGainDb; - else - f_pChanOpen->VqeConfig.lRoutNoiseReductionLevelGainDb = f_pChanModify->VqeConfig.lRoutNoiseReductionLevelGainDb; - if ( f_pChanModify->VqeConfig.lAnrSnrEnhancementDb == cOCT6100_KEEP_PREVIOUS_SETTING ) f_pChanOpen->VqeConfig.lAnrSnrEnhancementDb = f_pChanEntry->VqeConfig.chAnrSnrEnhancementDb; @@ -10931,9 +10889,7 @@ UINT32 Oct6100ApiCheckChannelCreateBiDirParams( return cOCT6100_ERR_CHANNEL_BIDIR_FIRST_CHANNEL_HANDLE; /* Check the specific state of the channel.*/ - if ( pFirstChanEntry->fRinRoutCodecActive == TRUE && pFirstChanEntry->CodecConfig.byEncoderPort != cOCT6100_CHANNEL_PORT_ROUT) - return cOCT6100_ERR_CHANNEL_CODEC_ACTIVATED; - if ( pFirstChanEntry->fSinSoutCodecActive == TRUE && pFirstChanEntry->CodecConfig.byEncoderPort != cOCT6100_CHANNEL_PORT_SOUT) + if ( pFirstChanEntry->fRinRoutCodecActive == TRUE || pFirstChanEntry->fSinSoutCodecActive == TRUE ) return cOCT6100_ERR_CHANNEL_CODEC_ACTIVATED; if ( pFirstChanEntry->fBiDirChannel == TRUE ) return cOCT6100_ERR_CHANNEL_ALREADY_BIDIR; @@ -10977,9 +10933,9 @@ UINT32 Oct6100ApiCheckChannelCreateBiDirParams( return cOCT6100_ERR_CHANNEL_BIDIR_SECOND_CHANNEL_HANDLE; /* Check the specific state of the channel.*/ - if ( pSecondChanEntry->fRinRoutCodecActive == TRUE && pSecondChanEntry->CodecConfig.byEncoderPort != cOCT6100_CHANNEL_PORT_ROUT) + if ( pSecondChanEntry->fRinRoutCodecActive == TRUE ) return cOCT6100_ERR_CHANNEL_CODEC_ACTIVATED; - if ( pSecondChanEntry->fSinSoutCodecActive == TRUE && pSecondChanEntry->CodecConfig.byEncoderPort != cOCT6100_CHANNEL_PORT_SOUT) + if ( pSecondChanEntry->fSinSoutCodecActive == TRUE ) { return cOCT6100_ERR_CHANNEL_CODEC_ACTIVATED; @@ -12476,7 +12432,10 @@ UINT32 Oct6100ApiSetChannelLevelControl( || ( f_pVqeConfig->lSoutAutomaticLevelControlTargetDb != pChanEntry->VqeConfig.chSoutAutomaticLevelControlTargetDb ) || ( f_pVqeConfig->fSoutNaturalListenerEnhancement != pChanEntry->VqeConfig.fSoutNaturalListenerEnhancement ) || ( f_pVqeConfig->ulSoutAutomaticListenerEnhancementGainDb != pChanEntry->VqeConfig.bySoutAutomaticListenerEnhancementGainDb ) - || ( f_pVqeConfig->ulSoutNaturalListenerEnhancementGainDb != pChanEntry->VqeConfig.bySoutNaturalListenerEnhancementGainDb ) ) + || ( f_pVqeConfig->ulSoutNaturalListenerEnhancementGainDb != pChanEntry->VqeConfig.bySoutNaturalListenerEnhancementGainDb ) + || ( f_pVqeConfig->fResetRinAlcOnTones != pChanEntry->VqeConfig.fResetRinAlcOnTones ) + || ( f_pVqeConfig->fResetSoutAlcOnTones != pChanEntry->VqeConfig.fResetSoutAlcOnTones ) + || ( f_pVqeConfig->ulAlcNoiseBleedOutTime != pChanEntry->VqeConfig.usAlcNoiseBleedOutTime ) ) { /* Calculate base address for manual level control configuration. */ ulBaseAddress = cOCT6100_CHANNEL_ROOT_BASE + ( f_usEchoMemIndex * cOCT6100_CHANNEL_ROOT_SIZE ) + pSharedInfo->MemoryMap.ulChanRootConfOfst; @@ -12590,6 +12549,49 @@ UINT32 Oct6100ApiSetChannelLevelControl( /* Calculate base address for auto level control + high level compensation configuration. */ ulBaseAddress = pSharedInfo->MemoryMap.ulChanMainMemBase + ( f_usEchoMemIndex * pSharedInfo->MemoryMap.ulChanMainMemSize ) + f_pApiInstance->pSharedInfo->MemoryMap.ulChanMainIoMemOfst; + /* Configure the ALC bleed out time. */ + if ( pSharedInfo->ImageInfo.fAlcNoiseBleedOutTime == TRUE ) + { + ulFeatureBytesOffset = pSharedInfo->MemoryMap.AlcNoiseBleedOutTimeFieldOfst.usDwordOffset * 4; + ulFeatureBitOffset = pSharedInfo->MemoryMap.AlcNoiseBleedOutTimeFieldOfst.byBitOffset; + ulFeatureFieldLength = pSharedInfo->MemoryMap.AlcNoiseBleedOutTimeFieldOfst.byFieldSize; + + /* First read the DWORD where the field is located.*/ + mOCT6100_RETRIEVE_NLP_CONF_DWORD( f_pApiInstance, + pChanEntry, + ulBaseAddress + ulFeatureBytesOffset, + &ulTempData, + ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + /* Clear previous value set in the feature field.*/ + mOCT6100_CREATE_FEATURE_MASK( ulFeatureFieldLength, ulFeatureBitOffset, &ulMask ); + + ulTempData &= (~ulMask); + + if ( f_pVqeConfig->ulAlcNoiseBleedOutTime != 0 ) + { + /* Set ALC noise bleed out time. */ + usTempData = (UINT16)( f_pVqeConfig->ulAlcNoiseBleedOutTime / 250 ); + ulTempData |= ( usTempData << ulFeatureBitOffset ); + } + else /* if ( f_pVqeConfig->ulAlcNoiseBleedOutTime == 0 ) */ + { + /* Disable ALC noise bleed out. */ + ulTempData |= ( 0x0 << ulFeatureBitOffset ); + } + + /* Save the DWORD where the field is located.*/ + mOCT6100_SAVE_NLP_CONF_DWORD( f_pApiInstance, + pChanEntry, + ulBaseAddress + ulFeatureBytesOffset, + ulTempData, + ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + } + /* Check which one is to be disabled first. */ if ( f_pVqeConfig->fRinAutomaticLevelControl == TRUE ) fDisableAlcFirst = FALSE; @@ -12739,6 +12741,88 @@ UINT32 Oct6100ApiSetChannelLevelControl( return ulResult; } + /* Set the reset Rin ALC on tones. */ + if ( pSharedInfo->ImageInfo.fResetRinAlcOnTones == TRUE ) + { + ulFeatureBytesOffset = pSharedInfo->MemoryMap.ResetRinAlcOnTonesFieldOfst.usDwordOffset * 4; + ulFeatureBitOffset = pSharedInfo->MemoryMap.ResetRinAlcOnTonesFieldOfst.byBitOffset; + ulFeatureFieldLength = pSharedInfo->MemoryMap.ResetRinAlcOnTonesFieldOfst.byFieldSize; + + /* First read the DWORD where the field is located.*/ + mOCT6100_RETRIEVE_NLP_CONF_DWORD( f_pApiInstance, + pChanEntry, + ulBaseAddress + ulFeatureBytesOffset, + &ulTempData, + ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + /* Clear previous value set in the feature field.*/ + mOCT6100_CREATE_FEATURE_MASK( ulFeatureFieldLength, ulFeatureBitOffset, &ulMask ); + + ulTempData &= (~ulMask); + + if ( f_pVqeConfig->fResetRinAlcOnTones == TRUE ) + { + ulTempData |= ( 1 << ulFeatureBitOffset ); + } + else /* if ( f_pVqeConfig->fResetRinAlcOnTones == FALSE ) */ + { + /* Disable ALC reset on tone detection. */ + ulTempData |= ( 0 << ulFeatureBitOffset ); + } + + /* Save the DWORD where the field is located.*/ + mOCT6100_SAVE_NLP_CONF_DWORD( f_pApiInstance, + pChanEntry, + ulBaseAddress + ulFeatureBytesOffset, + ulTempData, + ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + } + + /* Set the reset Sout ALC on tones. */ + if ( pSharedInfo->ImageInfo.fResetSoutAlcOnTones == TRUE ) + { + ulFeatureBytesOffset = pSharedInfo->MemoryMap.ResetSoutAlcOnTonesFieldOfst.usDwordOffset * 4; + ulFeatureBitOffset = pSharedInfo->MemoryMap.ResetSoutAlcOnTonesFieldOfst.byBitOffset; + ulFeatureFieldLength = pSharedInfo->MemoryMap.ResetSoutAlcOnTonesFieldOfst.byFieldSize; + + /* First read the DWORD where the field is located.*/ + mOCT6100_RETRIEVE_NLP_CONF_DWORD( f_pApiInstance, + pChanEntry, + ulBaseAddress + ulFeatureBytesOffset, + &ulTempData, + ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + /* Clear previous value set in the feature field.*/ + mOCT6100_CREATE_FEATURE_MASK( ulFeatureFieldLength, ulFeatureBitOffset, &ulMask ); + + ulTempData &= (~ulMask); + + if ( f_pVqeConfig->fResetSoutAlcOnTones == TRUE ) + { + ulTempData |= ( 1 << ulFeatureBitOffset ); + } + else /* if ( f_pVqeConfig->fResetSoutAlcOnTones == FALSE ) */ + { + /* Disable ALC reset on tone detection. */ + ulTempData |= ( 0 << ulFeatureBitOffset ); + } + + /* Save the DWORD where the field is located.*/ + mOCT6100_SAVE_NLP_CONF_DWORD( f_pApiInstance, + pChanEntry, + ulBaseAddress + ulFeatureBytesOffset, + ulTempData, + ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + } + /* Set the high level compensation threshold Db for the Sout port. */ if ( pSharedInfo->ImageInfo.fSoutHighLevelCompensation == TRUE ) { @@ -13599,11 +13683,11 @@ UINT32 Oct6100ApiMuteChannelPorts( if ( pChanEntry->usRoutTsstIndex != cOCT6100_INVALID_INDEX ) { - ulResult = Oct6100ApiWriteOutputTsstControlMemory( f_pApiInstance, - pChanEntry->usRoutTsstIndex, - pChanEntry->CodecConfig.byAdpcmNibblePosition, - pChanEntry->TdmConfig.byRoutNumTssts, - 1534 ); + /* Deactivate the TSST entry.*/ + WriteParams.ulWriteAddress = cOCT6100_TSST_CONTROL_MEM_BASE + ( pChanEntry->usRoutTsstIndex * cOCT6100_TSST_CONTROL_MEM_ENTRY_SIZE ); + WriteParams.usWriteData = 0x0000; + + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); if ( ulResult != cOCT6100_ERR_OK ) return ulResult; } @@ -13671,12 +13755,12 @@ UINT32 Oct6100ApiMuteChannelPorts( if ( pChanEntry->usSoutTsstIndex != cOCT6100_INVALID_INDEX ) { - ulResult = Oct6100ApiWriteOutputTsstControlMemory( f_pApiInstance, - pChanEntry->usSoutTsstIndex, - pChanEntry->CodecConfig.byAdpcmNibblePosition, - pChanEntry->TdmConfig.bySoutNumTssts, - 1534 ); - if ( ulResult != cOCT6100_ERR_OK ) + /* Deactivate the TSST entry.*/ + WriteParams.ulWriteAddress = cOCT6100_TSST_CONTROL_MEM_BASE + ( pChanEntry->usSoutTsstIndex * cOCT6100_TSST_CONTROL_MEM_ENTRY_SIZE ); + WriteParams.usWriteData = 0x0000; + + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) return ulResult; } diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_open.c b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_open.c similarity index 86% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_open.c rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_open.c index afdae85..b083463 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_open.c +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_open.c @@ -2,7 +2,7 @@ File: oct6100_chip_open.c - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -24,9 +24,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 347 $ +$Octasic_Revision: 312 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -209,7 +209,6 @@ UINT32 Oct6100ChipOpenDef( /* Configure the soft tone event buffer. */ f_pChipOpen->ulSoftToneEventsBufSize = 2048; f_pChipOpen->fEnableExtToneDetection = FALSE; - f_pChipOpen->fEnable2100StopEvent = FALSE; /* Configure the soft playout event buffer. */ f_pChipOpen->ulSoftBufferPlayoutEventsBufSize = cOCT6100_INVALID_VALUE; @@ -237,7 +236,6 @@ UINT32 Oct6100ChipOpenDef( f_pChipOpen->fEnableChannelRecording = FALSE; f_pChipOpen->fEnableProductionBist = FALSE; - f_pChipOpen->ulProductionBistMode = cOCT6100_PRODUCTION_BIST_STANDARD; f_pChipOpen->ulNumProductionBistLoops = 1; return cOCT6100_ERR_OK; @@ -275,7 +273,7 @@ UINT32 Oct6100ChipOpen( ulResult = Oct6100ApiCheckChipConfiguration( f_pChipOpen ); if ( ulResult != cOCT6100_ERR_OK ) return ulResult; - + /* Check if the host system is multi-process or not and adjust instance accordingly. */ if ( f_pChipOpen->fMultiProcessSystem != TRUE ) { @@ -288,6 +286,7 @@ UINT32 Oct6100ChipOpen( /* Save the process context specified by the user. */ f_pApiInstance->pProcessContext = f_pChipOpen->pProcessContext; + /* Create serialization object handles. */ ulResult = Oct6100ApiCreateSerializeObjects( f_pApiInstance, f_pChipOpen->ulUserChipId ); if ( ulResult != cOCT6100_ERR_OK ) @@ -405,11 +404,21 @@ UINT32 Oct6100ChipOpen( /* Proceed with the rest only if the production BIST has not been requested. */ if ( f_pChipOpen->fEnableProductionBist == FALSE ) { + /* Configure the interrupt registers. */ + ulResult = Oct6100ApiIsrHwInit( f_pApiInstance, &f_pChipOpen->InterruptConfig ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + /* Initialize the errors counters. */ ulResult = Oct6100ApiChipStatsSwInit( f_pApiInstance ); if ( ulResult != cOCT6100_ERR_OK ) return ulResult; + /* Configure all interrupts of the chip. */ + ulResult = Oct6100InterruptConfigureSer( f_pApiInstance, &f_pChipOpen->InterruptConfig, FALSE ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + /* Get revision number of chip. */ ulResult = Oct6100ApiGetChipRevisionNum( f_pApiInstance ); if ( ulResult != cOCT6100_ERR_OK ) @@ -441,16 +450,6 @@ UINT32 Oct6100ChipOpen( - - /*Clear all interrupts that could have occured during startup*/ - ulResult = Oct6100ApiClearInterrupts( f_pApiInstance ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - /* Configure the interrupt registers. */ - ulResult = Oct6100ApiIsrHwInit( f_pApiInstance, &f_pChipOpen->InterruptConfig ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; } return cOCT6100_ERR_OK; @@ -827,171 +826,11 @@ UINT32 Oct6100ApiGetVersion( return cOCT6100_ERR_OK; } -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ -Function: Oct6100ApiGetCapacityPins - -Description: Retrieves the Capcity Pins value. - -------------------------------------------------------------------------------- -| Argument | Description -------------------------------------------------------------------------------- - -f_pGetCapacityPins Pointer to the parameters structure needed - by GetCapacityPins(). - -\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ -UINT32 Oct6100ApiGetCapacityPinsDef( - tPOCT6100_API_GET_CAPACITY_PINS f_pGetCapacityPins) -{ - - f_pGetCapacityPins->pProcessContext = NULL; - f_pGetCapacityPins->ulUserChipId = 0; - f_pGetCapacityPins->ulMemoryType = cOCT6100_MEM_TYPE_DDR; - f_pGetCapacityPins->ulCapacityValue = cOCT6100_INVALID_VALUE; - f_pGetCapacityPins->fEnableMemClkOut = TRUE; - f_pGetCapacityPins->ulMemClkFreq = 133000000; - - return cOCT6100_ERR_OK; -} - -UINT32 Oct6100ApiGetCapacityPins( - tPOCT6100_API_GET_CAPACITY_PINS f_pGetCapacityPins ) -{ - - UINT32 ulResult; - - tOCT6100_INSTANCE_API ApiInstance; - - Oct6100UserMemSet(&ApiInstance,0,sizeof(tOCT6100_INSTANCE_API)); - - /*Check parameters*/ - if ( f_pGetCapacityPins->ulMemClkFreq != cOCT6100_MCLK_FREQ_133_MHZ && - f_pGetCapacityPins->ulMemClkFreq != cOCT6100_MCLK_FREQ_125_MHZ && - f_pGetCapacityPins->ulMemClkFreq != cOCT6100_MCLK_FREQ_117_MHZ && - f_pGetCapacityPins->ulMemClkFreq != cOCT6100_MCLK_FREQ_108_MHZ && - f_pGetCapacityPins->ulMemClkFreq != cOCT6100_MCLK_FREQ_100_MHZ && - f_pGetCapacityPins->ulMemClkFreq != cOCT6100_MCLK_FREQ_92_MHZ && - f_pGetCapacityPins->ulMemClkFreq != cOCT6100_MCLK_FREQ_83_MHZ && - f_pGetCapacityPins->ulMemClkFreq != cOCT6100_MCLK_FREQ_75_MHZ ) - return cOCT6100_ERR_OPEN_MEM_CLK_FREQ; - - if ( f_pGetCapacityPins->fEnableMemClkOut != TRUE && - f_pGetCapacityPins->fEnableMemClkOut != FALSE ) - return cOCT6100_ERR_OPEN_ENABLE_MEM_CLK_OUT; - - if ( f_pGetCapacityPins->ulMemoryType != cOCT6100_MEM_TYPE_SDR && - f_pGetCapacityPins->ulMemoryType != cOCT6100_MEM_TYPE_DDR && - f_pGetCapacityPins->ulMemoryType != cOCT6100_MEM_TYPE_SDR_PLL_BYPASS ) - return cOCT6100_ERR_OPEN_MEMORY_TYPE; - - - - ApiInstance.pProcessContext = f_pGetCapacityPins->pProcessContext; - - - - ulResult = Oct6100ApiReadCapacity(&ApiInstance, f_pGetCapacityPins); - - - - return ulResult; -} /*************************** PRIVATE FUNCTIONS *****************************/ -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ - -Function: Oct6100ApiReadCapacity - -Description: Read the capacity pins using modified functions from the openchip. - -------------------------------------------------------------------------------- -| Argument | Description -------------------------------------------------------------------------------- - -f_pChipOpen Pointer to chip configuration structure. - -\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ -UINT32 Oct6100ApiReadCapacity( IN tPOCT6100_INSTANCE_API f_pApiInstance, - IN tPOCT6100_API_GET_CAPACITY_PINS f_pGetCapacityPins) -{ - UINT32 ulResult; - tOCT6100_READ_PARAMS ReadParams; - UINT16 usReadData; - - /*Read capacity Pins*/ - ReadParams.pProcessContext = f_pGetCapacityPins->pProcessContext; - ReadParams.ulUserChipId = f_pGetCapacityPins->ulUserChipId; - ReadParams.pusReadData = &usReadData; - - /*Check the Reset register*/ - ReadParams.ulReadAddress = 0x100; - mOCT6100_DRIVER_READ_API( ReadParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - if ((usReadData & 0xFFFF) != 0x0000) - return cOCT6100_ERR_CAP_PINS_INVALID_CHIP_STATE; - - /* Test the CPU registers. */ - ulResult = Oct6100ApiCpuRegisterBistReadCap( f_pApiInstance, f_pGetCapacityPins ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - /* Boot the FC2 PLL. */ - ulResult = Oct6100ApiBootFc2PllReadCap( f_pApiInstance,f_pGetCapacityPins ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - /* Program the FC1 PLL. */ - ulResult = Oct6100ApiProgramFc1PllReadCap( f_pApiInstance,f_pGetCapacityPins ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - if ( (f_pGetCapacityPins->ulMemoryType == cOCT6100_MEM_TYPE_SDR) || - (f_pGetCapacityPins->ulMemoryType == cOCT6100_MEM_TYPE_SDR_PLL_BYPASS) ) - { - ReadParams.ulReadAddress = 0x168; - } - else - ReadParams.ulReadAddress = 0x166; - - mOCT6100_DRIVER_READ_API( ReadParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - switch (usReadData & 0xF) - { - case 0x9: - f_pGetCapacityPins->ulCapacityValue = 16; - break; - case 0x8: - f_pGetCapacityPins->ulCapacityValue = 32; - break; - case 0xE: - f_pGetCapacityPins->ulCapacityValue = 64; - break; - case 0x0: - f_pGetCapacityPins->ulCapacityValue = 128; - break; - case 0x2: - f_pGetCapacityPins->ulCapacityValue = 256; - break; - case 0x5: - f_pGetCapacityPins->ulCapacityValue = 512; - break; - case 0x6: - f_pGetCapacityPins->ulCapacityValue = 672; - break; - default: - f_pGetCapacityPins->ulCapacityValue = (usReadData & 0xF); - return cOCT6100_ERR_CAP_PINS_INVALID_CAPACITY_VALUE; - } - - return cOCT6100_ERR_OK; -} /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ Function: Oct6100ApiCheckChipConfiguration @@ -1025,7 +864,14 @@ UINT32 Oct6100ApiCheckChipConfiguration( if ( f_pChipOpen->ulUpclkFreq != cOCT6100_UPCLK_FREQ_33_33_MHZ ) return cOCT6100_ERR_OPEN_UP_CLK_FREQ; - if ( f_pChipOpen->ulMemClkFreq != cOCT6100_MCLK_FREQ_133_MHZ ) + if ( f_pChipOpen->ulMemClkFreq != cOCT6100_MCLK_FREQ_133_MHZ && + f_pChipOpen->ulMemClkFreq != cOCT6100_MCLK_FREQ_125_MHZ && + f_pChipOpen->ulMemClkFreq != cOCT6100_MCLK_FREQ_117_MHZ && + f_pChipOpen->ulMemClkFreq != cOCT6100_MCLK_FREQ_108_MHZ && + f_pChipOpen->ulMemClkFreq != cOCT6100_MCLK_FREQ_100_MHZ && + f_pChipOpen->ulMemClkFreq != cOCT6100_MCLK_FREQ_92_MHZ && + f_pChipOpen->ulMemClkFreq != cOCT6100_MCLK_FREQ_83_MHZ && + f_pChipOpen->ulMemClkFreq != cOCT6100_MCLK_FREQ_75_MHZ ) return cOCT6100_ERR_OPEN_MEM_CLK_FREQ; if ( f_pChipOpen->fEnableMemClkOut != TRUE && @@ -1040,10 +886,6 @@ UINT32 Oct6100ApiCheckChipConfiguration( if ( f_pChipOpen->pbyImageFile == NULL ) return cOCT6100_ERR_OPEN_IMAGE_FILE; - ulTempVar = Oct6100ApiCheckImageFileHeader(f_pChipOpen); - if (ulTempVar != cOCT6100_ERR_OK) - return ulTempVar; - /* Check the acoustic echo activation flag. */ if ( f_pChipOpen->fEnableAcousticEcho != TRUE && f_pChipOpen->fEnableAcousticEcho != FALSE ) @@ -1129,10 +971,6 @@ UINT32 Oct6100ApiCheckChipConfiguration( f_pChipOpen->fEnableExtToneDetection != FALSE ) return cOCT6100_ERR_OPEN_ENABLE_EXT_TONE_DETECTION; - if ( f_pChipOpen->fEnable2100StopEvent != TRUE && - f_pChipOpen->fEnable2100StopEvent != FALSE) - return cOCT6100_ERR_OPEN_ENABLE_2100_STOP_EVENT; - /* Check soft buffer for playout events size. */ if ( ( f_pChipOpen->ulSoftBufferPlayoutEventsBufSize != cOCT6100_INVALID_VALUE ) && ( f_pChipOpen->ulSoftBufferPlayoutEventsBufSize < cOCT6100_MIN_BUFFER_PLAYOUT_EVENT || @@ -1271,10 +1109,6 @@ UINT32 Oct6100ApiCheckChipConfiguration( { if ( f_pChipOpen->ulNumProductionBistLoops == 0 ) return cOCT6100_ERR_OPEN_NUM_PRODUCTION_BIST_LOOPS; - - if ( (f_pChipOpen->ulProductionBistMode != cOCT6100_PRODUCTION_BIST_STANDARD) && - (f_pChipOpen->ulProductionBistMode != cOCT6100_PRODUCTION_BIST_SHORT) ) - return cOCT6100_ERR_OPEN_PRODUCTION_BIST_MODE; } /* If the production BIST has been requested, make sure all */ @@ -1381,7 +1215,6 @@ UINT32 Oct6100ApiCopyChipConfiguration( /* Add 1 to the circular buffer such that all user requested events can fit in the circular queue. */ pSharedInfo->ChipConfig.ulSoftToneEventsBufSize = f_pChipOpen->ulSoftToneEventsBufSize + 1; pSharedInfo->ChipConfig.fEnableExtToneDetection = (UINT8)( f_pChipOpen->fEnableExtToneDetection & 0xFF ); - pSharedInfo->ChipConfig.fEnable2100StopEvent = (UINT8)( f_pChipOpen->fEnable2100StopEvent & 0xFF ); if ( f_pChipOpen->ulSoftBufferPlayoutEventsBufSize != cOCT6100_INVALID_VALUE ) pSharedInfo->ChipConfig.ulSoftBufPlayoutEventsBufSize = f_pChipOpen->ulSoftBufferPlayoutEventsBufSize + 1; @@ -1394,7 +1227,6 @@ UINT32 Oct6100ApiCopyChipConfiguration( pSharedInfo->ChipConfig.fEnableProductionBist = (UINT8)( f_pChipOpen->fEnableProductionBist & 0xFF ); - pSharedInfo->ChipConfig.ulProductionBistMode = f_pChipOpen->ulProductionBistMode; pSharedInfo->ChipConfig.ulNumProductionBistLoops = f_pChipOpen->ulNumProductionBistLoops; return cOCT6100_ERR_OK; @@ -1469,6 +1301,7 @@ UINT32 Oct6100ApiInitializeMiscellaneousVariables( pSharedInfo->ImageInfo.fNlpControl = FALSE; pSharedInfo->ImageInfo.fRinAutoLevelControl = FALSE; pSharedInfo->ImageInfo.fSoutAutoLevelControl = FALSE; + pSharedInfo->ImageInfo.fAlcNoiseBleedOutTime = FALSE; pSharedInfo->ImageInfo.fRinHighLevelCompensation = FALSE; pSharedInfo->ImageInfo.fSoutHighLevelCompensation = FALSE; pSharedInfo->ImageInfo.fAlcHlcStatus = FALSE; @@ -1499,7 +1332,6 @@ UINT32 Oct6100ApiInitializeMiscellaneousVariables( pSharedInfo->ImageInfo.fSoutAppliedGainStat = FALSE; pSharedInfo->ImageInfo.fListenerEnhancement = FALSE; pSharedInfo->ImageInfo.fRoutNoiseReduction = FALSE; - pSharedInfo->ImageInfo.fRoutNoiseReductionLevel = FALSE; pSharedInfo->ImageInfo.fAnrSnrEnhancement = FALSE; pSharedInfo->ImageInfo.fAnrVoiceNoiseSegregation = FALSE; pSharedInfo->ImageInfo.fRinMute = FALSE; @@ -1515,6 +1347,8 @@ UINT32 Oct6100ApiInitializeMiscellaneousVariables( pSharedInfo->ImageInfo.fIdleCodeDetection = TRUE; pSharedInfo->ImageInfo.fIdleCodeDetectionConfiguration = FALSE; pSharedInfo->ImageInfo.fSinLevel = TRUE; + pSharedInfo->ImageInfo.fResetRinAlcOnTones = FALSE; + pSharedInfo->ImageInfo.fResetSoutAlcOnTones = FALSE; pSharedInfo->ImageInfo.usMaxNumberOfChannels = 0; pSharedInfo->ImageInfo.ulToneProfileNumber = cOCT6100_INVALID_VALUE; @@ -1605,11 +1439,13 @@ UINT32 Oct6100ApiCalculateInstanceSizes( ulResult = Oct6100ApiGetChannelsEchoSwSizes( f_pChipOpen, f_pInstSizes ); if ( ulResult != cOCT6100_ERR_OK ) return ulResult; + /*-----------------------------------------------------------------------------*/ /* Memory needed by the TSI structures. */ ulResult = Oct6100ApiGetTsiCnctSwSizes( f_pChipOpen, f_pInstSizes ); if ( ulResult != cOCT6100_ERR_OK ) return ulResult; + /*-----------------------------------------------------------------------------*/ /* Calculate memory needed for the conference bridges. */ ulResult = Oct6100ApiGetConfBridgeSwSizes( f_pChipOpen, f_pInstSizes ); @@ -1635,6 +1471,7 @@ UINT32 Oct6100ApiCalculateInstanceSizes( ulResult = Oct6100ApiGetPhasingTsstSwSizes( f_pChipOpen, f_pInstSizes ); if ( ulResult != cOCT6100_ERR_OK ) return ulResult; + /*-----------------------------------------------------------------------------*/ /* Calculate memory needed for the ADPCM channels. */ ulResult = Oct6100ApiGetAdpcmChanSwSizes( f_pChipOpen, f_pInstSizes ); @@ -1886,11 +1723,13 @@ UINT32 Oct6100ApiInitializeInstanceMemory( ulResult = Oct6100ApiChannelsEchoSwInit( f_pApiInstance ); if ( ulResult != cOCT6100_ERR_OK ) return ulResult; + /*-----------------------------------------------------------------------------*/ /* Initialize the API TSI connection structures. */ ulResult = Oct6100ApiTsiCnctSwInit( f_pApiInstance ); if ( ulResult != cOCT6100_ERR_OK ) return ulResult; + /*-----------------------------------------------------------------------------*/ /* Initialize the API conference bridges. */ ulResult = Oct6100ApiConfBridgeSwInit( f_pApiInstance ); @@ -1908,6 +1747,7 @@ UINT32 Oct6100ApiInitializeInstanceMemory( ulResult = Oct6100ApiPhasingTsstSwInit( f_pApiInstance ); if ( ulResult != cOCT6100_ERR_OK ) return ulResult; + /*-----------------------------------------------------------------------------*/ /* Initialize the API ADPCM channels. */ ulResult = Oct6100ApiAdpcmChanSwInit( f_pApiInstance ); @@ -1990,34 +1830,6 @@ UINT32 Oct6100ApiGetChipRevisionNum( return cOCT6100_ERR_OK; } -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ - -Function: Oct6100ApiCheckImageFileHeader - -Description: This function check if the image loaded is valid - -------------------------------------------------------------------------------- -| Argument | Description -------------------------------------------------------------------------------- -f_pApiInstance Pointer to API instance. This memory is used to keep the - present state of the chip and all its resources. - -\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ -UINT32 Oct6100ApiCheckImageFileHeader( - IN tPOCT6100_CHIP_OPEN f_pChipOpen ) -{ - - PUINT8 pszImageInfoStart = NULL; - UINT32 ulStrLen; - - ulStrLen = Oct6100ApiStrLen( (PUINT8)cOCT6100_IMAGE_START_STRING ); - pszImageInfoStart = Oct6100ApiStrStr(f_pChipOpen->pbyImageFile,(PUINT8)cOCT6100_IMAGE_START_STRING, - f_pChipOpen->pbyImageFile + ulStrLen); - if (pszImageInfoStart == NULL) - return cOCT6100_ERR_OPEN_IMAGE_FILE; - - return cOCT6100_ERR_OK; -} /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ @@ -2192,241 +2004,7 @@ UINT32 Oct6100ApiDecodeKeyAndBist( return cOCT6100_ERR_OK; } -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ -Function: Oct6100ApiBootFc2PllReadCap - -Description: Configures the chip's FC2 PLL. Special version for GetcapacityPins. - -------------------------------------------------------------------------------- -| Argument | Description -------------------------------------------------------------------------------- -f_pApiInstance Pointer to API instance. This memory is used to keep the - present state of the chip and all its resources. - -\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ -UINT32 Oct6100ApiBootFc2PllReadCap( - IN tPOCT6100_INSTANCE_API f_pApiInstance, - IN tPOCT6100_API_GET_CAPACITY_PINS f_pGetCapacityPins) -{ - tOCT6100_WRITE_PARAMS WriteParams; - UINT32 aulWaitTime[ 2 ]; - UINT32 ulResult; - UINT32 ulFc2PllDivisor = 0; - UINT32 ulMtDivisor = 0; - UINT32 ulFcDivisor = 0; - - /* Set the process context and user chip ID parameters once and for all. */ - WriteParams.pProcessContext = f_pGetCapacityPins->pProcessContext; - - WriteParams.ulUserChipId = f_pGetCapacityPins->ulUserChipId; - - /* First put the chip and main registers in soft-reset. */ - WriteParams.ulWriteAddress = 0x100; - WriteParams.usWriteData = 0x0; - - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ) - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - ulFc2PllDivisor = 0x1050; - ulMtDivisor = 0x4300; - ulFcDivisor = 0x4043; - - /* Setup delay chains. */ - if ( (f_pGetCapacityPins->ulMemoryType == cOCT6100_MEM_TYPE_SDR) || (f_pGetCapacityPins->ulMemoryType == cOCT6100_MEM_TYPE_SDR_PLL_BYPASS) ) - { - /* SDRAM */ - WriteParams.ulWriteAddress = 0x1B0; - WriteParams.usWriteData = 0x1003; - - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - WriteParams.ulWriteAddress = 0x1B2; - WriteParams.usWriteData = 0x0021; - - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - WriteParams.ulWriteAddress = 0x1B4; - WriteParams.usWriteData = 0x4030; - - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - WriteParams.ulWriteAddress = 0x1B6; - WriteParams.usWriteData = 0x0021; - - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - } - else /* if ( cOCT6100_MEM_TYPE_DDR == pChipConfig->byMemoryType ) */ - { - /* DDR */ - WriteParams.ulWriteAddress = 0x1B0; - WriteParams.usWriteData = 0x201F; - - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - WriteParams.ulWriteAddress = 0x1B2; - WriteParams.usWriteData = 0x0021; - - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - WriteParams.ulWriteAddress = 0x1B4; - WriteParams.usWriteData = 0x1000; - - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - WriteParams.ulWriteAddress = 0x1B6; - WriteParams.usWriteData = 0x0021; - - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - } - - /* udqs */ - WriteParams.ulWriteAddress = 0x1B8; - WriteParams.usWriteData = 0x1003; - - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - WriteParams.ulWriteAddress = 0x1BA; - WriteParams.usWriteData = 0x0021; - - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - /* ldqs */ - WriteParams.ulWriteAddress = 0x1BC; - WriteParams.usWriteData = 0x1000; - - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - WriteParams.ulWriteAddress = 0x1BE; - WriteParams.usWriteData = 0x0021; - - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - WriteParams.ulWriteAddress = 0x12C; - WriteParams.usWriteData = 0x0000; - - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - WriteParams.ulWriteAddress = 0x12E; - WriteParams.usWriteData = 0x0000; - - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - /* Select fc2pll for fast_clk and mtsclk sources. Select mem_clk_i for afclk. */ - WriteParams.ulWriteAddress = 0x140; - WriteParams.usWriteData = (UINT16)ulMtDivisor; - - if ( f_pGetCapacityPins->ulMemoryType == cOCT6100_MEM_TYPE_SDR_PLL_BYPASS ) - WriteParams.usWriteData |= 0x0001; - else - WriteParams.usWriteData |= 0x0004; - - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - WriteParams.ulWriteAddress = 0x144; - WriteParams.usWriteData = (UINT16)ulFcDivisor; - - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - WriteParams.ulWriteAddress = 0x13E; - WriteParams.usWriteData = 0x0001; /* Remove reset from above divisors */ - - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - /* Select upclk directly as ref source for fc2pll. */ - WriteParams.ulWriteAddress = 0x134; - WriteParams.usWriteData = 0x0001; - - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - /* Setup fc2pll. */ - WriteParams.ulWriteAddress = 0x132; - WriteParams.usWriteData = (UINT16)ulFc2PllDivisor; - - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - WriteParams.usWriteData |= 0x02; /* Raise fb divisor reset. */ - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - WriteParams.usWriteData |= 0x80; /* Raise IDDTN signal.*/ - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - /* Wait for fc2pll to stabilize. */ - aulWaitTime[ 0 ] = 2000; - aulWaitTime[ 1 ] = 0; - ulResult = Oct6100ApiWaitForTime( f_pApiInstance, aulWaitTime ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - /* Drive mem_clk_o out on proper interface. */ - if ( TRUE == f_pGetCapacityPins->fEnableMemClkOut ) - { - if ( (f_pGetCapacityPins->ulMemoryType == cOCT6100_MEM_TYPE_SDR) || (f_pGetCapacityPins->ulMemoryType == cOCT6100_MEM_TYPE_SDR_PLL_BYPASS) ) - { - WriteParams.ulWriteAddress = 0x128; - WriteParams.usWriteData = 0x0301; - - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - } - - if ( f_pGetCapacityPins->ulMemoryType == cOCT6100_MEM_TYPE_DDR || f_pGetCapacityPins->ulMemoryType == cOCT6100_MEM_TYPE_SDR_PLL_BYPASS ) - { - WriteParams.ulWriteAddress = 0x12A; - WriteParams.usWriteData = 0x000F; - - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - } - } - - return cOCT6100_ERR_OK; -} /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ Function: Oct6100ApiBootFc2Pll @@ -2780,83 +2358,8 @@ UINT32 Oct6100ApiBootFc2Pll( return cOCT6100_ERR_OK; } -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ -Function: Oct6100ApiProgramFc1PllReadCap -Description: Configures the chip's FC1 PLL. Special version for getCapacityPins. - -------------------------------------------------------------------------------- -| Argument | Description -------------------------------------------------------------------------------- -f_pApiInstance Pointer to API instance. This memory is used to keep the - present state of the chip and all its resources. - -\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ -UINT32 Oct6100ApiProgramFc1PllReadCap( - IN tPOCT6100_INSTANCE_API f_pApiInstance, - IN tPOCT6100_API_GET_CAPACITY_PINS f_pGetCapacityPins) -{ - tOCT6100_WRITE_PARAMS WriteParams; - UINT32 aulWaitTime[ 2 ]; - UINT32 ulResult; - - /* Set the process context and user chip ID parameters once and for all. */ - WriteParams.pProcessContext = f_pApiInstance->pProcessContext; - - WriteParams.ulUserChipId = f_pGetCapacityPins->ulUserChipId; - - /* Programm P/Z bits. */ - WriteParams.ulWriteAddress = 0x130; - - if ( f_pGetCapacityPins->ulMemoryType == cOCT6100_MEM_TYPE_SDR_PLL_BYPASS ) - WriteParams.usWriteData = 0x0041; - else - WriteParams.usWriteData = 0x0040; - - WriteParams.usWriteData |= ( f_pGetCapacityPins->ulMemoryType << 8 ); - - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - /* Raise FB divisor. */ - WriteParams.usWriteData |= 0x0002; - - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - /* Raise IDDTN. */ - WriteParams.usWriteData |= 0x0080; - - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - /* Wait for fc1pll to stabilize. */ - aulWaitTime[ 0 ] = 2000; - aulWaitTime[ 1 ] = 0; - ulResult = Oct6100ApiWaitForTime( f_pApiInstance, aulWaitTime ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - /* Enable all the clock domains to do reset procedure. */ - WriteParams.ulWriteAddress = 0x186; - WriteParams.usWriteData = 0x015F; - - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - aulWaitTime[ 0 ] = 15000; - aulWaitTime[ 1 ] = 0; - ulResult = Oct6100ApiWaitForTime( f_pApiInstance, aulWaitTime ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - return cOCT6100_ERR_OK; -} /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ Function: Oct6100ApiProgramFc1Pll @@ -3225,119 +2728,8 @@ UINT32 Oct6100ApiLoadImage( return cOCT6100_ERR_OK; } -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ -Function: Oct6100ApiCpuRegisterBistReadCap -Description: Tests the operation of the CPU registers. Special Version for - GetCapacityPins - -------------------------------------------------------------------------------- -| Argument | Description -------------------------------------------------------------------------------- -f_pApiInstance Pointer to API instance. This memory is used to keep the - present state of the chip and all its resources. - -\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ -UINT32 Oct6100ApiCpuRegisterBistReadCap( - IN tPOCT6100_INSTANCE_API f_pApiInstance, - IN tPOCT6100_API_GET_CAPACITY_PINS f_pGetCapacityPins - ) -{ - tOCT6100_WRITE_PARAMS WriteParams; - tOCT6100_READ_PARAMS ReadParams; - UINT32 ulResult; - UINT16 i; - UINT16 usReadData; - - /* Set the process context and user chip ID parameters once and for all. */ - WriteParams.pProcessContext = f_pApiInstance->pProcessContext; - - WriteParams.ulUserChipId = f_pGetCapacityPins->ulUserChipId; - - ReadParams.pProcessContext = f_pApiInstance->pProcessContext; - - ReadParams.ulUserChipId = f_pGetCapacityPins->ulUserChipId; - - /* Assign read data pointer that will be used throughout the function. */ - ReadParams.pusReadData = &usReadData; - - /* Start with a walking bit test. */ - for ( i = 0; i < 16; i ++ ) - { - /* Write at address 0x150.*/ - WriteParams.ulWriteAddress = 0x150; - WriteParams.usWriteData = (UINT16)( 0x1 << i ); - - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - /* Write at address 0x180.*/ - WriteParams.ulWriteAddress = 0x180; - WriteParams.usWriteData = (UINT16)( 0x1 << ( 15 - i ) ); - - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - /* Now read back the two registers to make sure the acceses were successfull. */ - ReadParams.ulReadAddress = 0x150; - - mOCT6100_DRIVER_READ_API( ReadParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - if ( usReadData != ( 0x1 << i ) ) - return cOCT6100_ERR_OPEN_CPU_REG_BIST_ERROR; - - ReadParams.ulReadAddress = 0x180; - - mOCT6100_DRIVER_READ_API( ReadParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - if ( usReadData != ( 0x1 << ( 15 - i ) ) ) - return cOCT6100_ERR_OPEN_CPU_REG_BIST_ERROR; - } - - /* Write at address 0x150. */ - WriteParams.ulWriteAddress = 0x150; - WriteParams.usWriteData = 0xCAFE; - - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - /* Write at address 0x180. */ - WriteParams.ulWriteAddress = 0x180; - WriteParams.usWriteData = 0xDECA; - - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - /* Now read back the two registers to make sure the acceses were successfull. */ - ReadParams.ulReadAddress = 0x150; - - mOCT6100_DRIVER_READ_API( ReadParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - if ( usReadData != 0xCAFE ) - return cOCT6100_ERR_OPEN_CPU_REG_BIST_ERROR; - - ReadParams.ulReadAddress = 0x180; - - mOCT6100_DRIVER_READ_API( ReadParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - if ( usReadData != 0xDECA ) - return cOCT6100_ERR_OPEN_CPU_REG_BIST_ERROR; - - return cOCT6100_ERR_OK; -} /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ Function: Oct6100ApiCpuRegisterBist @@ -4351,10 +3743,7 @@ UINT32 Oct6100ApiProgramNLP( { if ( pSharedInfo->ChipConfig.fEnableProductionBist == TRUE ) { - if (pSharedInfo->ChipConfig.ulProductionBistMode == cOCT6100_PRODUCTION_BIST_SHORT) - WriteParams.usWriteData = cOCT6100_PRODUCTION_SHORT_BOOT_TYPE; - else - WriteParams.usWriteData = cOCT6100_PRODUCTION_BOOT_TYPE; + WriteParams.usWriteData = cOCT6100_PRODUCTION_BOOT_TYPE; } else { @@ -4436,8 +3825,7 @@ UINT32 Oct6100ApiProgramNLP( if ( pSharedInfo->ChipConfig.fEnableProductionBist == TRUE ) { /* Should read 0x0007 when bisting. */ - if ( (( usReadHighData & 0xFFFF ) == cOCT6100_PRODUCTION_BOOT_TYPE) || - (( usReadHighData & 0xFFFF ) == cOCT6100_PRODUCTION_SHORT_BOOT_TYPE) ) + if ( ( usReadHighData & 0xFFFF ) == cOCT6100_PRODUCTION_BOOT_TYPE ) { /* Verify if the bist has started successfully. */ if ( ( usReadData & 0xFFFF ) == 0x0002 ) @@ -4454,7 +3842,7 @@ UINT32 Oct6100ApiProgramNLP( { /* Verify if the bist succeeded. */ if ( ( usReadData & 0xFFFF ) != 0x0000 ) - return cOCT6100_ERR_OPEN_FUNCTIONAL_BIST_FAILED; + return cOCT6100_ERR_OPEN_FUNCTIONAL_BIST_FAILED; /* Bad chip. */ ulAfCpuUp = TRUE; } @@ -5288,14 +4676,14 @@ UINT32 Oct6100ApiInitChannels( for( i = 0; i < 6; i++ ) { WriteParams.ulWriteAddress = 0x20000 + ( i * 0x1000 ) + ( 1534 * 2 ); - WriteParams.usWriteData = 0x3EFF; + WriteParams.usWriteData = 0xFF; mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); if ( ulResult != cOCT6100_ERR_OK ) return ulResult; WriteParams.ulWriteAddress = 0x20000 + ( i * 0x1000 ) + ( 1535 * 2 ); - WriteParams.usWriteData = 0x3EFF; + WriteParams.usWriteData = 0xFF; mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ); if ( ulResult != cOCT6100_ERR_OK ) @@ -5792,11 +5180,6 @@ UINT32 Oct6100ApiRandomMemoryWrite( UINT32 ulResult, i, j; UINT32 ulBistAddress; UINT16 usReadData; - UINT32 aulBistAddress[20]={0x00000000, 0x00000002, 0x00000004, 0x007FFFFE, - 0x00900000, 0x00900006, 0x00900008, 0x009FFFFE, - 0x01000000, 0x0100000A, 0x0200000C, 0x01FFFFFE, - 0x03000000, 0x03000002, 0x04000004, 0x03FFFFFE, - 0x04000000, 0x05000006, 0x06000008, 0x07FFFFFE}; /* Get local pointer to shared portion of instance. */ pSharedInfo = f_pApiInstance->pSharedInfo; @@ -5810,54 +5193,51 @@ UINT32 Oct6100ApiRandomMemoryWrite( ReadParams.ulUserChipId = pSharedInfo->ChipConfig.ulUserChipId; + /* Make sure we don't perform more access then the size of our BIST resources. */ + if ( f_ulNumAccesses > 1024 ) + return cOCT6100_ERR_FATAL_C0; + /* Determine mask for number of data bits. */ ulDataMask = (1 << f_ulNumDataBits) - 1; - /* Write specific data to specific address */ - WriteParams.ulWriteAddress = f_ulMemBase | 0x00001000; - WriteParams.usWriteData = 0xCAFE; + /* Bist all data pin. */ + for ( i = 0; i < 32; i += 2 ) + { + WriteParams.ulWriteAddress = f_ulMemBase + i * 2; + WriteParams.usWriteData = (UINT16)(0x1 << (i / 2)); - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ) - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - for(j=0; j<20; j++) - { - /* Change address to test lower and higher part of the 32 bit bus */ - ulBistAddress = aulBistAddress[j]; - ulBistAddress &= f_ulMemSize - 2; - ulBistAddress |= f_ulMemBase; + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ) + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; - /* Bist 16 data pins of this address */ - for ( i = 0; i < 16; i ++) - { - WriteParams.ulWriteAddress = ulBistAddress; - WriteParams.usWriteData = (UINT16)(0x1 << i); + WriteParams.ulWriteAddress = f_ulMemBase + i * 2 + 2; + WriteParams.usWriteData = (UINT16)(0x1 << (i / 2)); - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ) - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; + mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ) + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + } - /* Read back the specific data to flush the data bus.*/ - ReadParams.ulReadAddress = f_ulMemBase | 0x00001000; - ReadParams.pusReadData = &usReadData; - mOCT6100_DRIVER_READ_API( ReadParams, ulResult ) - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; + /* Read back the data written. */ + for ( i = 0; i < 32; i += 2 ) + { + ReadParams.ulReadAddress = f_ulMemBase + i * 2; + ReadParams.pusReadData = &usReadData; + mOCT6100_DRIVER_READ_API( ReadParams, ulResult ) + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; - if ( usReadData != 0xCAFE ) - return f_ulErrorCode; - - /* Read back the data written.*/ - ReadParams.ulReadAddress = WriteParams.ulWriteAddress; - ReadParams.pusReadData = &usReadData; - mOCT6100_DRIVER_READ_API( ReadParams, ulResult ) - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; + if ( usReadData != (UINT16)(0x1 << (i / 2)) ) + return f_ulErrorCode; - if ( usReadData != (UINT16)(0x1 << i) ) - return f_ulErrorCode; - } + ReadParams.ulReadAddress = f_ulMemBase + i * 2 + 2; + ReadParams.pusReadData = &usReadData; + mOCT6100_DRIVER_READ_API( ReadParams, ulResult ) + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + + if ( usReadData != (UINT16)(0x1 << (i / 2)) ) + return f_ulErrorCode; } /* Perform the first write at address 0 + mem base */ @@ -5925,7 +5305,6 @@ UINT32 Oct6100ApiRandomMemoryWrite( return f_ulErrorCode; } - return cOCT6100_ERR_OK; } @@ -6417,6 +5796,7 @@ UINT32 Oct6100FreeResourcesSer( return ulResult; } } + /* Close all TSI connections. */ if ( f_pFreeResources->fFreeTsiConnections == TRUE ) { @@ -6440,6 +5820,7 @@ UINT32 Oct6100FreeResourcesSer( } } } + /* Close all conference bridges. */ if ( f_pFreeResources->fFreeConferenceBridges == TRUE ) { @@ -6489,6 +5870,7 @@ UINT32 Oct6100FreeResourcesSer( } } + /* Close all phasing TSSTs. */ if ( f_pFreeResources->fFreePhasingTssts == TRUE ) { @@ -6511,6 +5893,7 @@ UINT32 Oct6100FreeResourcesSer( } } } + /* Close all ADPCM channels. */ if ( f_pFreeResources->fFreeAdpcmChannels == TRUE ) { @@ -6533,6 +5916,7 @@ UINT32 Oct6100FreeResourcesSer( } } + return cOCT6100_ERR_OK; } @@ -6712,67 +6096,3 @@ UINT32 Oct6100ApiProductionCrc( return cOCT6100_ERR_OK; } - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ - -Function: Oct6100ApiClearInterrupts - -Description: Called only by the Oct6100OpenChip function, this function - writes to all register ROLs to clear them. This is necessary - because some ROLs are set during the startup. - -------------------------------------------------------------------------------- -| Argument | Description -------------------------------------------------------------------------------- -IN f_pApiInst Pointer to API instance. This memory is used to keep the - present state of the chip and all its resources. - -\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ -UINT32 Oct6100ApiClearInterrupts( - IN tPOCT6100_INSTANCE_API f_pApiInstance ) -{ - tPOCT6100_SHARED_INFO pSharedInfo; - tOCT6100_WRITE_PARAMS WriteParams; - UINT32 ulResult; - - /* Get local pointer to shared portion of instance. */ - pSharedInfo = f_pApiInstance->pSharedInfo; - - /* Set the process context and user chip ID parameters once and for all. */ - WriteParams.pProcessContext = f_pApiInstance->pProcessContext; - - WriteParams.ulUserChipId = pSharedInfo->ChipConfig.ulUserChipId; - - WriteParams.ulWriteAddress = 0x102; - WriteParams.usWriteData = cOCT6100_INTRPT_MASK_REG_102H; - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ) - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - WriteParams.ulWriteAddress = 0x202; - WriteParams.usWriteData = cOCT6100_INTRPT_MASK_REG_202H; - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ) - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - WriteParams.ulWriteAddress = 0x302; - WriteParams.usWriteData = cOCT6100_INTRPT_MASK_REG_302H; - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ) - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - WriteParams.ulWriteAddress = 0x502; - WriteParams.usWriteData = cOCT6100_INTRPT_MASK_REG_502H; - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ) - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - WriteParams.ulWriteAddress = 0x702; - WriteParams.usWriteData = cOCT6100_INTRPT_MASK_REG_702H; - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ) - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - return cOCT6100_ERR_OK; - -} diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_stats.c b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_stats.c similarity index 94% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_stats.c rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_stats.c index 9ede98b..53eec28 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_stats.c +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_stats.c @@ -2,7 +2,7 @@ File: oct6100_chip_stats.c - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -22,9 +22,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 89 $ +$Octasic_Revision: 87 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -204,7 +204,6 @@ UINT32 Oct6100ChipGetImageInfoDef( f_pChipImageInfo->fPerChannelTailLength = FALSE; f_pChipImageInfo->fListenerEnhancement = FALSE; f_pChipImageInfo->fRoutNoiseReduction = FALSE; - f_pChipImageInfo->fRoutNoiseReductionLevel = FALSE; f_pChipImageInfo->fAnrSnrEnhancement = FALSE; f_pChipImageInfo->fAnrVoiceNoiseSegregation = FALSE; f_pChipImageInfo->fToneDisablerVqeActivationDelay = FALSE; @@ -212,6 +211,8 @@ UINT32 Oct6100ChipGetImageInfoDef( f_pChipImageInfo->fDoubleTalkBehavior = FALSE; f_pChipImageInfo->fIdleCodeDetection = TRUE; f_pChipImageInfo->fSinLevel = TRUE; + f_pChipImageInfo->fResetAlcOnTones = FALSE; + f_pChipImageInfo->fAlcNoiseBleedOutTime = FALSE; for ( i = 0; i < cOCT6100_MAX_TONE_EVENT; i++ ) { @@ -259,7 +260,6 @@ UINT32 Oct6100ChipGetImageInfo( f_pChipImageInfo->fPerChannelTailDisplacement = pImageInfo->fPerChannelTailDisplacement; f_pChipImageInfo->fListenerEnhancement = pImageInfo->fListenerEnhancement; f_pChipImageInfo->fRoutNoiseReduction = pImageInfo->fRoutNoiseReduction; - f_pChipImageInfo->fRoutNoiseReductionLevel = pImageInfo->fRoutNoiseReductionLevel; f_pChipImageInfo->fAnrSnrEnhancement = pImageInfo->fAnrSnrEnhancement; f_pChipImageInfo->fAnrVoiceNoiseSegregation = pImageInfo->fAnrVoiceNoiseSegregation; f_pChipImageInfo->fMusicProtection = pImageInfo->fMusicProtection; @@ -267,12 +267,18 @@ UINT32 Oct6100ChipGetImageInfo( f_pChipImageInfo->fSinLevel = pImageInfo->fSinLevel; f_pChipImageInfo->fDoubleTalkBehavior = pImageInfo->fDoubleTalkBehavior; f_pChipImageInfo->fHighLevelCompensation = pImageInfo->fRinHighLevelCompensation; + f_pChipImageInfo->fAlcNoiseBleedOutTime = pImageInfo->fAlcNoiseBleedOutTime; if ( ( pImageInfo->fRinAutoLevelControl == TRUE ) && ( pImageInfo->fSoutAutoLevelControl == TRUE ) ) f_pChipImageInfo->fAutoLevelControl = TRUE; else f_pChipImageInfo->fAutoLevelControl = FALSE; + if ( ( pImageInfo->fResetRinAlcOnTones == TRUE ) || ( pImageInfo->fResetSoutAlcOnTones == TRUE ) ) + f_pChipImageInfo->fResetAlcOnTones = TRUE; + else + f_pChipImageInfo->fResetAlcOnTones = FALSE; + f_pChipImageInfo->ulMaxChannels = pImageInfo->usMaxNumberOfChannels; f_pChipImageInfo->ulNumTonesAvailable = pImageInfo->byNumToneDetectors; f_pChipImageInfo->ulToneProfileNumber = pImageInfo->ulToneProfileNumber; diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_conf_bridge.c b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_conf_bridge.c similarity index 97% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_conf_bridge.c rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_conf_bridge.c index ef9c74d..1d74f01 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_conf_bridge.c +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_conf_bridge.c @@ -2,7 +2,7 @@ File: oct6100_conf_bridge.c - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 145 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_debug.c b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_debug.c similarity index 93% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_debug.c rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_debug.c index 702589c..8e8786a 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_debug.c +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_debug.c @@ -2,7 +2,7 @@ File: oct6100_debug.c - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -22,9 +22,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 64 $ +$Octasic_Revision: 63 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -224,11 +224,12 @@ UINT32 Oct6100DebugSelectChannelSer( tPOCT6100_API_CHANNEL pChanEntry = NULL; tPOCT6100_API_CHANNEL pTempChanEntry; tOCT6100_CHANNEL_OPEN TempChanOpen; - tOCT6100_WRITE_BURST_PARAMS BurstParams; UINT16 usChanIndex = 0; UINT32 ulEntryOpenCnt; - UINT16 ausWriteData[ 2 ]; - UINT32 ulResult; + + tOCT6100_WRITE_BURST_PARAMS BurstParams; + UINT16 ausWriteData[ 2 ]; + UINT32 ulResult; /* Get local pointer(s). */ pSharedInfo = f_pApiInstance->pSharedInfo; @@ -432,7 +433,7 @@ UINT32 Oct6100DebugSelectChannelSer( return ulResult; pSharedInfo->DebugInfo.usCurrentDebugChanIndex = usChanIndex; - + /* Cancel data dump request, if there was one. */ pSharedInfo->DebugInfo.fDebugDataBeingDumped = FALSE; pSharedInfo->DebugInfo.ulDebugDataTotalNumBytes = cOCT6100_INVALID_VALUE; @@ -479,7 +480,6 @@ UINT32 Oct6100DebugGetDataSer( UINT16 ausWriteData[ 2 ]; UINT16 usReadData; UINT16 usDebugEventReadPtr; - UINT16 usTempNumEvents; UINT32 ulResult; UINT32 ulToneEventIndex; @@ -638,11 +638,7 @@ UINT32 Oct6100DebugGetDataSer( ulTimestamp |= usReadData; - ulTimestamp >>= 12; /* TDM time for 1 event (512 ms) */ - - /* There is a probability here (once very 6.2 days) that the timestamp is close */ - /* to 0, because it has wrapped. But still, we need a way to workaround the highly */ - /* occuring case of the chip just being opened. This will fix this problem. */ + ulTimestamp >>= 12; if ( ulTimestamp < (UINT32)( pSharedInfo->DebugInfo.usMatrixCBMask + 1 ) ) { if ( pSharedInfo->DebugInfo.usChipDebugEventWritePtr >= 2 ) @@ -665,7 +661,6 @@ UINT32 Oct6100DebugGetDataSer( pSharedInfo->DebugInfo.usNumEvents--; } - /* If the user only requested the last 16 seconds, cap the number of events. */ if ( f_pGetData->ulGetDataMode == cOCT6100_DEBUG_GET_DATA_MODE_16S || f_pGetData->ulGetDataMode == cOCT6100_DEBUG_GET_DATA_MODE_16S_LITE ) @@ -675,36 +670,6 @@ UINT32 Oct6100DebugGetDataSer( pSharedInfo->DebugInfo.usNumEvents = (UINT16)( ( 16000 / ( pSharedInfo->DebugInfo.ulRecordedPcmEventByteSize / 8 ) ) & 0xFFFF ); } - /* Make sure that all the events are pertaining to the current hot channel. */ - /* Calculate the event read pointer. */ - ulReadPointer = ( ( pSharedInfo->DebugInfo.usChipDebugEventWritePtr - pSharedInfo->DebugInfo.usNumEvents ) & pSharedInfo->DebugInfo.usMatrixCBMask ) * pSharedInfo->DebugInfo.ulDebugChanStatsByteSize; - ulReadPointer %= ( ( pSharedInfo->DebugInfo.usMatrixCBMask + 1 ) * pSharedInfo->DebugInfo.ulDebugChanStatsByteSize ); - - /* Travel through the events and throw away the bad events. */ - usTempNumEvents = pSharedInfo->DebugInfo.usNumEvents; - pSharedInfo->DebugInfo.usNumEvents = 0; - for ( ulDebugEventIndex = 0; ulDebugEventIndex < usTempNumEvents; ulDebugEventIndex ++ ) - { - /* The HOT channel index for the event is stored at offset 0xF2 (word offset) */ - - ReadParams.ulReadAddress = pSharedInfo->DebugInfo.ulMatrixBaseAddress + ulReadPointer; - ReadParams.ulReadAddress += 0xF2 * sizeof(UINT16); - ReadParams.pusReadData = &usReadData; - - mOCT6100_DRIVER_READ_API( ReadParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - /* Check if the current debug index is the same as the one found in the event. */ - if ( usReadData != pSharedInfo->DebugInfo.usCurrentDebugChanIndex ) - pSharedInfo->DebugInfo.usNumEvents = 0; /* As soon as we hit another channel, we reset the number of valid events. */ - else - pSharedInfo->DebugInfo.usNumEvents++; - - /* Increment read pointer to get next event. */ - ulReadPointer = ( ulReadPointer + pSharedInfo->DebugInfo.ulDebugChanStatsByteSize ) % ( ( pSharedInfo->DebugInfo.usMatrixCBMask + 1 ) * pSharedInfo->DebugInfo.ulDebugChanStatsByteSize ); - } - /* In heavy mode, the AF log pointer is retrieved. */ if ( ( pSharedInfo->DebugInfo.usNumEvents >= 2 ) && ( ( f_pGetData->ulGetDataMode == cOCT6100_DEBUG_GET_DATA_MODE_16S ) diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_events.c b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_events.c similarity index 81% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_events.c rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_events.c index ef00417..ceb6644 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_events.c +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_events.c @@ -1,8 +1,9 @@ +#ifndef cOCT6100_REMOVE_EVENTS /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ File: oct6100_events.c - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -22,9 +23,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 81 $ +$Octasic_Revision: 79 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -427,7 +428,6 @@ UINT32 Oct6100ApiTransferToneEvents( UINT32 ulBaseTimestamp; UINT32 ulToneCnt; UINT32 ulNumWordsToRead; - UINT32 ulEventCode; UINT32 ulResult; UINT32 i, j; @@ -575,93 +575,38 @@ UINT32 Oct6100ApiTransferToneEvents( /* Verify all the possible events that might have been detected. */ for ( j = 4; j < cOCT6100_NUM_WORDS_PER_TONE_EVENT; j++ ) { - ulEventCode = ( ausReadData[ j ] >> 8 ) & 0x7; - - if ( ulEventCode != 0x0 ) + if ( (( ausReadData[ j ] >> 8 ) & 0x7 ) != 0x0 ) { /* This tone generated an event, now check if event is masked for the channel. */ if ((( pEchoChannel->aulToneConf[ ulToneCnt / 32 ] >> ( 31 - ( ulToneCnt % 32 ))) & 0x1) == 1 ) { - BOOL f2100Tone; - - /* Check if it is a 2100 Tone STOP and if the user wants receive those events*/ - ulResult = Oct6100ApiIs2100Tone(f_pApiInstance, - pSharedInfo->ImageInfo.aToneInfo[ ulToneCnt ].ulToneID, - &f2100Tone); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - if ( (f2100Tone == FALSE) || - ( (f2100Tone == TRUE) && (ulEventCode != 2) ) || - ( (f2100Tone == TRUE) && pSharedInfo->ChipConfig.fEnable2100StopEvent == TRUE ) ) + /* If enough space. */ + if ( ((pSharedInfo->SoftBufs.ulToneEventBufferWritePtr + 1) != pSharedInfo->SoftBufs.ulToneEventBufferReadPtr) && + ((pSharedInfo->SoftBufs.ulToneEventBufferWritePtr + 1) != pSharedInfo->SoftBufs.ulToneEventBufferSize || pSharedInfo->SoftBufs.ulToneEventBufferReadPtr != 0) ) { - - /* If enough space. */ - if ( ((pSharedInfo->SoftBufs.ulToneEventBufferWritePtr + 1) != pSharedInfo->SoftBufs.ulToneEventBufferReadPtr) && - ((pSharedInfo->SoftBufs.ulToneEventBufferWritePtr + 1) != pSharedInfo->SoftBufs.ulToneEventBufferSize || pSharedInfo->SoftBufs.ulToneEventBufferReadPtr != 0) ) + /* The tone event is not masked, The API can create a soft tone event. */ + mOCT6100_GET_TONE_EVENT_BUF_PNT( pSharedInfo, pSoftEvent ) + pSoftEvent += pSharedInfo->SoftBufs.ulToneEventBufferWritePtr; + + /* Decode the event type. */ + switch(( ausReadData[ j ] >> 8 ) & 0x7 ) { - /* The tone event is not masked, The API can create a soft tone event. */ - mOCT6100_GET_TONE_EVENT_BUF_PNT( pSharedInfo, pSoftEvent ) - pSoftEvent += pSharedInfo->SoftBufs.ulToneEventBufferWritePtr; - - /* Decode the event type. */ - switch( ulEventCode ) - { - case 1: - pSoftEvent->ulEventType = cOCT6100_TONE_PRESENT; - break; - case 2: - pSoftEvent->ulEventType = cOCT6100_TONE_STOP; - break; - case 3: - /* This one is a little tricky. We first */ - /* generate the "PRESENT" event and then generate the "STOP" event. */ - - pSoftEvent->ulEventType = cOCT6100_TONE_PRESENT; - pSoftEvent->ulChannelHandle = cOCT6100_HNDL_TAG_CHANNEL | (pEchoChannel->byEntryOpenCnt << cOCT6100_ENTRY_OPEN_CNT_SHIFT) | usChannelIndex; - pSoftEvent->ulUserChanId = pEchoChannel->ulUserChanId; - pSoftEvent->ulToneDetected = pSharedInfo->ImageInfo.aToneInfo[ ulToneCnt ].ulToneID; - /* We want the timestamp not to be equal to the "STOP" event, so we subtract one to the detector's value. */ - pSoftEvent->ulTimestamp = ( ulBaseTimestamp + ((( ausReadData[ j ] >> 13 ) & 0x7) * cOCT6100_LOCAL_TIMESTAMP_INCREMENT ) ) - 1; - pSoftEvent->ulExtToneDetectionPort = ulExtToneDetectionPort; - - /* Update the control variables of the buffer. */ - pSharedInfo->SoftBufs.ulToneEventBufferWritePtr++; - if ( pSharedInfo->SoftBufs.ulToneEventBufferWritePtr == pSharedInfo->SoftBufs.ulToneEventBufferSize ) - pSharedInfo->SoftBufs.ulToneEventBufferWritePtr = 0; - - /* If enough space for the "STOP" event. */ - if ( ((pSharedInfo->SoftBufs.ulToneEventBufferWritePtr + 1) != pSharedInfo->SoftBufs.ulToneEventBufferReadPtr) && - ((pSharedInfo->SoftBufs.ulToneEventBufferWritePtr + 1) != pSharedInfo->SoftBufs.ulToneEventBufferSize || pSharedInfo->SoftBufs.ulToneEventBufferReadPtr != 0) ) - { - mOCT6100_GET_TONE_EVENT_BUF_PNT( pSharedInfo, pSoftEvent ) - pSoftEvent += pSharedInfo->SoftBufs.ulToneEventBufferWritePtr; - - pSoftEvent->ulEventType = cOCT6100_TONE_STOP; - } - else - { - /* Set the overflow flag of the buffer. */ - pSharedInfo->SoftBufs.ulToneEventBufferOverflowCnt++; - - /* We continue in the loop in order to empty the hardware buffer. */ - continue; - } - - break; - case 4: - pSoftEvent->ulEventType = cOCT6100_TONE_PRESENT; - break; - default: - pSharedInfo->ErrorStats.ulToneDetectorErrorCnt++; - /* do not process this packet*/ - continue; - } + case 1: + pSoftEvent->ulEventType = cOCT6100_TONE_PRESENT; + break; + case 2: + pSoftEvent->ulEventType = cOCT6100_TONE_STOP; + break; + case 3: + /* This one is a little tricky. We first */ + /* generate the "PRESENT" event and then generate the "STOP" event. */ + pSoftEvent->ulEventType = cOCT6100_TONE_PRESENT; pSoftEvent->ulChannelHandle = cOCT6100_HNDL_TAG_CHANNEL | (pEchoChannel->byEntryOpenCnt << cOCT6100_ENTRY_OPEN_CNT_SHIFT) | usChannelIndex; pSoftEvent->ulUserChanId = pEchoChannel->ulUserChanId; pSoftEvent->ulToneDetected = pSharedInfo->ImageInfo.aToneInfo[ ulToneCnt ].ulToneID; - pSoftEvent->ulTimestamp = ulBaseTimestamp + ((( ausReadData[ j ] >> 13 ) & 0x7) * cOCT6100_LOCAL_TIMESTAMP_INCREMENT ); + /* We want the timestamp not to be equal to the "STOP" event, so we subtract one to the detector's value. */ + pSoftEvent->ulTimestamp = ( ulBaseTimestamp + ((( ausReadData[ j ] >> 13 ) & 0x7) * cOCT6100_LOCAL_TIMESTAMP_INCREMENT ) ) - 1; pSoftEvent->ulExtToneDetectionPort = ulExtToneDetectionPort; /* Update the control variables of the buffer. */ @@ -669,17 +614,55 @@ UINT32 Oct6100ApiTransferToneEvents( if ( pSharedInfo->SoftBufs.ulToneEventBufferWritePtr == pSharedInfo->SoftBufs.ulToneEventBufferSize ) pSharedInfo->SoftBufs.ulToneEventBufferWritePtr = 0; - /* Set the interrupt manager such that the user knows that some tone events */ - /* are pending in the software Q. */ - pSharedInfo->IntrptManage.fToneEventsPending = TRUE; - } - else - { - /* Set the overflow flag of the buffer. */ - pSharedInfo->SoftBufs.ulToneEventBufferOverflowCnt++; + /* If enough space for the "STOP" event. */ + if ( ((pSharedInfo->SoftBufs.ulToneEventBufferWritePtr + 1) != pSharedInfo->SoftBufs.ulToneEventBufferReadPtr) && + ((pSharedInfo->SoftBufs.ulToneEventBufferWritePtr + 1) != pSharedInfo->SoftBufs.ulToneEventBufferSize || pSharedInfo->SoftBufs.ulToneEventBufferReadPtr != 0) ) + { + mOCT6100_GET_TONE_EVENT_BUF_PNT( pSharedInfo, pSoftEvent ) + pSoftEvent += pSharedInfo->SoftBufs.ulToneEventBufferWritePtr; - /* We continue in the loop in order to empty the hardware buffer. */ + pSoftEvent->ulEventType = cOCT6100_TONE_STOP; + } + else + { + /* Set the overflow flag of the buffer. */ + pSharedInfo->SoftBufs.ulToneEventBufferOverflowCnt++; + + /* We continue in the loop in order to empty the hardware buffer. */ + continue; + } + + break; + case 4: + pSoftEvent->ulEventType = cOCT6100_TONE_PRESENT; + break; + default: + pSharedInfo->ErrorStats.ulToneDetectorErrorCnt++; + /* do not process this packet*/ + continue; } + + pSoftEvent->ulChannelHandle = cOCT6100_HNDL_TAG_CHANNEL | (pEchoChannel->byEntryOpenCnt << cOCT6100_ENTRY_OPEN_CNT_SHIFT) | usChannelIndex; + pSoftEvent->ulUserChanId = pEchoChannel->ulUserChanId; + pSoftEvent->ulToneDetected = pSharedInfo->ImageInfo.aToneInfo[ ulToneCnt ].ulToneID; + pSoftEvent->ulTimestamp = ulBaseTimestamp + ((( ausReadData[ j ] >> 13 ) & 0x7) * cOCT6100_LOCAL_TIMESTAMP_INCREMENT ); + pSoftEvent->ulExtToneDetectionPort = ulExtToneDetectionPort; + + /* Update the control variables of the buffer. */ + pSharedInfo->SoftBufs.ulToneEventBufferWritePtr++; + if ( pSharedInfo->SoftBufs.ulToneEventBufferWritePtr == pSharedInfo->SoftBufs.ulToneEventBufferSize ) + pSharedInfo->SoftBufs.ulToneEventBufferWritePtr = 0; + + /* Set the interrupt manager such that the user knows that some tone events */ + /* are pending in the software Q. */ + pSharedInfo->IntrptManage.fToneEventsPending = TRUE; + } + else + { + /* Set the overflow flag of the buffer. */ + pSharedInfo->SoftBufs.ulToneEventBufferOverflowCnt++; + + /* We continue in the loop in order to empty the hardware buffer. */ } } else @@ -696,7 +679,7 @@ UINT32 Oct6100ApiTransferToneEvents( if ( fSSTone == TRUE ) { /* Check if this is a "PRESENT" or "STOP" event */ - switch( ulEventCode ) + switch( ( ( ausReadData[ j ] >> 8 ) & 0x7 ) ) { case 1: /* This is a signaling system present event. Keep this in the instance memory. */ @@ -715,94 +698,39 @@ UINT32 Oct6100ApiTransferToneEvents( } } ulToneCnt++; - + /* Check the other tone of this word. */ - ulEventCode = ausReadData[ j ] & 0x7; - - if ( ulEventCode != 0x0 ) + if ( ( ausReadData[ j ] & 0x7 ) != 0x0 ) { if ((( pEchoChannel->aulToneConf[ ulToneCnt / 32 ] >> ( 31 - ( ulToneCnt % 32 ))) & 0x1) == 1 ) { - BOOL f2100Tone; - - /* Check if it is a 2100 Tone STOP and if the user wants receive those events*/ - ulResult = Oct6100ApiIs2100Tone(f_pApiInstance, - pSharedInfo->ImageInfo.aToneInfo[ ulToneCnt ].ulToneID, - &f2100Tone); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - if ( (f2100Tone == FALSE) || - ( (f2100Tone == TRUE) && (ulEventCode != 2) ) || - ( (f2100Tone == TRUE) && pSharedInfo->ChipConfig.fEnable2100StopEvent == TRUE ) ) + /* If enough space. */ + if ( ((pSharedInfo->SoftBufs.ulToneEventBufferWritePtr + 1) != pSharedInfo->SoftBufs.ulToneEventBufferReadPtr) && + ((pSharedInfo->SoftBufs.ulToneEventBufferWritePtr + 1) != pSharedInfo->SoftBufs.ulToneEventBufferSize || pSharedInfo->SoftBufs.ulToneEventBufferReadPtr != 0) ) { - - /* If enough space. */ - if ( ((pSharedInfo->SoftBufs.ulToneEventBufferWritePtr + 1) != pSharedInfo->SoftBufs.ulToneEventBufferReadPtr) && - ((pSharedInfo->SoftBufs.ulToneEventBufferWritePtr + 1) != pSharedInfo->SoftBufs.ulToneEventBufferSize || pSharedInfo->SoftBufs.ulToneEventBufferReadPtr != 0) ) + /* The tone event is not masked, The API can create a soft tone event. */ + mOCT6100_GET_TONE_EVENT_BUF_PNT( pSharedInfo, pSoftEvent ) + pSoftEvent += pSharedInfo->SoftBufs.ulToneEventBufferWritePtr; + + /* Decode the event type. */ + switch(( ausReadData[ j ] ) & 0x7 ) { - /* The tone event is not masked, The API can create a soft tone event. */ - mOCT6100_GET_TONE_EVENT_BUF_PNT( pSharedInfo, pSoftEvent ) - pSoftEvent += pSharedInfo->SoftBufs.ulToneEventBufferWritePtr; - - /* Decode the event type. */ - switch( ulEventCode ) - { - case 1: - pSoftEvent->ulEventType = cOCT6100_TONE_PRESENT; - break; - case 2: - pSoftEvent->ulEventType = cOCT6100_TONE_STOP; - break; - case 3: - /* This one is a little tricky. We first */ - /* generate the "PRESENT" event and then generate the "STOP" event. */ - - pSoftEvent->ulEventType = cOCT6100_TONE_PRESENT; - pSoftEvent->ulChannelHandle = cOCT6100_HNDL_TAG_CHANNEL | (pEchoChannel->byEntryOpenCnt << cOCT6100_ENTRY_OPEN_CNT_SHIFT) | usChannelIndex; - pSoftEvent->ulUserChanId = pEchoChannel->ulUserChanId; - pSoftEvent->ulToneDetected = pSharedInfo->ImageInfo.aToneInfo[ ulToneCnt ].ulToneID; - /* We want the timestamp not to be equal to the "STOP" event, so we subtract one to the detector's value. */ - pSoftEvent->ulTimestamp = ( ulBaseTimestamp + ((( ausReadData[ j ] >> 5 ) & 0x7) * cOCT6100_LOCAL_TIMESTAMP_INCREMENT ) ) - 1; - pSoftEvent->ulExtToneDetectionPort = ulExtToneDetectionPort; - - /* Update the control variables of the buffer. */ - pSharedInfo->SoftBufs.ulToneEventBufferWritePtr++; - if ( pSharedInfo->SoftBufs.ulToneEventBufferWritePtr == pSharedInfo->SoftBufs.ulToneEventBufferSize ) - pSharedInfo->SoftBufs.ulToneEventBufferWritePtr = 0; - - /* If enough space for the "STOP" event. */ - if ( ((pSharedInfo->SoftBufs.ulToneEventBufferWritePtr + 1) != pSharedInfo->SoftBufs.ulToneEventBufferReadPtr) && - ((pSharedInfo->SoftBufs.ulToneEventBufferWritePtr + 1) != pSharedInfo->SoftBufs.ulToneEventBufferSize || pSharedInfo->SoftBufs.ulToneEventBufferReadPtr != 0) ) - { - mOCT6100_GET_TONE_EVENT_BUF_PNT( pSharedInfo, pSoftEvent ) - pSoftEvent += pSharedInfo->SoftBufs.ulToneEventBufferWritePtr; - - pSoftEvent->ulEventType = cOCT6100_TONE_STOP; - } - else - { - /* Set the overflow flag of the buffer. */ - pSharedInfo->SoftBufs.ulToneEventBufferOverflowCnt++; - - /* We continue in the loop in order to empty the hardware buffer. */ - continue; - } - - break; - case 4: - pSoftEvent->ulEventType = cOCT6100_TONE_PRESENT; - break; - default: - pSharedInfo->ErrorStats.ulToneDetectorErrorCnt++; - /* Do not process this packet. */ - continue; - } + case 1: + pSoftEvent->ulEventType = cOCT6100_TONE_PRESENT; + break; + case 2: + pSoftEvent->ulEventType = cOCT6100_TONE_STOP; + break; + case 3: + /* This one is a little tricky. We first */ + /* generate the "PRESENT" event and then generate the "STOP" event. */ + pSoftEvent->ulEventType = cOCT6100_TONE_PRESENT; pSoftEvent->ulChannelHandle = cOCT6100_HNDL_TAG_CHANNEL | (pEchoChannel->byEntryOpenCnt << cOCT6100_ENTRY_OPEN_CNT_SHIFT) | usChannelIndex; pSoftEvent->ulUserChanId = pEchoChannel->ulUserChanId; pSoftEvent->ulToneDetected = pSharedInfo->ImageInfo.aToneInfo[ ulToneCnt ].ulToneID; - pSoftEvent->ulTimestamp = ulBaseTimestamp + ((( ausReadData[ j ] >> 5 ) & 0x7) * cOCT6100_LOCAL_TIMESTAMP_INCREMENT ); + /* We want the timestamp not to be equal to the "STOP" event, so we subtract one to the detector's value. */ + pSoftEvent->ulTimestamp = ( ulBaseTimestamp + ((( ausReadData[ j ] >> 5 ) & 0x7) * cOCT6100_LOCAL_TIMESTAMP_INCREMENT ) ) - 1; pSoftEvent->ulExtToneDetectionPort = ulExtToneDetectionPort; /* Update the control variables of the buffer. */ @@ -810,18 +738,56 @@ UINT32 Oct6100ApiTransferToneEvents( if ( pSharedInfo->SoftBufs.ulToneEventBufferWritePtr == pSharedInfo->SoftBufs.ulToneEventBufferSize ) pSharedInfo->SoftBufs.ulToneEventBufferWritePtr = 0; - /* Set the interrupt manager such that the user knows that some tone events */ - /* are pending in the software Q. */ - pSharedInfo->IntrptManage.fToneEventsPending = TRUE; + /* If enough space for the "STOP" event. */ + if ( ((pSharedInfo->SoftBufs.ulToneEventBufferWritePtr + 1) != pSharedInfo->SoftBufs.ulToneEventBufferReadPtr) && + ((pSharedInfo->SoftBufs.ulToneEventBufferWritePtr + 1) != pSharedInfo->SoftBufs.ulToneEventBufferSize || pSharedInfo->SoftBufs.ulToneEventBufferReadPtr != 0) ) + { + mOCT6100_GET_TONE_EVENT_BUF_PNT( pSharedInfo, pSoftEvent ) + pSoftEvent += pSharedInfo->SoftBufs.ulToneEventBufferWritePtr; - } - else - { - /* Set the overflow flag of the buffer. */ - pSharedInfo->SoftBufs.ulToneEventBufferOverflowCnt++; + pSoftEvent->ulEventType = cOCT6100_TONE_STOP; + } + else + { + /* Set the overflow flag of the buffer. */ + pSharedInfo->SoftBufs.ulToneEventBufferOverflowCnt++; - /* We continue in the loop in order to empty the hardware buffer. */ + /* We continue in the loop in order to empty the hardware buffer. */ + continue; + } + + break; + case 4: + pSoftEvent->ulEventType = cOCT6100_TONE_PRESENT; + break; + default: + pSharedInfo->ErrorStats.ulToneDetectorErrorCnt++; + /* Do not process this packet. */ + continue; } + + pSoftEvent->ulChannelHandle = cOCT6100_HNDL_TAG_CHANNEL | (pEchoChannel->byEntryOpenCnt << cOCT6100_ENTRY_OPEN_CNT_SHIFT) | usChannelIndex; + pSoftEvent->ulUserChanId = pEchoChannel->ulUserChanId; + pSoftEvent->ulToneDetected = pSharedInfo->ImageInfo.aToneInfo[ ulToneCnt ].ulToneID; + pSoftEvent->ulTimestamp = ulBaseTimestamp + ((( ausReadData[ j ] >> 5 ) & 0x7) * cOCT6100_LOCAL_TIMESTAMP_INCREMENT ); + pSoftEvent->ulExtToneDetectionPort = ulExtToneDetectionPort; + + /* Update the control variables of the buffer. */ + pSharedInfo->SoftBufs.ulToneEventBufferWritePtr++; + if ( pSharedInfo->SoftBufs.ulToneEventBufferWritePtr == pSharedInfo->SoftBufs.ulToneEventBufferSize ) + pSharedInfo->SoftBufs.ulToneEventBufferWritePtr = 0; + + /* Set the interrupt manager such that the user knows that some tone events */ + /* are pending in the software Q. */ + pSharedInfo->IntrptManage.fToneEventsPending = TRUE; + + } + else + { + /* Set the overflow flag of the buffer. */ + pSharedInfo->SoftBufs.ulToneEventBufferOverflowCnt++; + + /* We continue in the loop in order to empty the hardware buffer. */ } } else @@ -838,7 +804,7 @@ UINT32 Oct6100ApiTransferToneEvents( if ( fSSTone == TRUE ) { /* Check if this is a "PRESENT" event. */ - switch ( ulEventCode ) + switch ( ( ausReadData[ j ] ) & 0x7 ) { case 1: /* This is a signaling system present event. Keep this in the instance memory. */ @@ -1357,4 +1323,4 @@ UINT32 Oct6100BufferPlayoutCheckForSpecificEvent( return cOCT6100_ERR_OK; } - +#endif /* cOCT6100_REMOVE_EVENTS */ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_interrupts.c b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_interrupts.c similarity index 92% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_interrupts.c rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_interrupts.c index 225b6b2..38371c9 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_interrupts.c +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_interrupts.c @@ -2,7 +2,7 @@ File: oct6100_interrupts.c - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -23,9 +23,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 78 $ +$Octasic_Revision: 72 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -319,7 +319,7 @@ UINT32 Oct6100ApiIsrHwInit( return ulResult; WriteParams.ulWriteAddress = 0x504; - WriteParams.usWriteData = 0x0002; + WriteParams.usWriteData = 0x0001; mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ) if ( ulResult != cOCT6100_ERR_OK ) return ulResult; @@ -428,12 +428,6 @@ UINT32 Oct6100InterruptConfigureSer( f_pIntrptConfig->ulErrorH100Timeout = ((f_pIntrptConfig->ulErrorH100Timeout + 9) / 10) * 10; pIntrptConfig->ulErrorH100TimeoutMclk = f_pIntrptConfig->ulErrorH100Timeout * pIntrptManage->ulNumMclkCyclesIn1Ms; - - /*Clear all interrupts that were already enabled*/ - ulResult = Oct6100ApiClearEnabledInterrupts( f_pApiInstance ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - /* Before writing the new configuration to the chip's registers, make sure that any */ /* interrupts which are either disabled or have no timeout period are not on the */ /* disabled interrupt list. */ @@ -488,7 +482,6 @@ UINT32 Oct6100InterruptConfigureSer( pIntrptManage->byErrorH100State = cOCT6100_INTRPT_ACTIVE; } - /* Write to the interrupt registers to update the state of each interrupt group. */ ulResult = Oct6100ApiWriteIeRegs( f_pApiInstance ); if ( ulResult != cOCT6100_ERR_OK ) @@ -497,102 +490,7 @@ UINT32 Oct6100InterruptConfigureSer( return cOCT6100_ERR_OK; } -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ -Function: Oct6100ApiClearEnabledInterrupts - -Description: Disabled interruption are not reported but still available. This - function will clear the interrupts that were disabled and wish - to enable now. - -------------------------------------------------------------------------------- -| Argument | Description -------------------------------------------------------------------------------- -f_pApiInstance Pointer to API instance. This memory is used to keep - the present state of the chip and all its resources. - -f_pIntrptConfig Pointer to interrupt configuration structure. -f_pIntrptManage Pointer to interrupt manager structure. -\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ - -UINT32 Oct6100ApiClearEnabledInterrupts( - IN tPOCT6100_INSTANCE_API f_pApiInstance ) -{ - - tPOCT6100_SHARED_INFO pSharedInfo; - tOCT6100_WRITE_PARAMS WriteParams; - tPOCT6100_API_INTRPT_CONFIG pIntrptConfig; - tPOCT6100_API_INTRPT_MANAGE pIntrptManage; - UINT32 ulResult; - - /* Get local pointer to shared portion of instance. */ - pSharedInfo = f_pApiInstance->pSharedInfo; - - /* Set the process context and user chip ID parameters once and for all. */ - WriteParams.pProcessContext = f_pApiInstance->pProcessContext; - - WriteParams.ulUserChipId = pSharedInfo->ChipConfig.ulUserChipId; - - /* Copy the configuration to the API instance. */ - pIntrptConfig = &f_pApiInstance->pSharedInfo->IntrptConfig; - pIntrptManage = &f_pApiInstance->pSharedInfo->IntrptManage; - - if ( pIntrptConfig->byFatalGeneralConfig != cOCT6100_INTERRUPT_DISABLE && - pIntrptManage->byFatalGeneralState != cOCT6100_INTRPT_DISABLED ) - { - WriteParams.ulWriteAddress = 0x102; - WriteParams.usWriteData = cOCT6100_INTRPT_MASK_REG_102H; - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ) - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - WriteParams.ulWriteAddress = 0x202; - WriteParams.usWriteData = 0x1800; - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ) - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - - WriteParams.ulWriteAddress = 0x502; - WriteParams.usWriteData = cOCT6100_INTRPT_MASK_REG_502H; - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ) - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - } - - if ( pIntrptConfig->byErrorMemoryConfig != cOCT6100_INTERRUPT_DISABLE && - pIntrptManage->byErrorMemoryState != cOCT6100_INTRPT_DISABLED ) - { - WriteParams.ulWriteAddress = 0x202; - WriteParams.usWriteData = cOCT6100_INTRPT_MASK_REG_202H; - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ) - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - } - - if ( pIntrptConfig->byErrorH100Config != cOCT6100_INTERRUPT_DISABLE && - pIntrptManage->byErrorH100State != cOCT6100_INTRPT_DISABLED ) - { - WriteParams.ulWriteAddress = 0x302; - WriteParams.usWriteData = cOCT6100_INTRPT_MASK_REG_302H; - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ) - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - } - - if ( pIntrptConfig->byErrorOverflowToneEventsConfig != cOCT6100_INTERRUPT_DISABLE && - pIntrptManage->byErrorOverflowToneEventsState != cOCT6100_INTRPT_DISABLED ) - { - WriteParams.ulWriteAddress = 0x702; - WriteParams.usWriteData = cOCT6100_INTRPT_MASK_REG_702H; - mOCT6100_DRIVER_WRITE_API( WriteParams, ulResult ) - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; - } - - - return cOCT6100_ERR_OK; - -} /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ Function: Oct6100InterruptServiceRoutineSer @@ -1923,7 +1821,7 @@ UINT32 Oct6100ApiCheckProcessorState( else ulTimestampDiff = ulNlpTimestamp - ulAfTimestamp; - if ( ulTimestampDiff > 0x2000 ) + if ( ulTimestampDiff > 0x1000 ) { f_pIntFlags->ulFatalGeneralFlags |= cOCT6100_FATAL_GENERAL_ERROR_TYPE_5; f_pIntFlags->fFatalGeneral = TRUE; diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_memory.c b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_memory.c similarity index 96% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_memory.c rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_memory.c index 17a44b8..28d2b4a 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_memory.c +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_memory.c @@ -2,7 +2,7 @@ File: oct6100_memory.c - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -23,7 +23,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 42 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_miscellaneous.c b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_miscellaneous.c similarity index 96% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_miscellaneous.c rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_miscellaneous.c index 04ad18b..da28278 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_miscellaneous.c +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_miscellaneous.c @@ -2,7 +2,7 @@ File: oct6100_miscellaneous.c - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -22,7 +22,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 35 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_mixer.c b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_mixer.c similarity index 97% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_mixer.c rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_mixer.c index 32f1661..0e4d58e 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_mixer.c +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_mixer.c @@ -2,7 +2,7 @@ File: oct6100_mixer.c - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -23,7 +23,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 42 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_phasing_tsst.c b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_phasing_tsst.c similarity index 96% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_phasing_tsst.c rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_phasing_tsst.c index 57a670b..72c7bed 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_phasing_tsst.c +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_phasing_tsst.c @@ -2,7 +2,7 @@ File: oct6100_phasing_tsst.c - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -22,9 +22,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 46 $ +$Octasic_Revision: 43 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -59,6 +59,7 @@ $Octasic_Revision: 46 $ #include "oct6100_tsst_priv.h" #include "oct6100_phasing_tsst_priv.h" + /**************************** PUBLIC FUNCTIONS ****************************/ /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_playout_buf.c b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_playout_buf.c similarity index 97% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_playout_buf.c rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_playout_buf.c index 736089a..be44b9d 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_playout_buf.c +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_playout_buf.c @@ -2,7 +2,7 @@ File: oct6100_playout_buf.c - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -22,7 +22,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 109 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_remote_debug.c b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_remote_debug.c similarity index 97% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_remote_debug.c rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_remote_debug.c index f6c01a3..33a4ab8 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_remote_debug.c +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_remote_debug.c @@ -2,7 +2,7 @@ File: oct6100_remote_debug.c - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -22,7 +22,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 35 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_tlv.c b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_tlv.c similarity index 95% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_tlv.c rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_tlv.c index fe40c26..29d5119 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_tlv.c +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_tlv.c @@ -2,7 +2,7 @@ File: oct6100_tlv.c - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -24,9 +24,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 113 $ +$Octasic_Revision: 111 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -1382,21 +1382,7 @@ UINT32 Oct6100ApiInterpretTlvEntry( } break; - case cOCT6100_TLV_TYPE_RIN_ANR_VALUE: - ulResult = Oct6100ApiTlvCheckLengthField( f_ulTlvFieldLength, - cOCT6100_TLV_MIN_LENGTH_RIN_ANR_VALUE_RW, - cOCT6100_TLV_MAX_LENGTH_RIN_ANR_VALUE_RW ); - if ( ulResult == cOCT6100_ERR_OK ) - { - ulResult = Oct6100ApiTlvReadBitOffsetStruct( f_pApiInstance, - f_ulTlvValueAddress, - &f_pApiInstance->pSharedInfo->MemoryMap.RinAnrValOfst ); - - f_pApiInstance->pSharedInfo->ImageInfo.fRoutNoiseReductionLevel = TRUE; - } - - break; case cOCT6100_TLV_TYPE_RIN_MUTE_BOFF: ulResult = Oct6100ApiTlvCheckLengthField( f_ulTlvFieldLength, @@ -1913,6 +1899,54 @@ UINT32 Oct6100ApiInterpretTlvEntry( break; + case cOCT6100_TLV_TYPE_RESET_RIN_ALC_ON_TONES_BOFF: + + ulResult = Oct6100ApiTlvCheckLengthField( f_ulTlvFieldLength, + cOCT6100_TLV_MIN_LENGTH_RESET_RIN_ALC_ON_TONES_BOFF, + cOCT6100_TLV_MAX_LENGTH_RESET_RIN_ALC_ON_TONES_BOFF ); + if ( ulResult == cOCT6100_ERR_OK ) + { + ulResult = Oct6100ApiTlvReadBitOffsetStruct( f_pApiInstance, + f_ulTlvValueAddress, + &f_pApiInstance->pSharedInfo->MemoryMap.ResetRinAlcOnTonesFieldOfst ); + + f_pApiInstance->pSharedInfo->ImageInfo.fResetRinAlcOnTones = TRUE; + } + + break; + + case cOCT6100_TLV_TYPE_RESET_SOUT_ALC_ON_TONES_BOFF: + + ulResult = Oct6100ApiTlvCheckLengthField( f_ulTlvFieldLength, + cOCT6100_TLV_MIN_LENGTH_RESET_SOUT_ALC_ON_TONES_BOFF, + cOCT6100_TLV_MAX_LENGTH_RESET_SOUT_ALC_ON_TONES_BOFF ); + if ( ulResult == cOCT6100_ERR_OK ) + { + ulResult = Oct6100ApiTlvReadBitOffsetStruct( f_pApiInstance, + f_ulTlvValueAddress, + &f_pApiInstance->pSharedInfo->MemoryMap.ResetSoutAlcOnTonesFieldOfst ); + + f_pApiInstance->pSharedInfo->ImageInfo.fResetSoutAlcOnTones = TRUE; + } + + break; + + case cOCT6100_TLV_TYPE_ALC_NOISE_BLEED_OUT_TIME_BOFF: + + ulResult = Oct6100ApiTlvCheckLengthField( f_ulTlvFieldLength, + cOCT6100_TLV_MIN_LENGTH_ALC_NOISE_BLEED_OUT_TIME_BOFF, + cOCT6100_TLV_MAX_LENGTH_ALC_NOISE_BLEED_OUT_TIME_BOFF ); + if ( ulResult == cOCT6100_ERR_OK ) + { + ulResult = Oct6100ApiTlvReadBitOffsetStruct( f_pApiInstance, + f_ulTlvValueAddress, + &f_pApiInstance->pSharedInfo->MemoryMap.AlcNoiseBleedOutTimeFieldOfst ); + + f_pApiInstance->pSharedInfo->ImageInfo.fAlcNoiseBleedOutTime = TRUE; + } + + break; + default: /* Unknown TLV type field... check default length and nothing else. */ ulResult = Oct6100ApiTlvCheckLengthField( f_ulTlvFieldLength, diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_tone_detection.c b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_tone_detection.c similarity index 91% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_tone_detection.c rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_tone_detection.c index 17ed21b..4fec978 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_tone_detection.c +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_tone_detection.c @@ -2,7 +2,7 @@ File: oct6100_tone_detection.c - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -23,9 +23,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 51 $ +$Octasic_Revision: 49 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -989,23 +989,8 @@ UINT32 Oct6100ApiIsSSTone( switch( f_ulToneEventNumber ) { - case cOCT6100_TONE_SIN_SYSTEM7_2000 : - case cOCT6100_TONE_SIN_SYSTEM7_1780 : - case cOCT6100_TONE_ROUT_G168_2100GB_ON : - case cOCT6100_TONE_ROUT_G168_2100GB_WSPR : - case cOCT6100_TONE_ROUT_G168_1100GB_ON : - case cOCT6100_TONE_ROUT_G168_2100GB_ON_WIDE_A : - case cOCT6100_TONE_ROUT_G168_2100GB_ON_WIDE_B : - case cOCT6100_TONE_ROUT_G168_2100GB_WSPR_WIDE : - case cOCT6100_TONE_SOUT_G168_2100GB_ON : - case cOCT6100_TONE_SOUT_G168_2100GB_WSPR : - case cOCT6100_TONE_SOUT_G168_1100GB_ON : - case cOCT6100_TONE_SOUT_G168_2100GB_ON_WIDE_A : - case cOCT6100_TONE_SOUT_G168_2100GB_ON_WIDE_B : - case cOCT6100_TONE_SOUT_G168_2100GB_WSPR_WIDE : - case cOCT6100_TONE_SIN_SYSTEM5_2400 : - case cOCT6100_TONE_SIN_SYSTEM5_2600 : - case cOCT6100_TONE_SIN_SYSTEM5_2400_2600 : + case cOCT6100_TONE_SIN_SYSTEM7_2000: + case cOCT6100_TONE_SIN_SYSTEM7_1780: *f_fSSTone = TRUE; break; default: @@ -1014,46 +999,4 @@ UINT32 Oct6100ApiIsSSTone( return cOCT6100_ERR_OK; } -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ -Function: Oct6100ApiIsSSTone - -Description: Check if specified tone number is a 2100 special signaling - system tone. - -------------------------------------------------------------------------------- -| Argument | Description -------------------------------------------------------------------------------- -f_pApiInstance Pointer to API instance. This memory is used to keep the - present state of the chip and all its resources. - -f_ulToneEventNumber Tone event number to be checked against. - -\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ -UINT32 Oct6100ApiIs2100Tone( - IN OUT tPOCT6100_INSTANCE_API f_pApiInstance, - IN UINT32 f_ulToneEventNumber, - OUT PBOOL f_fIs2100Tone ) -{ - *f_fIs2100Tone = FALSE; - - switch( f_ulToneEventNumber ) - { - case cOCT6100_TONE_ROUT_G168_2100GB_ON : - case cOCT6100_TONE_ROUT_G168_2100GB_WSPR : - case cOCT6100_TONE_ROUT_G168_2100GB_ON_WIDE_A : - case cOCT6100_TONE_ROUT_G168_2100GB_ON_WIDE_B : - case cOCT6100_TONE_ROUT_G168_2100GB_WSPR_WIDE : - case cOCT6100_TONE_SOUT_G168_2100GB_ON : - case cOCT6100_TONE_SOUT_G168_2100GB_WSPR : - case cOCT6100_TONE_SOUT_G168_2100GB_ON_WIDE_A : - case cOCT6100_TONE_SOUT_G168_2100GB_ON_WIDE_B : - case cOCT6100_TONE_SOUT_G168_2100GB_WSPR_WIDE : - *f_fIs2100Tone = TRUE; - break; - default: - break; - } - - return cOCT6100_ERR_OK; -} diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_tsi_cnct.c b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_tsi_cnct.c similarity index 96% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_tsi_cnct.c rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_tsi_cnct.c index 486268d..8a3d452 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_tsi_cnct.c +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_tsi_cnct.c @@ -2,7 +2,7 @@ File: oct6100_tsi_cnct.c - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -22,9 +22,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 38 $ +$Octasic_Revision: 37 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_tsst.c b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_tsst.c similarity index 96% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_tsst.c rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_tsst.c index 38e34ea..c4c5096 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_tsst.c +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_tsst.c @@ -2,7 +2,7 @@ File: oct6100_tsst.c - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -23,7 +23,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 39 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_user.c b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_user.c similarity index 100% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_user.c rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/oct6100_user.c diff --git a/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/sources b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/sources new file mode 100755 index 0000000..11769ff --- /dev/null +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_api/sources @@ -0,0 +1,49 @@ +TARGETNAME=octasic_user +TARGETTYPE=DRIVER_LIBRARY +TARGETPATH=obj + +TARGETLIBS=$(DDK_LIB_PATH)\ntoskrnl.lib + +MSC_WARNING_LEVEL=-W3 -WX + +#make sure no optimization done, even in "Free" build: +MSC_OPTIMIZATION=/Odi + +C_DEFINES=$(C_DEFINES) -D__WINDOWS__ -D__KERNEL__ -DVIRTUAL_IF_DRV +C_DEFINES=$(C_DEFINES) -DSANG_DBG + +#build can not expand Env Vars names longer than 8 chars, so use +#absolute paths +INCLUDES=$(DDK_INC_PATH);\ +D:\cvshome\development\wanpipe_windows\include\pnp;\ +D:\cvshome\development\wanpipe_windows\include\api;\ +D:\cvshome\development\wanpipe_windows\include\octasic\include;\ +D:\cvshome\development\wanpipe_windows\include\octasic\include\oct6100api;\ +D:\cvshome\development\wanpipe_windows\include\octasic\octdeviceapi\oct6100api;\ +D:\cvshome\development\wanpipe_windows\include\octasic\apilib\llman;\ +D:\cvshome\development\wanpipe_windows\include\octasic\include\apilib;\ +D:\cvshome\development\wanpipe_windows\include\octasic\include\octrpc;\ +D:\cvshome\development\wanpipe_windows\include\octasic\apilib\bt;\ +D:\cvshome\development\wanpipe_windows\include\debug + +SOURCES= oct6100_adpcm_chan.c \ + oct6100_channel.c \ + oct6100_chip_open.c \ + oct6100_chip_stats.c \ + oct6100_conf_bridge.c \ + oct6100_debug.c \ + oct6100_events.c \ + oct6100_interrupts.c \ + oct6100_memory.c \ + oct6100_miscellaneous.c \ + oct6100_mixer.c \ + oct6100_phasing_tsst.c \ + oct6100_playout_buf.c \ + oct6100_remote_debug.c \ + oct6100_tlv.c \ + oct6100_tone_detection.c \ + oct6100_tsi_cnct.c \ + oct6100_tsst.c \ + oct6100_user.c + + diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_apimi/oct6100_mask_interrupts.c b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_apimi/oct6100_mask_interrupts.c similarity index 94% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_apimi/oct6100_mask_interrupts.c rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_apimi/oct6100_mask_interrupts.c index 2f31c78..f3847b2 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_apimi/oct6100_mask_interrupts.c +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_apimi/oct6100_mask_interrupts.c @@ -2,7 +2,7 @@ File: oct6100_mask_interrupts.c - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -22,9 +22,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 8 $ +$Octasic_Revision: 7 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_channel_priv.h b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_channel_priv.h similarity index 97% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_channel_priv.h rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_channel_priv.h index 496b3b8..a8c6610 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_channel_priv.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_channel_priv.h @@ -2,7 +2,7 @@ File: oct6100_channel_priv.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 62 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_chip_open_priv.h b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_chip_open_priv.h similarity index 86% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_chip_open_priv.h rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_chip_open_priv.h index f5de59d..ea9eecc 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_chip_open_priv.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_chip_open_priv.h @@ -2,7 +2,7 @@ File: oct6100_chip_open_priv.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,9 +25,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 63 $ +$Octasic_Revision: 56 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -109,9 +109,6 @@ typedef struct _OCT6100_API_INSTANCE_SIZES_ UINT32 Oct6100ApiCheckChipConfiguration( IN tPOCT6100_CHIP_OPEN f_pOpenChip ); -UINT32 Oct6100ApiCheckImageFileHeader( - IN tPOCT6100_CHIP_OPEN f_pChipOpen ); - UINT32 Oct6100ApiCopyChipConfiguration( IN OUT tPOCT6100_INSTANCE_API f_pApiInstance, IN tPOCT6100_CHIP_OPEN f_pOpenChip ); @@ -240,25 +237,6 @@ UINT32 Oct6100ApiProductionCrc( IN UINT32 f_ulMessageLength, OUT PUINT32 f_pulCrcResult ); -UINT32 Oct6100ApiReadCapacity( - IN tPOCT6100_INSTANCE_API f_pApiInstance, - IN tPOCT6100_API_GET_CAPACITY_PINS f_pGetCapacityPins ); - -UINT32 Oct6100ApiCpuRegisterBistReadCap( - IN tPOCT6100_INSTANCE_API f_pApiInstance, - IN tPOCT6100_API_GET_CAPACITY_PINS f_pGetCapacityPins ); - -UINT32 Oct6100ApiBootFc2PllReadCap( - IN tPOCT6100_INSTANCE_API f_pApiInstance, - IN tPOCT6100_API_GET_CAPACITY_PINS f_pGetCapacityPins ); - -UINT32 Oct6100ApiProgramFc1PllReadCap( - IN tPOCT6100_INSTANCE_API f_pApiInstance, - IN tPOCT6100_API_GET_CAPACITY_PINS f_pGetCapacityPins ); - UINT32 Oct6100ApiInitToneInfo( IN OUT tPOCT6100_INSTANCE_API f_pApiInstance ); - -UINT32 Oct6100ApiClearInterrupts( - IN tPOCT6100_INSTANCE_API f_pApiInstance ); #endif /* __OCT6100_CHIP_OPEN_PRIV_H__ */ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_chip_stats_priv.h b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_chip_stats_priv.h similarity index 93% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_chip_stats_priv.h rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_chip_stats_priv.h index 8e3d3b9..cf84eae 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_chip_stats_priv.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_chip_stats_priv.h @@ -2,7 +2,7 @@ File: oct6100_chip_stats_priv.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 8 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_conf_bridge_priv.h b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_conf_bridge_priv.h similarity index 96% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_conf_bridge_priv.h rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_conf_bridge_priv.h index a6b7cec..1b4f10b 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_conf_bridge_priv.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_conf_bridge_priv.h @@ -2,7 +2,7 @@ File: oct6100_conf_bridge_priv.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 30 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_debug_priv.h b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_debug_priv.h similarity index 93% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_debug_priv.h rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_debug_priv.h index cea0fff..fbbc79c 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_debug_priv.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_debug_priv.h @@ -2,7 +2,7 @@ File: oct6100_debug_priv.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 12 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_events_priv.h b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_events_priv.h similarity index 92% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_events_priv.h rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_events_priv.h index f299313..b41a102 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_events_priv.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_events_priv.h @@ -1,8 +1,9 @@ +#ifndef cOCT6100_REMOVE_EVENTS /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ File: oct6100_events_priv.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,9 +26,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 14 $ +$Octasic_Revision: 13 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -80,3 +81,4 @@ UINT32 Oct6100BufferPlayoutCheckForSpecificEvent( OUT PBOOL f_pfEventDetected ); #endif /* __OCT6100_EVENTS_PRIV_H__ */ +#endif /* cOCT6100_REMOVE_EVENTS */ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_interrupts_priv.h b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_interrupts_priv.h similarity index 94% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_interrupts_priv.h rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_interrupts_priv.h index 72c0a36..48eb7b1 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_interrupts_priv.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_interrupts_priv.h @@ -2,7 +2,7 @@ File: oct6100_interrupts_priv.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,9 +25,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 11 $ +$Octasic_Revision: 8 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -116,9 +116,6 @@ UINT32 Oct6100InterruptConfigureSer( IN tPOCT6100_INTERRUPT_CONFIGURE f_pIntrptConfig, IN BOOL f_fCheckParams ); -UINT32 Oct6100ApiClearEnabledInterrupts( - IN tPOCT6100_INSTANCE_API f_pApiInstance ); - UINT32 Oct6100InterruptServiceRoutineSer( IN tPOCT6100_INSTANCE_API f_pApiInstance, OUT tPOCT6100_INTERRUPT_FLAGS f_pIntFlags ); diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_memory_priv.h b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_memory_priv.h similarity index 95% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_memory_priv.h rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_memory_priv.h index 8440229..d33d487 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_memory_priv.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_memory_priv.h @@ -2,7 +2,7 @@ File: oct6100_memory_priv.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -24,7 +24,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 17 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_miscellaneous_priv.h b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_miscellaneous_priv.h similarity index 97% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_miscellaneous_priv.h rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_miscellaneous_priv.h index b06f964..bac97b0 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_miscellaneous_priv.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_miscellaneous_priv.h @@ -2,7 +2,7 @@ File: oct6100_miscellaneous_priv.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -24,7 +24,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 20 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_mixer_priv.h b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_mixer_priv.h similarity index 96% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_mixer_priv.h rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_mixer_priv.h index 63f2251..6b6ef20 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_mixer_priv.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_mixer_priv.h @@ -2,7 +2,7 @@ File: oct6100_mixer_priv.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 18 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_phasing_tsst_priv.h b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_phasing_tsst_priv.h similarity index 94% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_phasing_tsst_priv.h rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_phasing_tsst_priv.h index 9ede936..d731d95 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_phasing_tsst_priv.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_phasing_tsst_priv.h @@ -2,7 +2,7 @@ File: oct6100_phasing_tsst_priv.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,9 +25,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 12 $ +$Octasic_Revision: 11 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -111,4 +111,4 @@ UINT32 Oct6100ApiReleasePhasingEntry( IN OUT tPOCT6100_INSTANCE_API f_pApiInstance, IN UINT16 f_usPhasingIndex ); -#endif /* #ifndef cOCT6100_REMOVE_PHASING_TSST */ +#endif /* __OCT6100_PHASING_TSST_PRIV_H__ */ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_playout_buf_priv.h b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_playout_buf_priv.h similarity index 96% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_playout_buf_priv.h rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_playout_buf_priv.h index 5345c7c..dededd5 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_playout_buf_priv.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_playout_buf_priv.h @@ -2,7 +2,7 @@ File: oct6100_playout_buf_priv.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 22 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_remote_debug_priv.h b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_remote_debug_priv.h similarity index 96% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_remote_debug_priv.h rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_remote_debug_priv.h index a1d6df2..eed1ee8 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_remote_debug_priv.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_remote_debug_priv.h @@ -2,7 +2,7 @@ File: oct6100_remote_debug_priv.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,7 +25,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 13 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_tlv_priv.h b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_tlv_priv.h similarity index 94% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_tlv_priv.h rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_tlv_priv.h index e11384e..0fe02bd 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_tlv_priv.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_tlv_priv.h @@ -2,7 +2,7 @@ File: oct6100_tlv_priv.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -24,9 +24,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 58 $ +$Octasic_Revision: 56 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -192,7 +192,9 @@ $Octasic_Revision: 58 $ #define cOCT6100_TLV_TYPE_NLP_STATISTICS 138 -#define cOCT6100_TLV_TYPE_RIN_ANR_VALUE 147 +#define cOCT6100_TLV_TYPE_ALC_NOISE_BLEED_OUT_TIME_BOFF 143 +#define cOCT6100_TLV_TYPE_RESET_RIN_ALC_ON_TONES_BOFF 144 +#define cOCT6100_TLV_TYPE_RESET_SOUT_ALC_ON_TONES_BOFF 145 #define cOCT6100_TLV_TYPE_ADPCM_ENABLE 150 #define cOCT6100_TLV_TYPE_NUM_TONE_DETECTOR 151 @@ -367,9 +369,6 @@ $Octasic_Revision: 58 $ #define cOCT6100_TLV_MIN_LENGTH_RIN_ANR_BOFF_RW 8 #define cOCT6100_TLV_MAX_LENGTH_RIN_ANR_BOFF_RW 8 -#define cOCT6100_TLV_MIN_LENGTH_RIN_ANR_VALUE_RW 8 -#define cOCT6100_TLV_MAX_LENGTH_RIN_ANR_VALUE_RW 8 - #define cOCT6100_TLV_MIN_LENGTH_RIN_MUTE_BOFF_RW 8 #define cOCT6100_TLV_MAX_LENGTH_RIN_MUTE_BOFF_RW 8 #define cOCT6100_TLV_MIN_LENGTH_SIN_MUTE_BOFF_RW 8 @@ -418,6 +417,14 @@ $Octasic_Revision: 58 $ #define cOCT6100_TLV_MIN_LENGTH_IDLE_CODE_DETECTION_BOFF 8 #define cOCT6100_TLV_MAX_LENGTH_IDLE_CODE_DETECTION_BOFF 8 +#define cOCT6100_TLV_MIN_LENGTH_ALC_NOISE_BLEED_OUT_TIME_BOFF 8 +#define cOCT6100_TLV_MAX_LENGTH_ALC_NOISE_BLEED_OUT_TIME_BOFF 8 + +#define cOCT6100_TLV_MIN_LENGTH_RESET_RIN_ALC_ON_TONES_BOFF 8 +#define cOCT6100_TLV_MAX_LENGTH_RESET_RIN_ALC_ON_TONES_BOFF 8 +#define cOCT6100_TLV_MIN_LENGTH_RESET_SOUT_ALC_ON_TONES_BOFF 8 +#define cOCT6100_TLV_MAX_LENGTH_RESET_SOUT_ALC_ON_TONES_BOFF 8 + #define cOCT6100_TLV_MIN_LENGTH_DEBUG_CHAN_INDEX_VALUE 4 #define cOCT6100_TLV_MAX_LENGTH_DEBUG_CHAN_INDEX_VALUE 4 #define cOCT6100_TLV_MIN_LENGTH_ADPCM_ENABLE 4 diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_tone_detection_priv.h b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_tone_detection_priv.h similarity index 90% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_tone_detection_priv.h rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_tone_detection_priv.h index 9838877..fe58485 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_tone_detection_priv.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_tone_detection_priv.h @@ -2,7 +2,7 @@ File: oct6100_tone_detection_priv.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,9 +25,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 14 $ +$Octasic_Revision: 13 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -103,9 +103,4 @@ UINT32 Oct6100ApiIsSSTone( IN UINT32 f_ulToneEventNumber, OUT PBOOL f_fSSTone ); -UINT32 Oct6100ApiIs2100Tone( - IN OUT tPOCT6100_INSTANCE_API f_pApiInstance, - IN UINT32 f_ulToneEventNumber, - OUT PBOOL f_fIs2100Tone ); - #endif /* __OCT6100_TONE_DETECTION_PRIV_H__ */ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_tsi_cnct_priv.h b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_tsi_cnct_priv.h similarity index 95% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_tsi_cnct_priv.h rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_tsi_cnct_priv.h index 2524736..d6de6df 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_tsi_cnct_priv.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_tsi_cnct_priv.h @@ -2,7 +2,7 @@ File: oct6100_tsi_cnct_priv.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -25,9 +25,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 14 $ +$Octasic_Revision: 13 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_tsst_priv.h b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_tsst_priv.h similarity index 94% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_tsst_priv.h rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_tsst_priv.h index c68a142..07acfc7 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_tsst_priv.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_tsst_priv.h @@ -2,7 +2,7 @@ File: oct6100_tsst_priv.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -24,7 +24,7 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ $Octasic_Revision: 14 $ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_version.h b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_version.h similarity index 86% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_version.h rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_version.h index 23ad557..ccc6e55 100644 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_version.h +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapi/oct6100api/oct6100_version.h @@ -2,7 +2,7 @@ File: oct6100_version.h - Copyright (c) 2001-2007 Octasic Inc. + Copyright (c) 2001-2006 Octasic Inc. Description: @@ -23,9 +23,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR48 $ +$Octasic_Release: OCT612xAPI-01.00-PR43 $ -$Octasic_Revision: 51 $ +$Octasic_Revision: 46 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -34,6 +34,6 @@ $Octasic_Revision: 51 $ /* String version of the OCT6100 API.*/ -#define cOCT6100_API_VERSION "OCT6100API-01.00-PR48" +#define cOCT6100_API_VERSION "OCT6100API-01.00-PR43" #endif /* __OCT6100_VERSION_H__ */ diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapiw/oct6100_apiw_freebsd/oct6100api.mak b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_freebsd/oct6100api.mak similarity index 100% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapiw/oct6100_apiw_freebsd/oct6100api.mak rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_freebsd/oct6100api.mak diff --git a/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_adpcm_chan.d b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_adpcm_chan.d new file mode 100644 index 0000000..a9f884f --- /dev/null +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_adpcm_chan.d @@ -0,0 +1,26 @@ +$(OBJPath)oct6100_adpcm_chan.o: \ + ../../octdeviceapi/oct6100api/oct6100_api/oct6100_adpcm_chan.c \ + ../../include/octdef.h ../../include/octosdependant.h \ + ../../include/octtype.h ../../include/oct6100api/oct6100_defines.h \ + ../../include/octdef.h ../../include/oct6100api/oct6100_errors.h \ + ../../include/oct6100api/oct6100_apiud.h \ + ../../include/apilib/octapi_llman.h ../../include/octdef.h \ + ../../include/oct6100api/oct6100_tlv_inst.h \ + ../../include/oct6100api/oct6100_chip_open_inst.h \ + ../../include/oct6100api/oct6100_chip_stats_inst.h \ + ../../include/oct6100api/oct6100_interrupts_inst.h \ + ../../include/oct6100api/oct6100_channel_inst.h \ + ../../include/oct6100api/oct6100_remote_debug_inst.h \ + ../../include/oct6100api/oct6100_debug_inst.h \ + ../../include/oct6100api/oct6100_api_inst.h \ + ../../include/oct6100api/oct6100_adpcm_chan_inst.h \ + ../../include/oct6100api/oct6100_interrupts_pub.h \ + ../../include/oct6100api/oct6100_chip_open_pub.h \ + ../../include/oct6100api/oct6100_channel_pub.h \ + ../../include/oct6100api/oct6100_adpcm_chan_pub.h \ + ../../octdeviceapi/oct6100api/oct6100_chip_open_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_miscellaneous_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_memory_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_tsst_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_channel_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_adpcm_chan_priv.h diff --git a/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_channel.d b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_channel.d new file mode 100644 index 0000000..248afac --- /dev/null +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_channel.d @@ -0,0 +1,43 @@ +$(OBJPath)oct6100_channel.o: \ + ../../octdeviceapi/oct6100api/oct6100_api/oct6100_channel.c \ + ../../include/octdef.h ../../include/octosdependant.h \ + ../../include/octtype.h ../../include/oct6100api/oct6100_defines.h \ + ../../include/octdef.h ../../include/oct6100api/oct6100_errors.h \ + ../../include/oct6100api/oct6100_apiud.h \ + ../../include/apilib/octapi_llman.h ../../include/octdef.h \ + ../../include/oct6100api/oct6100_tlv_inst.h \ + ../../include/oct6100api/oct6100_chip_open_inst.h \ + ../../include/oct6100api/oct6100_chip_stats_inst.h \ + ../../include/oct6100api/oct6100_interrupts_inst.h \ + ../../include/oct6100api/oct6100_remote_debug_inst.h \ + ../../include/oct6100api/oct6100_debug_inst.h \ + ../../include/oct6100api/oct6100_api_inst.h \ + ../../include/oct6100api/oct6100_mixer_inst.h \ + ../../include/oct6100api/oct6100_tsi_cnct_inst.h \ + ../../include/oct6100api/oct6100_conf_bridge_inst.h \ + ../../include/oct6100api/oct6100_tone_detection_inst.h \ + ../../include/oct6100api/oct6100_phasing_tsst_inst.h \ + ../../include/oct6100api/oct6100_tsst_inst.h \ + ../../include/oct6100api/oct6100_channel_inst.h \ + ../../include/oct6100api/oct6100_interrupts_pub.h \ + ../../include/oct6100api/oct6100_chip_open_pub.h \ + ../../include/oct6100api/oct6100_tsi_cnct_pub.h \ + ../../include/oct6100api/oct6100_playout_buf_pub.h \ + ../../include/oct6100api/oct6100_phasing_tsst_pub.h \ + ../../include/oct6100api/oct6100_mixer_pub.h \ + ../../include/oct6100api/oct6100_conf_bridge_pub.h \ + ../../include/oct6100api/oct6100_tone_detection_pub.h \ + ../../include/oct6100api/oct6100_channel_pub.h \ + ../../include/oct6100api/oct6100_debug_pub.h \ + ../../octdeviceapi/oct6100api/oct6100_chip_open_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_miscellaneous_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_memory_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_tsst_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_mixer_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_phasing_tsst_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_tsi_cnct_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_playout_buf_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_conf_bridge_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_tone_detection_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_channel_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_debug_priv.h diff --git a/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_chip_open.d b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_chip_open.d new file mode 100644 index 0000000..e2f727b --- /dev/null +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_chip_open.d @@ -0,0 +1,55 @@ +$(OBJPath)oct6100_chip_open.o: \ + ../../octdeviceapi/oct6100api/oct6100_api/oct6100_chip_open.c \ + ../../include/octdef.h ../../include/octosdependant.h \ + ../../include/octtype.h ../../include/oct6100api/oct6100_defines.h \ + ../../include/octdef.h ../../include/oct6100api/oct6100_errors.h \ + ../../include/apilib/octapi_bt0.h ../../include/octdef.h \ + ../../include/apilib/octapi_llman.h \ + ../../include/oct6100api/oct6100_apiud.h \ + ../../include/oct6100api/oct6100_chip_stats_inst.h \ + ../../include/oct6100api/oct6100_tsi_cnct_inst.h \ + ../../include/oct6100api/oct6100_events_inst.h \ + ../../include/oct6100api/oct6100_conf_bridge_inst.h \ + ../../include/oct6100api/oct6100_playout_buf_inst.h \ + ../../include/oct6100api/oct6100_mixer_inst.h \ + ../../include/oct6100api/oct6100_channel_inst.h \ + ../../include/oct6100api/oct6100_adpcm_chan_inst.h \ + ../../include/oct6100api/oct6100_phasing_tsst_inst.h \ + ../../include/oct6100api/oct6100_interrupts_inst.h \ + ../../include/oct6100api/oct6100_remote_debug_inst.h \ + ../../include/oct6100api/oct6100_debug_inst.h \ + ../../include/oct6100api/oct6100_tlv_inst.h \ + ../../include/oct6100api/oct6100_chip_open_inst.h \ + ../../include/oct6100api/oct6100_api_inst.h \ + ../../include/oct6100api/oct6100_chip_stats_pub.h \ + ../../include/oct6100api/oct6100_interrupts_pub.h \ + ../../include/oct6100api/oct6100_tsi_cnct_pub.h \ + ../../include/oct6100api/oct6100_events_pub.h \ + ../../include/oct6100api/oct6100_conf_bridge_pub.h \ + ../../include/oct6100api/oct6100_playout_buf_pub.h \ + ../../include/oct6100api/oct6100_channel_pub.h \ + ../../include/oct6100api/oct6100_adpcm_chan_pub.h \ + ../../include/oct6100api/oct6100_phasing_tsst_pub.h \ + ../../include/oct6100api/oct6100_remote_debug_pub.h \ + ../../include/oct6100api/oct6100_chip_open_pub.h \ + ../../include/oct6100api/oct6100_mixer_pub.h \ + ../../include/oct6100api/oct6100_debug_pub.h \ + ../../octdeviceapi/oct6100api/oct6100_chip_open_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_interrupts_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_chip_stats_priv.h \ + ../../include/octrpc/rpc_protocol.h \ + ../../octdeviceapi/oct6100api/oct6100_remote_debug_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_miscellaneous_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_memory_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_tsst_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_tsi_cnct_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_mixer_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_events_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_conf_bridge_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_playout_buf_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_channel_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_adpcm_chan_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_phasing_tsst_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_tlv_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_debug_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_version.h diff --git a/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_chip_stats.d b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_chip_stats.d new file mode 100644 index 0000000..e8b11ec --- /dev/null +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_chip_stats.d @@ -0,0 +1,21 @@ +$(OBJPath)oct6100_chip_stats.o: \ + ../../octdeviceapi/oct6100api/oct6100_api/oct6100_chip_stats.c \ + ../../include/octdef.h ../../include/octosdependant.h \ + ../../include/octtype.h ../../include/oct6100api/oct6100_defines.h \ + ../../include/octdef.h ../../include/oct6100api/oct6100_errors.h \ + ../../include/oct6100api/oct6100_apiud.h \ + ../../include/apilib/octapi_llman.h ../../include/octdef.h \ + ../../include/oct6100api/oct6100_tlv_inst.h \ + ../../include/oct6100api/oct6100_chip_open_inst.h \ + ../../include/oct6100api/oct6100_chip_stats_inst.h \ + ../../include/oct6100api/oct6100_interrupts_inst.h \ + ../../include/oct6100api/oct6100_remote_debug_inst.h \ + ../../include/oct6100api/oct6100_debug_inst.h \ + ../../include/oct6100api/oct6100_api_inst.h \ + ../../include/oct6100api/oct6100_interrupts_pub.h \ + ../../include/oct6100api/oct6100_chip_open_pub.h \ + ../../include/oct6100api/oct6100_channel_pub.h \ + ../../include/oct6100api/oct6100_chip_stats_pub.h \ + ../../octdeviceapi/oct6100api/oct6100_chip_open_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_chip_stats_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_miscellaneous_priv.h diff --git a/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_conf_bridge.d b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_conf_bridge.d new file mode 100644 index 0000000..bec524a --- /dev/null +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_conf_bridge.d @@ -0,0 +1,29 @@ +$(OBJPath)oct6100_conf_bridge.o: \ + ../../octdeviceapi/oct6100api/oct6100_api/oct6100_conf_bridge.c \ + ../../include/octdef.h ../../include/octosdependant.h \ + ../../include/octtype.h ../../include/oct6100api/oct6100_defines.h \ + ../../include/octdef.h ../../include/oct6100api/oct6100_errors.h \ + ../../include/oct6100api/oct6100_apiud.h \ + ../../include/apilib/octapi_llman.h ../../include/octdef.h \ + ../../include/oct6100api/oct6100_tlv_inst.h \ + ../../include/oct6100api/oct6100_chip_open_inst.h \ + ../../include/oct6100api/oct6100_chip_stats_inst.h \ + ../../include/oct6100api/oct6100_interrupts_inst.h \ + ../../include/oct6100api/oct6100_remote_debug_inst.h \ + ../../include/oct6100api/oct6100_debug_inst.h \ + ../../include/oct6100api/oct6100_api_inst.h \ + ../../include/oct6100api/oct6100_channel_inst.h \ + ../../include/oct6100api/oct6100_mixer_inst.h \ + ../../include/oct6100api/oct6100_conf_bridge_inst.h \ + ../../include/oct6100api/oct6100_interrupts_pub.h \ + ../../include/oct6100api/oct6100_chip_open_pub.h \ + ../../include/oct6100api/oct6100_channel_pub.h \ + ../../include/oct6100api/oct6100_mixer_pub.h \ + ../../include/oct6100api/oct6100_conf_bridge_pub.h \ + ../../octdeviceapi/oct6100api/oct6100_chip_open_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_miscellaneous_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_memory_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_tsst_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_channel_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_mixer_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_conf_bridge_priv.h diff --git a/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_debug.d b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_debug.d new file mode 100644 index 0000000..d33f1c9 --- /dev/null +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_debug.d @@ -0,0 +1,24 @@ +$(OBJPath)oct6100_debug.o: \ + ../../octdeviceapi/oct6100api/oct6100_api/oct6100_debug.c \ + ../../include/octdef.h ../../include/octosdependant.h \ + ../../include/octtype.h ../../include/oct6100api/oct6100_defines.h \ + ../../include/octdef.h ../../include/oct6100api/oct6100_errors.h \ + ../../include/oct6100api/oct6100_apiud.h \ + ../../include/oct6100api/oct6100_tlv_inst.h \ + ../../include/oct6100api/oct6100_chip_open_inst.h \ + ../../include/oct6100api/oct6100_chip_stats_inst.h \ + ../../include/oct6100api/oct6100_interrupts_inst.h \ + ../../include/oct6100api/oct6100_remote_debug_inst.h \ + ../../include/oct6100api/oct6100_debug_inst.h \ + ../../include/oct6100api/oct6100_api_inst.h \ + ../../include/oct6100api/oct6100_channel_inst.h \ + ../../include/oct6100api/oct6100_interrupts_pub.h \ + ../../include/oct6100api/oct6100_chip_open_pub.h \ + ../../include/oct6100api/oct6100_channel_pub.h \ + ../../include/oct6100api/oct6100_debug_pub.h \ + ../../octdeviceapi/oct6100api/oct6100_chip_open_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_channel_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_miscellaneous_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_memory_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_debug_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_version.h diff --git a/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_events.d b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_events.d new file mode 100644 index 0000000..73aecbd --- /dev/null +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_events.d @@ -0,0 +1,30 @@ +$(OBJPath)oct6100_events.o: \ + ../../octdeviceapi/oct6100api/oct6100_api/oct6100_events.c \ + ../../include/octdef.h ../../include/octosdependant.h \ + ../../include/octtype.h ../../include/oct6100api/oct6100_defines.h \ + ../../include/octdef.h ../../include/oct6100api/oct6100_errors.h \ + ../../include/oct6100api/oct6100_apiud.h \ + ../../include/apilib/octapi_llman.h ../../include/octdef.h \ + ../../include/oct6100api/oct6100_tlv_inst.h \ + ../../include/oct6100api/oct6100_chip_open_inst.h \ + ../../include/oct6100api/oct6100_chip_stats_inst.h \ + ../../include/oct6100api/oct6100_interrupts_inst.h \ + ../../include/oct6100api/oct6100_remote_debug_inst.h \ + ../../include/oct6100api/oct6100_debug_inst.h \ + ../../include/oct6100api/oct6100_api_inst.h \ + ../../include/oct6100api/oct6100_channel_inst.h \ + ../../include/oct6100api/oct6100_events_inst.h \ + ../../include/oct6100api/oct6100_tone_detection_inst.h \ + ../../include/oct6100api/oct6100_playout_buf_inst.h \ + ../../include/oct6100api/oct6100_interrupts_pub.h \ + ../../include/oct6100api/oct6100_chip_open_pub.h \ + ../../include/oct6100api/oct6100_channel_pub.h \ + ../../include/oct6100api/oct6100_events_pub.h \ + ../../include/oct6100api/oct6100_tone_detection_pub.h \ + ../../include/oct6100api/oct6100_playout_buf_pub.h \ + ../../octdeviceapi/oct6100api/oct6100_chip_open_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_miscellaneous_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_channel_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_events_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_tone_detection_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_playout_buf_priv.h diff --git a/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_interrupts.d b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_interrupts.d new file mode 100644 index 0000000..03e8fc2 --- /dev/null +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_interrupts.d @@ -0,0 +1,21 @@ +$(OBJPath)oct6100_interrupts.o: \ + ../../octdeviceapi/oct6100api/oct6100_api/oct6100_interrupts.c \ + ../../include/octdef.h ../../include/octosdependant.h \ + ../../include/octtype.h ../../include/oct6100api/oct6100_defines.h \ + ../../include/octdef.h ../../include/oct6100api/oct6100_errors.h \ + ../../include/oct6100api/oct6100_apiud.h \ + ../../include/oct6100api/oct6100_tlv_inst.h \ + ../../include/oct6100api/oct6100_chip_open_inst.h \ + ../../include/oct6100api/oct6100_chip_stats_inst.h \ + ../../include/oct6100api/oct6100_interrupts_inst.h \ + ../../include/oct6100api/oct6100_remote_debug_inst.h \ + ../../include/oct6100api/oct6100_debug_inst.h \ + ../../include/oct6100api/oct6100_api_inst.h \ + ../../include/oct6100api/oct6100_interrupts_pub.h \ + ../../include/oct6100api/oct6100_chip_open_pub.h \ + ../../include/oct6100api/oct6100_events_pub.h \ + ../../include/oct6100api/oct6100_channel_pub.h \ + ../../octdeviceapi/oct6100api/oct6100_chip_open_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_miscellaneous_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_events_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_interrupts_priv.h diff --git a/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_mask_interrupts.d b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_mask_interrupts.d new file mode 100644 index 0000000..c732632 --- /dev/null +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_mask_interrupts.d @@ -0,0 +1,7 @@ +$(OBJPath)oct6100_mask_interrupts.o: \ + ../../octdeviceapi/oct6100api/oct6100_apimi/oct6100_mask_interrupts.c \ + ../../include/oct6100api/oct6100_apimi.h ../../include/octdef.h \ + ../../include/octosdependant.h ../../include/octtype.h \ + ../../include/oct6100api/oct6100_apiud.h \ + ../../include/oct6100api/oct6100_errors.h \ + ../../include/oct6100api/oct6100_defines.h diff --git a/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_memory.d b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_memory.d new file mode 100644 index 0000000..c714704 --- /dev/null +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_memory.d @@ -0,0 +1,20 @@ +$(OBJPath)oct6100_memory.o: \ + ../../octdeviceapi/oct6100api/oct6100_api/oct6100_memory.c \ + ../../include/octdef.h ../../include/octosdependant.h \ + ../../include/octtype.h ../../include/oct6100api/oct6100_defines.h \ + ../../include/octdef.h ../../include/oct6100api/oct6100_errors.h \ + ../../include/apilib/octapi_llman.h ../../include/octdef.h \ + ../../include/oct6100api/oct6100_apiud.h \ + ../../include/oct6100api/oct6100_tlv_inst.h \ + ../../include/oct6100api/oct6100_chip_open_inst.h \ + ../../include/oct6100api/oct6100_chip_stats_inst.h \ + ../../include/oct6100api/oct6100_interrupts_inst.h \ + ../../include/oct6100api/oct6100_remote_debug_inst.h \ + ../../include/oct6100api/oct6100_debug_inst.h \ + ../../include/oct6100api/oct6100_playout_buf_inst.h \ + ../../include/oct6100api/oct6100_api_inst.h \ + ../../include/oct6100api/oct6100_interrupts_pub.h \ + ../../include/oct6100api/oct6100_channel_pub.h \ + ../../include/oct6100api/oct6100_chip_open_pub.h \ + ../../octdeviceapi/oct6100api/oct6100_chip_open_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_memory_priv.h diff --git a/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_miscellaneous.d b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_miscellaneous.d new file mode 100644 index 0000000..bc6e690 --- /dev/null +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_miscellaneous.d @@ -0,0 +1,21 @@ +$(OBJPath)oct6100_miscellaneous.o: \ + ../../octdeviceapi/oct6100api/oct6100_api/oct6100_miscellaneous.c \ + ../../include/octdef.h ../../include/octosdependant.h \ + ../../include/octtype.h ../../include/oct6100api/oct6100_defines.h \ + ../../include/octdef.h ../../include/oct6100api/oct6100_errors.h \ + ../../include/apilib/octapi_largmath.h ../../include/octdef.h \ + ../../include/oct6100api/oct6100_apiud.h \ + ../../include/oct6100api/oct6100_tlv_inst.h \ + ../../include/oct6100api/oct6100_chip_open_inst.h \ + ../../include/oct6100api/oct6100_chip_stats_inst.h \ + ../../include/oct6100api/oct6100_interrupts_inst.h \ + ../../include/oct6100api/oct6100_remote_debug_inst.h \ + ../../include/oct6100api/oct6100_debug_inst.h \ + ../../include/oct6100api/oct6100_api_inst.h \ + ../../include/oct6100api/oct6100_channel_inst.h \ + ../../include/oct6100api/oct6100_interrupts_pub.h \ + ../../include/oct6100api/oct6100_chip_open_pub.h \ + ../../include/oct6100api/oct6100_channel_pub.h \ + ../../octdeviceapi/oct6100api/oct6100_chip_open_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_channel_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_miscellaneous_priv.h diff --git a/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_mixer.d b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_mixer.d new file mode 100644 index 0000000..af7110e --- /dev/null +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_mixer.d @@ -0,0 +1,24 @@ +$(OBJPath)oct6100_mixer.o: \ + ../../octdeviceapi/oct6100api/oct6100_api/oct6100_mixer.c \ + ../../include/octdef.h ../../include/octosdependant.h \ + ../../include/octtype.h ../../include/oct6100api/oct6100_defines.h \ + ../../include/octdef.h ../../include/oct6100api/oct6100_errors.h \ + ../../include/apilib/octapi_llman.h ../../include/octdef.h \ + ../../include/oct6100api/oct6100_apiud.h \ + ../../include/oct6100api/oct6100_tlv_inst.h \ + ../../include/oct6100api/oct6100_chip_open_inst.h \ + ../../include/oct6100api/oct6100_chip_stats_inst.h \ + ../../include/oct6100api/oct6100_interrupts_inst.h \ + ../../include/oct6100api/oct6100_remote_debug_inst.h \ + ../../include/oct6100api/oct6100_debug_inst.h \ + ../../include/oct6100api/oct6100_api_inst.h \ + ../../include/oct6100api/oct6100_channel_inst.h \ + ../../include/oct6100api/oct6100_mixer_inst.h \ + ../../include/oct6100api/oct6100_interrupts_pub.h \ + ../../include/oct6100api/oct6100_chip_open_pub.h \ + ../../include/oct6100api/oct6100_channel_pub.h \ + ../../include/oct6100api/oct6100_mixer_pub.h \ + ../../octdeviceapi/oct6100api/oct6100_chip_open_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_miscellaneous_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_channel_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_mixer_priv.h diff --git a/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_phasing_tsst.d b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_phasing_tsst.d new file mode 100644 index 0000000..4c9aa12 --- /dev/null +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_phasing_tsst.d @@ -0,0 +1,24 @@ +$(OBJPath)oct6100_phasing_tsst.o: \ + ../../octdeviceapi/oct6100api/oct6100_api/oct6100_phasing_tsst.c \ + ../../include/octdef.h ../../include/octosdependant.h \ + ../../include/octtype.h ../../include/oct6100api/oct6100_defines.h \ + ../../include/octdef.h ../../include/oct6100api/oct6100_errors.h \ + ../../include/oct6100api/oct6100_apiud.h \ + ../../include/apilib/octapi_llman.h ../../include/octdef.h \ + ../../include/oct6100api/oct6100_tlv_inst.h \ + ../../include/oct6100api/oct6100_chip_open_inst.h \ + ../../include/oct6100api/oct6100_chip_stats_inst.h \ + ../../include/oct6100api/oct6100_interrupts_inst.h \ + ../../include/oct6100api/oct6100_remote_debug_inst.h \ + ../../include/oct6100api/oct6100_debug_inst.h \ + ../../include/oct6100api/oct6100_api_inst.h \ + ../../include/oct6100api/oct6100_phasing_tsst_inst.h \ + ../../include/oct6100api/oct6100_interrupts_pub.h \ + ../../include/oct6100api/oct6100_chip_open_pub.h \ + ../../include/oct6100api/oct6100_channel_pub.h \ + ../../include/oct6100api/oct6100_phasing_tsst_pub.h \ + ../../octdeviceapi/oct6100api/oct6100_chip_open_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_miscellaneous_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_memory_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_tsst_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_phasing_tsst_priv.h diff --git a/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_playout_buf.d b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_playout_buf.d new file mode 100644 index 0000000..60a2381 --- /dev/null +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_playout_buf.d @@ -0,0 +1,27 @@ +$(OBJPath)oct6100_playout_buf.o: \ + ../../octdeviceapi/oct6100api/oct6100_api/oct6100_playout_buf.c \ + ../../include/octdef.h ../../include/octosdependant.h \ + ../../include/octtype.h ../../include/oct6100api/oct6100_defines.h \ + ../../include/octdef.h ../../include/oct6100api/oct6100_errors.h \ + ../../include/oct6100api/oct6100_apiud.h \ + ../../include/apilib/octapi_llman.h ../../include/octdef.h \ + ../../include/oct6100api/oct6100_tlv_inst.h \ + ../../include/oct6100api/oct6100_chip_open_inst.h \ + ../../include/oct6100api/oct6100_chip_stats_inst.h \ + ../../include/oct6100api/oct6100_interrupts_inst.h \ + ../../include/oct6100api/oct6100_remote_debug_inst.h \ + ../../include/oct6100api/oct6100_debug_inst.h \ + ../../include/oct6100api/oct6100_api_inst.h \ + ../../include/oct6100api/oct6100_channel_inst.h \ + ../../include/oct6100api/oct6100_playout_buf_inst.h \ + ../../include/oct6100api/oct6100_interrupts_pub.h \ + ../../include/oct6100api/oct6100_chip_open_pub.h \ + ../../include/oct6100api/oct6100_channel_pub.h \ + ../../include/oct6100api/oct6100_events_pub.h \ + ../../include/oct6100api/oct6100_playout_buf_pub.h \ + ../../octdeviceapi/oct6100api/oct6100_chip_open_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_miscellaneous_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_memory_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_channel_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_events_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_playout_buf_priv.h diff --git a/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_remote_debug.d b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_remote_debug.d new file mode 100644 index 0000000..5984808 --- /dev/null +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_remote_debug.d @@ -0,0 +1,28 @@ +$(OBJPath)oct6100_remote_debug.o: \ + ../../octdeviceapi/oct6100api/oct6100_api/oct6100_remote_debug.c \ + ../../include/octdef.h ../../include/octosdependant.h \ + ../../include/octtype.h ../../include/oct6100api/oct6100_defines.h \ + ../../include/octdef.h ../../include/oct6100api/oct6100_errors.h \ + ../../include/apilib/octapi_bt0.h ../../include/octdef.h \ + ../../include/apilib/octapi_largmath.h \ + ../../include/oct6100api/oct6100_apiud.h \ + ../../include/oct6100api/oct6100_tlv_inst.h \ + ../../include/oct6100api/oct6100_chip_open_inst.h \ + ../../include/oct6100api/oct6100_chip_stats_inst.h \ + ../../include/oct6100api/oct6100_interrupts_inst.h \ + ../../include/oct6100api/oct6100_channel_inst.h \ + ../../include/oct6100api/oct6100_remote_debug_inst.h \ + ../../include/oct6100api/oct6100_debug_inst.h \ + ../../include/oct6100api/oct6100_api_inst.h \ + ../../include/oct6100api/oct6100_interrupts_pub.h \ + ../../include/oct6100api/oct6100_chip_open_pub.h \ + ../../include/oct6100api/oct6100_debug_pub.h \ + ../../include/oct6100api/oct6100_channel_pub.h \ + ../../include/oct6100api/oct6100_remote_debug_pub.h \ + ../../include/octrpc/rpc_protocol.h \ + ../../include/octrpc/oct6100_rpc_protocol.h \ + ../../octdeviceapi/oct6100api/oct6100_miscellaneous_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_chip_open_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_channel_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_debug_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_remote_debug_priv.h diff --git a/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_tlv.d b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_tlv.d new file mode 100644 index 0000000..0abe5be --- /dev/null +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_tlv.d @@ -0,0 +1,18 @@ +$(OBJPath)oct6100_tlv.o: ../../octdeviceapi/oct6100api/oct6100_api/oct6100_tlv.c \ + ../../include/octdef.h ../../include/octosdependant.h \ + ../../include/octtype.h ../../include/oct6100api/oct6100_defines.h \ + ../../include/octdef.h ../../include/oct6100api/oct6100_errors.h \ + ../../include/oct6100api/oct6100_apiud.h \ + ../../include/oct6100api/oct6100_tlv_inst.h \ + ../../include/oct6100api/oct6100_chip_open_inst.h \ + ../../include/oct6100api/oct6100_chip_stats_inst.h \ + ../../include/oct6100api/oct6100_interrupts_inst.h \ + ../../include/oct6100api/oct6100_remote_debug_inst.h \ + ../../include/oct6100api/oct6100_debug_inst.h \ + ../../include/oct6100api/oct6100_api_inst.h \ + ../../include/oct6100api/oct6100_interrupts_pub.h \ + ../../include/oct6100api/oct6100_channel_pub.h \ + ../../include/oct6100api/oct6100_chip_open_pub.h \ + ../../octdeviceapi/oct6100api/oct6100_chip_open_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_miscellaneous_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_tlv_priv.h diff --git a/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_tone_detection.d b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_tone_detection.d new file mode 100644 index 0000000..5c7b62f --- /dev/null +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_tone_detection.d @@ -0,0 +1,28 @@ +$(OBJPath)oct6100_tone_detection.o: \ + ../../octdeviceapi/oct6100api/oct6100_api/oct6100_tone_detection.c \ + ../../include/octdef.h ../../include/octosdependant.h \ + ../../include/octtype.h ../../include/oct6100api/oct6100_defines.h \ + ../../include/octdef.h ../../include/oct6100api/oct6100_errors.h \ + ../../include/oct6100api/oct6100_apiud.h \ + ../../include/apilib/octapi_llman.h ../../include/octdef.h \ + ../../include/oct6100api/oct6100_tlv_inst.h \ + ../../include/oct6100api/oct6100_chip_open_inst.h \ + ../../include/oct6100api/oct6100_chip_stats_inst.h \ + ../../include/oct6100api/oct6100_interrupts_inst.h \ + ../../include/oct6100api/oct6100_remote_debug_inst.h \ + ../../include/oct6100api/oct6100_debug_inst.h \ + ../../include/oct6100api/oct6100_api_inst.h \ + ../../include/oct6100api/oct6100_channel_inst.h \ + ../../include/oct6100api/oct6100_tone_detection_inst.h \ + ../../include/oct6100api/oct6100_events_inst.h \ + ../../include/oct6100api/oct6100_interrupts_pub.h \ + ../../include/oct6100api/oct6100_chip_open_pub.h \ + ../../include/oct6100api/oct6100_channel_pub.h \ + ../../include/oct6100api/oct6100_tone_detection_pub.h \ + ../../include/oct6100api/oct6100_events_pub.h \ + ../../octdeviceapi/oct6100api/oct6100_chip_open_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_miscellaneous_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_memory_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_channel_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_tone_detection_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_events_priv.h diff --git a/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_tsi_cnct.d b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_tsi_cnct.d new file mode 100644 index 0000000..647f156 --- /dev/null +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_tsi_cnct.d @@ -0,0 +1,26 @@ +$(OBJPath)oct6100_tsi_cnct.o: \ + ../../octdeviceapi/oct6100api/oct6100_api/oct6100_tsi_cnct.c \ + ../../include/octdef.h ../../include/octosdependant.h \ + ../../include/octtype.h ../../include/oct6100api/oct6100_defines.h \ + ../../include/octdef.h ../../include/oct6100api/oct6100_errors.h \ + ../../include/oct6100api/oct6100_apiud.h \ + ../../include/apilib/octapi_llman.h ../../include/octdef.h \ + ../../include/oct6100api/oct6100_tlv_inst.h \ + ../../include/oct6100api/oct6100_chip_open_inst.h \ + ../../include/oct6100api/oct6100_chip_stats_inst.h \ + ../../include/oct6100api/oct6100_interrupts_inst.h \ + ../../include/oct6100api/oct6100_channel_inst.h \ + ../../include/oct6100api/oct6100_remote_debug_inst.h \ + ../../include/oct6100api/oct6100_debug_inst.h \ + ../../include/oct6100api/oct6100_api_inst.h \ + ../../include/oct6100api/oct6100_tsi_cnct_inst.h \ + ../../include/oct6100api/oct6100_interrupts_pub.h \ + ../../include/oct6100api/oct6100_chip_open_pub.h \ + ../../include/oct6100api/oct6100_channel_pub.h \ + ../../include/oct6100api/oct6100_tsi_cnct_pub.h \ + ../../octdeviceapi/oct6100api/oct6100_chip_open_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_miscellaneous_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_memory_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_tsst_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_channel_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_tsi_cnct_priv.h diff --git a/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_tsst.d b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_tsst.d new file mode 100644 index 0000000..a666a1e --- /dev/null +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_tsst.d @@ -0,0 +1,19 @@ +$(OBJPath)oct6100_tsst.o: ../../octdeviceapi/oct6100api/oct6100_api/oct6100_tsst.c \ + ../../include/octdef.h ../../include/octosdependant.h \ + ../../include/octtype.h ../../include/oct6100api/oct6100_defines.h \ + ../../include/octdef.h ../../include/oct6100api/oct6100_errors.h \ + ../../include/apilib/octapi_llman.h ../../include/octdef.h \ + ../../include/oct6100api/oct6100_apiud.h \ + ../../include/oct6100api/oct6100_tlv_inst.h \ + ../../include/oct6100api/oct6100_chip_open_inst.h \ + ../../include/oct6100api/oct6100_chip_stats_inst.h \ + ../../include/oct6100api/oct6100_interrupts_inst.h \ + ../../include/oct6100api/oct6100_remote_debug_inst.h \ + ../../include/oct6100api/oct6100_debug_inst.h \ + ../../include/oct6100api/oct6100_api_inst.h \ + ../../include/oct6100api/oct6100_tsst_inst.h \ + ../../include/oct6100api/oct6100_interrupts_pub.h \ + ../../include/oct6100api/oct6100_channel_pub.h \ + ../../include/oct6100api/oct6100_chip_open_pub.h \ + ../../octdeviceapi/oct6100api/oct6100_chip_open_priv.h \ + ../../octdeviceapi/oct6100api/oct6100_tsst_priv.h diff --git a/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_user.d b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_user.d new file mode 100644 index 0000000..8d92c3d --- /dev/null +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100_user.d @@ -0,0 +1,40 @@ +$(OBJPath)oct6100_user.o: ../../octdeviceapi/oct6100api/oct6100_api/oct6100_user.c \ + ../../include/oct6100api/oct6100_apiud.h ../../include/octdef.h \ + ../../include/octosdependant.h ../../include/octtype.h \ + ../../include/oct6100api/oct6100_errors.h \ + ../../include/oct6100api/oct6100_api.h \ + ../../include/oct6100api/oct6100_defines.h \ + ../../include/oct6100api/oct6100_errors.h \ + ../../include/oct6100api/oct6100_apiud.h \ + ../../include/oct6100api/oct6100_tlv_inst.h \ + ../../include/oct6100api/oct6100_chip_stats_inst.h \ + ../../include/oct6100api/oct6100_tsi_cnct_inst.h \ + ../../include/oct6100api/oct6100_mixer_inst.h \ + ../../include/oct6100api/oct6100_events_inst.h \ + ../../include/oct6100api/oct6100_tone_detection_inst.h \ + ../../include/oct6100api/oct6100_conf_bridge_inst.h \ + ../../include/oct6100api/oct6100_playout_buf_inst.h \ + ../../include/oct6100api/oct6100_adpcm_chan_inst.h \ + ../../include/oct6100api/oct6100_phasing_tsst_inst.h \ + ../../include/oct6100api/oct6100_channel_inst.h \ + ../../include/oct6100api/oct6100_interrupts_inst.h \ + ../../include/oct6100api/oct6100_remote_debug_inst.h \ + ../../include/oct6100api/oct6100_debug_inst.h \ + ../../include/oct6100api/oct6100_chip_open_inst.h \ + ../../include/oct6100api/oct6100_api_inst.h \ + ../../include/oct6100api/oct6100_interrupts_pub.h \ + ../../include/oct6100api/oct6100_tsi_cnct_pub.h \ + ../../include/oct6100api/oct6100_events_pub.h \ + ../../include/oct6100api/oct6100_tone_detection_pub.h \ + ../../include/oct6100api/oct6100_mixer_pub.h \ + ../../include/oct6100api/oct6100_conf_bridge_pub.h \ + ../../include/oct6100api/oct6100_playout_buf_pub.h \ + ../../include/oct6100api/oct6100_channel_pub.h \ + ../../include/oct6100api/oct6100_remote_debug_pub.h \ + ../../include/oct6100api/oct6100_debug_pub.h \ + ../../include/oct6100api/oct6100_chip_open_pub.h \ + ../../include/oct6100api/oct6100_chip_stats_pub.h \ + ../../include/oct6100api/oct6100_adpcm_chan_pub.h \ + ../../include/oct6100api/oct6100_phasing_tsst_pub.h \ + ../../octdeviceapi/oct6100api/oct6100_version.h ../../../wanec_iface.h \ + ../../include/oct6100api/oct6100_api.h diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapiw/oct6100_apiw_linux/oct6100api.mak b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100api.mak similarity index 100% rename from patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapiw/oct6100_apiw_linux/oct6100api.mak rename to patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/oct6100api.mak diff --git a/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/octapi_bt0.d b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/octapi_bt0.d new file mode 100644 index 0000000..61e4754 --- /dev/null +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/octapi_bt0.d @@ -0,0 +1,4 @@ +$(OBJPath)octapi_bt0.o: ../../apilib/bt/octapi_bt0.c \ + ../../include/apilib/octapi_bt0.h ../../include/octdef.h \ + ../../include/octosdependant.h ../../include/octtype.h \ + ../../apilib/bt/octapi_bt0_private.h ../../include/octdef.h diff --git a/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/octapi_largmath.d b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/octapi_largmath.d new file mode 100644 index 0000000..1d76336 --- /dev/null +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/octapi_largmath.d @@ -0,0 +1,3 @@ +$(OBJPath)octapi_largmath.o: ../../apilib/largmath/octapi_largmath.c \ + ../../include/apilib/octapi_largmath.h ../../include/octdef.h \ + ../../include/octosdependant.h ../../include/octtype.h diff --git a/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/octapi_llman.d b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/octapi_llman.d new file mode 100644 index 0000000..c1a1ea9 --- /dev/null +++ b/patches/kdrivers/wanec/oct6100_api.PR43/octdeviceapiw/oct6100_apiw_linux/octapi_llman.d @@ -0,0 +1,5 @@ +$(OBJPath)octapi_llman.o: ../../apilib/llman/octapi_llman.c \ + ../../apilib/llman/octapi_llman_private.h ../../include/octdef.h \ + ../../include/octosdependant.h ../../include/octtype.h \ + ../../include/apilib/octapi_llman.h ../../include/octdef.h \ + ../../include/apilib/octapi_largmath.h diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/GNU General Public Licence.txt b/patches/kdrivers/wanec/oct6100_api.PR48/GNU General Public Licence.txt deleted file mode 100644 index b860267..0000000 --- a/patches/kdrivers/wanec/oct6100_api.PR48/GNU General Public Licence.txt +++ /dev/null @@ -1,340 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, 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 software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, 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 redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -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 give any other recipients of the Program a copy of this License -along with the Program. - -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 Program or any portion -of it, thus forming a work based on the Program, 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) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -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 Program, 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 Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) 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; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, 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 executable. 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. - -If distribution of executable or 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 counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program 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. - - 5. 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 Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program 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. - - 7. 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 Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program 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 Program. - -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. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program 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. - - 9. The Free Software Foundation may publish revised and/or new versions -of the 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 Program -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 Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, 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 - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "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 PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. 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 PROGRAM 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 PROGRAM (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 PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. 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 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/ReleaseNotes.txt b/patches/kdrivers/wanec/oct6100_api.PR48/ReleaseNotes.txt deleted file mode 100644 index 4c1f14f..0000000 --- a/patches/kdrivers/wanec/oct6100_api.PR48/ReleaseNotes.txt +++ /dev/null @@ -1,2411 +0,0 @@ -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR48 - -Date: July 6, 2007 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - -1.0 BACKWARD COMPATIBILITY NOTICE - - 1.1 ALL PRODUCTS - Modified function: Oct6100ChipOpen - Added parameter: fEnable2100StopEvent - - Modified function: Oct6100ChipGetImageInfo - Removed parameters: fAlcNoiseBleedOutTime - fResetAlcOnTones - - Modified functions: Oct6100ChannelOpen - Oct6100ChannelModify - Oct6100ChannelGetStats - Removed parameters: fResetRinAlcOnTones - fResetSoutAlcOnTones - ulAlcNoiseBleedOutTime - - Stop events on 2100Hz are only supported from firmware 01.06.00. - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -PR-4769 : Law conversion is now possible on bi-directional channel. -PR-5037 : The only ulMemClkFreq value supported is now 133MHz. -PR-5141 : Added fEnable2100StopEvent functionality. -PR-5105 : Added reset of the old data when changing the selected debug channel. -PR-5168 : Interrupt pin active after enabling H.100 interrupt. - -PR-5210 : AlcNoiseBleedOutTime and ResetAlcOnTones features are no more supported. - -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -PR-5055 : Short glitch may be present at the first opening of a channel. -PR-5071 : Should not use a law conversion resource when a TSST is unassigned. The - law conversion resource blocked the use of the conferencing feature. -PR-5101 : lRoutNoiseReductionLevelGainDb is not set properly when modifying a channel. -PR-5181 : Interrupts must be cleared in the chip open function. -PR-5194 : Output is not silence when channel is muted. -PR-5231 : NLP not disabled when a channel is closed. -PR-5232 : Muted ports not reset when closing a channel. - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -NONE - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -PR-2379 : Problem with the cOCT6100_MIXING_0_DB mode - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR47 - -Date: December 18, 2006 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - -1.0 BACKWARD COMPATIBILITY NOTICE - - 1.1 ALL PRODUCTS - Modified function: Oct6100ChipGetImageInfo - Added parameter: fRoutNoiseReductionLevel - - Modified functions: Oct6100ChannelOpen - Oct6100ChannelModify - Oct6100ChannelGetStats - Added parameters: lRoutNoiseReductionLevelGainDb - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -PR-5011 : Added configurable ROUT noise reduction attenuation level. - -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -PR-4853 : Fatal_5 may be generated if accesses to the chip are slow. - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -NONE - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -PR-2379 : Problem with the cOCT6100_MIXING_0_DB mode - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR46 - -Date: November 10, 2006 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - -1.0 BACKWARD COMPATIBILITY NOTICE - - 1.1 ALL PRODUCTS - New function: Oct6100ApiGetCapacityPins - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -PR-4854 : Added function to read capacity pin values - -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -NONE - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -NONE - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -PR-2379 : Problem with the cOCT6100_MIXING_0_DB mode - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR45 - -Date: October 17, 2006 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - -1.0 BACKWARD COMPATIBILITY NOTICE - - 1.1 ALL PRODUCTS - Modified function: Oct6100ChipOpen - Added parameter: ulProductionBistMode - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -PR-4854 : Added support of a short production BIST -PR-4837 : Added 2100Hz, 1100Hz and SS5 tone events capture before tone detection - enabling. - -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -NONE - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -NONE - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -PR-2379 : Problem with the cOCT6100_MIXING_0_DB mode - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR44 - -Date: October 10, 2006 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - -1.0 BACKWARD COMPATIBILITY NOTICE - -NONE - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -PR-4842 : Disabled SCN RX SID process. -PR-4700 : Enhanced external memory data pins BIST. - -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -NONE - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -NONE - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -PR-2379 : Problem with the cOCT6100_MIXING_0_DB mode - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR43 - -Date: July 25, 2006 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - -1.0 BACKWARD COMPATIBILITY NOTICE - -NONE - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -NONE - -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -PR-4617 : INT8 defined as char causes problems in some architectures. -PR-4633 : ALC not reset when a channel is closed and reopened. - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -NONE - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -PR-2379 : Problem with the cOCT6100_MIXING_0_DB mode - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR42 - -Date: July 17, 2006 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - -1.0 BACKWARD COMPATIBILITY NOTICE - -NONE - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -NONE - -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -PR-4627 : Disabling or closing debug channel causes TDM data corruption on - another single channel. - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -NONE - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -PR-2379 : Problem with the cOCT6100_MIXING_0_DB mode - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR41 - -Date: June 01, 2006 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - -1.0 BACKWARD COMPATIBILITY NOTICE - - 1.1 ALL PRODUCTS - Modified function: Oct6100DebugGetData - Added parameter: ulGetDataContent - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -PR-4346: Added new parameter ulGetDataContent to function Oct6100DebugGetData - -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -PR-3004 : Compiler warnings in 64-bit operating systems. -PR-4366 : Law conversion not working when Rin tone removal activated. -PR-4375 : Possible infinite loop in Oct6100ChipOpen function. -PR-4512 : Debug channel TSI resource is not released when the channel is closed. - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -NONE - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -PR-2379 : Problem with the cOCT6100_MIXING_0_DB mode - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR40 - -Date: March 20, 2006 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - -1.0 BACKWARD COMPATIBILITY NOTICE - -NONE - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -PR-3903: UPCLK freq 66.66MHz is no longer supported. -PR-4085: NLP off and Comfort Noise off not allowed when echo operation mode is - set to speech recognition. -PR-4284: Must allow modification of the VQE Activation Delay even if Tone - Disabler is not active. -PR-4305: Debug functions not allowed when echo operation mode is set to power - down. -PR-4340: Oct6100ChannelOpen ulPhase must be capped to a minimum of 1. - -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -PR-4301: ulMaxBiDirChannels is not correctly checked in API. -PR-4321: ISR flags such as fErrorH100OutOfSync should be initialized to FALSE. - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -PR-3004 : OCT6100 API does not support 64-bit operating systems - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -PR-2379 : Problem with the cOCT6100_MIXING_0_DB mode - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR39 - -Date: February 08, 2006 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - -1.0 BACKWARD COMPATIBILITY NOTICE - - 1.1 ALL PRODUCTS - Modified function: Oct6100ChipGetImageInfo - Added parameters: fAlcNoiseBleedOutTime - fResetAlcOnTones - - Modified functions: Oct6100ChannelOpen - Oct6100ChannelModify - Oct6100ChannelGetStats - Added parameters: fResetRinAlcOnTones - fResetSoutAlcOnTones - ulAlcNoiseBleedOutTime - - -New features AlcNoiseBleedOutTime and ResetAlcOnTones require firmware -version 01.06.00 and higher. - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -PR-3888 : Add 2 new parameters: fResetSinAlcOnTones, fResetRinAlcOnTones -PR-3889 : New parameter: ulAlcNoiseBleedoutTime - - -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -PR-4111 : fIdleCodeDetection not backward compatible -PR-4156 : Channel stays muted when cOCT6100_CHANNEL_MUTE_PORT_SIN_WITH_FEATURES - mute mode is used. -PR-4181 : Certain SDR memories may not boot correctly with standard - initialization sequence - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -PR-3004 : OCT6100 API does not support 64-bit operating systems - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -PR-2379 : Problem with the cOCT6100_MIXING_0_DB mode - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR38 - -Date: November 21, 2005 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - -1.0 BACKWARD COMPATIBILITY NOTICE - - NONE - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -PR-3848 : Changed several comments. -PR-3758 : ulToneDisablerVqeActivationDelay check must be added. -PR-3750 : Oct6100ApiInitToneInfo is too slow because of StrStr seach. - -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -PR-3842 : Bug in Oct6100ApiModifyChannelResources function when reserving Rout TSST. -PR-3793 : TLV length field parsing might be dangerous, not checked carefully. -PR-3779 : Remote debugging disconnect command does not work correctly. -PR-3749 : OCT6100 Tone enable does not work for certain firmwares. - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -PR-3004 : Compiling OCT6100 on 64-bit processor platform causes warnings - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -PR-2379 : Problem with the cOCT6100_MIXING_0_DB mode - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR37 - -Date: August 30, 2005 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - -1.0 BACKWARD COMPATIBILITY NOTICE - - 1.1 ALL PRODUCTS - Modified function: Oct6100ChipGetImageInfo - Added parameters: fIdleCodeDetection - fSinLevel - - Modified functions: Oct6100ChannelOpen, - Oct6100ChannelModify, - Oct6100ChannelGetStats - Added parameter: fIdleCodeDetection - - NOTE: With this release, it is not possible to enable - fSoutAdaptiveNoiseReduction and fSoutConferencingNoiseReduction - simultaneously - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -PR-3701 : Added support of Idle Code Detection feature -PR-3702 : lSinLevel and ERLE stats are no more supported in certain firmwares. - -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -PR-3688 : Error should be returned if ulMaxChannels is too big -PR-3711 : Bug when setting NLE and music protection simultaneously. - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -PR-3004 : Compiling OCT6100 on 64-bit processor platform causes warnings - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -PR-2379 : Problem with the cOCT6100_MIXING_0_DB mode - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR36 - -Date: July 20, 2005 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - -1.0 BACKWARD COMPATIBILITY NOTICE - - 1.1 ALL PRODUCTS - Modified function: Oct6100ChipGetImageInfo - Added parameters: fSoutNoiseBleaching - fDoubleTalkBehavior - - Modified functions: Oct6100ChannelOpen, - Oct6100ChannelModify, - Oct6100ChannelGetStats - Added parameters: fSoutNoiseBleaching - ulDoubleTalkBehavior - - NOTE: With this release, it is not possible to enable - fSoutAdaptiveNoiseReduction and fSoutConferencingNoiseReduction - simultaneously - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -PR-3610 : Added support of Noise Bleaching VQE -PR-3561 : Added support of double talk behavior -PR-3548 : The default value for ulNonLinearityBehaviorA should be 1 and not 0 - -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -PR-3554 : Clipping if AEC is enable in NO ECHO mode and SPEECH mode - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -PR-3004 : Compiling OCT6100 on 64-bit processor platform causes warnings - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -PR-2379 : Problem with the cOCT6100_MIXING_0_DB mode - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR35 - -Date: July 04, 2005 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - -1.0 BACKWARD COMPATIBILITY NOTICE - -NONE - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -NONE - -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -PR-3368 : Caller ID allerting signal not played out correctly. -PR-3382 : Law not set correctly in dump files for channel numbers with bit 2 - set to 1. -PR-3487 : Glitch when adding a participant to a conference - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -PR-2645 : Caller ID pre-transmit delay does not work correctly. -PR-3004 : Compiling OCT6100 on 64-bit processor platform causes warnings - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -PR-2379 : Problem with the cOCT6100_MIXING_0_DB mode - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR34 - -Date: March 31, 2005 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - -1.0 BACKWARD COMPATIBILITY NOTICE - -NONE - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -NONE - -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -PR-3336 : Tail displacement not configured correctly in ChannelOpen function - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -PR-2645 : Caller ID pre-transmit delay does not work correctly. -PR-3004 : Compiling OCT6100 on 64-bit processor platform causes warnings - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -PR-2379 : Problem with the cOCT6100_MIXING_0_DB mode - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR33 - -Date: March 04, 2005 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - -1.0 BACKWARD COMPATIBILITY NOTICE - -NONE - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -PR-3226 : Improved performance of Oct6100BufferPlayoutStart function - -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -NONE - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -PR-2645 : Caller ID pre-transmit delay does not work correctly. -PR-3004 : Compiling OCT6100 on 64-bit processor platform causes warnings - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -PR-2379 : Problem with the cOCT6100_MIXING_0_DB mode - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR32 - -Date: February 28, 2005 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - -1.0 BACKWARD COMPATIBILITY NOTICE - -NONE - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -NONE - -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -PR-3184 : Change free mixer event count check for a more precise one in - channel open and modify functions. -PR-3226 : NLP tail not set correctly in LEC with Tail Displacement. - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -PR-2645 : Caller ID pre-transmit delay does not work correctly. -PR-3004 : Compiling OCT6100 on 64-bit processor platform causes warnings - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -PR-2379 : Problem with the cOCT6100_MIXING_0_DB mode - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR31 - -Date: February 7, 2005 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - -1.0 BACKWARD COMPATIBILITY NOTICE - -NONE - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -PR-3136 : The lDefaultErlDb parameter should also support other values -9, -12. - -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -PR-3120 : Oct6100DebugGetData does not work correctly on big endian - architecture. -PR-3165 : F003_FPGA: SCN-PLC FPGA cannot be put into PASS_THRU. - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -PR-2645 : Caller ID pre-transmit delay does not work correctly. -PR-3004 : Compiling OCT6100 on 64-bit processor platform causes warnings - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -PR-2379 : Problem with the cOCT6100_MIXING_0_DB mode - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR30 - -Date: January 24, 2005 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - -1.0 BACKWARD COMPATIBILITY NOTICE - - 1.1 ALL PRODUCTS - - New functions: Oct6100ProductionBist - Oct6100DebugSelectChannel - Oct6100DebugGetData - - Modified functions: Oct6100ChannelOpen, - Oct6100ChannelGetStats - Added parameters: ulAecTailLength - ulToneDisablerVqeActivationDelay - fEnableMusicProtection - - Modified function: Oct6100ChannelModify - Added parameter: ulTailLength - - Modified function: Oct6100ChipGetImageInfo - Added parameters: fAecTailLength - fPerChannelTailLength - fToneDisablerVqeActivationDelay - ulImageType - - Modified function: Oct6100ChipOpen - Added parameters: fEnableProductionBist - ulNumProductionBistLoops - - Modified define: cOCT6100_MAX_TAIL_DISPLACEMENT - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -PR-2748 : Added new echo operation mode for speech recognition purposes. -PR-2885 : Added ulTailLength parameter to the ChannelOpen function -PR-2926 : Added ulToneDisablerVqeActivationDelay to the ChannelOpen function -PR-2951 : Added hardware PLL jitter counter for debugging. -PR-2966 : Added acoustic echo tail length parameter to ChannelOpen function -PR-2978 : Added functionnality in the API to dump memory. -PR-3001 : Added production BIST of the external memory support to the API -PR-3013 : Added support of the Octasic Music Protection feature -PR-3017 : Added reset of the ulNumEchoPathChanges channel stat -PR-3057 : Added ulImageType parameter to Oct6100ChipGetImageInfo. -PR-3061 : Improved performance of Oct6100BufferPlayoutGetEvent function - -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -PR-2670 : fEnableToneDisabler description not completely clear -PR-2928 : Default values missing in function Oct6100ChannelGetStatsDef -PR-2940 : BiDir mode does not work correctly when a channel is modified. -PR-2954 : Default value for ulMaxPlayoutEvents is incorrect -PR-2971 : Problems when doing law conversion while in a bridge -PR-2973 : Some instance resources might be lost if mixer events run out in the - MutePorts function. -PR-2995 : Conference bridge gets corrupted while un-muting and muting - participants -PR-2999 : After several open-close of channels, output signal gets corrupted - when muting the input. -PR-3003 : Wrong level control setting after close/open channel -PR-3048 : Code cleanup, redundant code must be removed. -PR-3058 : F003_FPGA: Bad check for PLC SCN FPGA channel ID. -PR-3079 : F003_FPGA: Put FPGA in pass-through when doing playout and change back - when playout if finished. -PR-3087 : cOCT6100_MAX_TAIL_DISPLACEMENT must be changed from 912 to 896ms. - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -PR-2645 : Caller ID pre-transmit delay does not work correctly. -PR-3004 : Compiling OCT6100 on 64-bit processor platform causes warnings - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -PR-2379 : Problem with the cOCT6100_MIXING_0_DB mode - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR29 - -Date: December 10, 2004 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - -1.0 BACKWARD COMPATIBILITY NOTICE - -NONE - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -PR-2918 : Add possibility to retrieve more than 32 buffer playout events with - Oct6100BufferPlayoutGetEvent() - -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - - -PR-2920 : cOCT6100_ERR_BUFFER_PLAYOUT_ADD_EVENT_BUF_FULL when trying to add - buffer on a new opened channel. - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -PR-2645 : Caller ID pre-transmit delay not working correctly. - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -PR-2379 : Problem with the cOCT6100_MIXING_0_DB mode - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR28 - -Date: November 12, 2004 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - -1.0 BACKWARD COMPATIBILITY NOTICE - - 1.1 ALL PRODUCTS - - Modified functions: Oct6100ChannelOpen, - Oct6100ChannelModify, - Oct6100ChannelGetStats - Added parameters: lAnrSnrEnhancementDb - ulAnrVoiceNoiseSegregation - ulSoutNaturalListenerEnhancementGainDb - Modified function: Oct6100ChipGetImageInfo - Added parameters: fAnrSnrEnhancement - fAnrVoiceNoiseSegregation - Modified function: Oct6100ChannelModify - fApplyToAllChannels - - 1.2 PRODUCT OCT6110 - - Modified function: Oct6100ChannelModify - fDisableToneDetection - fStopBufferPlayout - fRemoveConfBridgeParticipant - fRemoveBroadcastTssts - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -PR-2669 : Removed unused internal functions -PR-2675 : Added new parameters to control the ANR behavior -PR-2676 : fUseSynchTimestamp is no more supported -PR-2747 : ulSoutAutomaticListenerEnhancementGainDb should be limited to maximum - 30 instead of 60. -PR-2749 : New parameter must be added to configure NLE. -PR-2759 : Implemented fApplyToAllChannels, fDisableToneDetection, - fStopBufferPlayout and fRemoveConfBridgeParticipant features -PR-2805 : Playout start function should return an error if the buffer list is - empty. - -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -PR-2677 : lAecDefaultErlDb and lDefaultErlDb are not updated correctly since - the ChannelModify function optimizations. -PR-2746 : Channel stats are not correct when channel is in bypass or reset -PR-2803 : Define for cOCT6100_KEEP_PREVIOUS_SETTING is too large for INT32 -PR-2842 : Level control must not be called in mixer function -PR-2845 : F003_FPGA: Kappa coefficient not initialized when opening a PLC/SCN - FPGA channel. -PR-2846 : F029_FPGA: Tone detection event type not set correctly. - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -PR-2645 : Caller ID pre-transmit delay not working correctly. - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -PR-2379 : Problem with the cOCT6100_MIXING_0_DB mode - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00.00.01 - -Date: October 08, 2004 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - -First General Availability release. Internal Release. - -------------------------------------------------------------------------------- -1.0 BACKWARD COMPATIBILITY NOTICE - - 1.1 ALL PRODUCTS - - Modified functions: Oct6100ChannelOpen, - Oct6100ChannelModify, - Oct6100ChannelGetStats - Added parameters: lAnrSnrEnhancementDb - ulAnrVoiceNoiseSegregation - Modified function: Oct6100ChipGetImageInfo - Added parameters: fAnrSnrEnhancement - fAnrVoiceNoiseSegregation - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -PR-2675 : Added new parameters to control the ANR behavior - -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - - - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -NONE - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -PR-2379 : Problem with the cOCT6100_MIXING_0_DB mode - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR27 - -Date: September 27, 2004 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -1.0 BACKWARD COMPATIBILITY NOTICE - -NONE - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -PR-2621 : The Oct6100CallerIdTransmit function should check that enough playout - events are available before adding them. -PR-2630 : Increased performance of the ChannelModify function -PR-2656 : The buffer playout events should be differentiated between regular - playout events and caller ID events -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -PR-2614 : Caller ID cleanup not done correctly in resource free function -PR-2616 : Tone ports not initialized when tone detection not supported -PR-2620 : In the caller id init function, check that the image loaded into the - device supports 127 events. -PR-2633 : Playout event must be check in the OCT6100 instead of a define - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -NONE - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -PR-2379 : Problem with the cOCT6100_MIXING_0_DB mode - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR26 - -Date: August 31, 2004 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -1.0 BACKWARD COMPATIBILITY NOTICE - - 1.1 ALL PRODUCTS - - Modified function: Oct6100ChannelOpen - Oct6100ChannelModify - Oct6100ChannelGetStats - Added parameters: ulSoutAutomaticListenerEnhancementGainDb - fSoutNaturalListenerEnhancement - fRoutNoiseReduction - Modified function: Oct6100ChipGetImageInfo - Added parameters: fListenerEnhancement - fRoutNoiseReduction - ulMaxPlayoutEvents - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -PR-2478 : Added support of ALE and NLE features -PR-2479 : Added support of the Rout Noise Reduction feature -PR-2581 : Added flexibility to support 31 or 127 buffers in the list -PR-2576 : F029_FPGA: Add Channel enable Memory clear - -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -PR-2515 : Mute mode that allow tone detection on SIN is not working. -PR-2550 : Tail displacement offset bug -PR-2558 : Wrong max tail displacement value. -PR-2597 : Mixer events lost when modifying a channel in a bridge -PR-2604 : SDR 32-bit must be configured as 2 SDR 16-bit -PR-2609 : Data is modified when the operation mode is set to NO_ECHO -PR-2612 : Some of the playout buffers for ETSI Caller ID are not loaded. -PR-2526 : F029_FPGA: Bug of Oct6100ApiConvertToToneDetectionFpgaTsst for ROUT - TSSTs -PR-2582 : F029_FPGA: API fix for ConvertTsst functions + others -PR-2584 : F029_FPGA: OCT6100 API Oct6100ApiWriteToneDetectEvent bug -PR-2601 : F029_FPGA: Oct6100TransferToneDetectionFpgaEvents: Reorder events - when getting two events at a time. - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -NONE - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -PR-2379 : Problem with the cOCT6100_MIXING_0_DB mode - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR25 - -Date: August 05, 2004 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -1.0 BACKWARD COMPATIBILITY NOTICE - - 1.1 PRODUCT OCT6120 - - Added function: Oct6100ChannelMute - Oct6100ChannelUnMute - Modified function: Oct6100ChannelModify - Added parameters: ulRinNumTssts - ulSinNumTssts - ulRoutNumTssts - ulSoutNumTssts - Modified function: Oct6100ChannelGetStats - Added parameters: ulMutePortsMask - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -PR-2455 : Allow modification of NumTssts parameters in function - Oct6100ChannelModify -PR-2465 : Added Channel Mute and UnMute functions -PR-2468 : Re-enable SS7 tone detection upon tone event disabling - -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -PR-2439 : Noise when no input TSST assigned -PR-2440 : Conference signal attenuated when no input TSST -PR-2454 : F029_FPGA: For MFR1 and MFR2, we can enable a tone OF MFR1 group - (or MFR2) and disable an other tone of the same group. -PR-2469: Check missing for Extended tone detection -PR-2457 : Tone events sometimes not generated -PR-2473 : F003_FPGA: ulPlcScnOperationMode not behaving properly in - Oct6100ModifyChannel -PR-2474 : F003_FPGA: PLC/SCN FPGA law configuration bug. -PR-2475 : F003_FPGA: Channel Modify for the PLC/SCN is not working -PR-2477 : Law conversion should work when ADPCM is not supported -PR-2501 : F003_FPGA: Law written in the PLC/SCN FPGA not correct -PR-2512 : Error cOCT6100_ERR_CONF_BRIDGE_CHAN_NOT_ON_BRIDGE sometimes returned - when removing all channels from a bridge with taps. -PR-2513 : Eliminate the compiler warnings. -PR-2514 : F029_FPGA: Wrong TDM mapping. -PR-2516 : cOCT6100_ERR_OPEN_EGO_TIMEOUT generated on some devices - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -PR-2515 : Mute mode that allows tone detection on SIN is not working. - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -PR-2379 : Problem with the cOCT6100_MIXING_0_DB mode - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR24 - -Date: July 16, 2004 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -1.0 BACKWARD COMPATIBILITY NOTICE - -None - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -PR-2452 : Added SS7 tone events capture before tone detection enabling - -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -PR-2392 : In Oct6100ChannelModify, Adpcm resource not reserve when - ulEncoderPort or ulDecoderPort set to Keep previous. -PR-2421 : F029_FPGA: The calcul of TSST for Tone Detect FPGA is not corect in - the function OCT6100ApiWriteToneDetectEvent -PR-2441 : F029_FPGA: Using wrong addresses in oct6100_interrupts.c -PR-2442 : F029_FPGA: The SOct6100InterruptServiceRoutine doesn't clear the bit - ToneDetectionFpgaOverflowToneEvents. -PR-2453 : F029_FPGA: Syntaxe bug: In the oct6100_events.c file, at the line 815 - and the line 990. - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -PR-2439 : Noise when no input TSST assigned -PR-2440 : Conference signal attenuated when no input TSST -PR-2454 : F029_FPGA: For MFR1 and MFR2, we can enable a tone OF MFR1 group - (or MFR2) and disable an other tone of the same group. -PR-2457 : Tone events sometimes not generated - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -PR-2379 : Problem with the cOCT6100_MIXING_0_DB mode - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR23 - -Date: June 23, 2004 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -1.0 BACKWARD COMPATIBILITY NOTICE - -None - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -PR-2393 : Removed requirement for setting ulRinStream and ulRinTimeslot to - cOCT6100_UNASSIGNED for the tapping feature - -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -PR-2394 : Error if doing remove all bridge participants but no participant - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -None - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -PR-2379 : Problem with the cOCT6100_MIXING_0_DB mode - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR22 - -Date: June 21, 2004 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -1.0 BACKWARD COMPATIBILITY NOTICE - - 1.1 PRODUCTS OCT6110 and OCT6120 - - Modified function: Oct6100ConfBridgeChanAdd - Added parameter: ulTappedChannelHndl - Modified function: Oct6100ConfBridgeGetStats - Added parameter: ulNumTappedChannels - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -PR-2381 : Added tapping feature to simple conferencing. - -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -PR-2378 : pulPlayoutFreeMemSize not completly accurate -PR-2385 : When opening many flexible conferences we get an access violation - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -none - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -PR-2379 : Problem with the cOCT6100_MIXING_0_DB mode - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR21 - -Date: June 15, 2004 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -1.0 BACKWARD COMPATIBILITY NOTICE - - 1.1 ALL PRODUCTS - - Modified function: Oct6100ChipGetImageInfo - Added parameter: fDominantSpeaker - Modified function: Oct6100ChannelGetStats - Added parameters: sRinAppliedGain - sSoutAppliedGain - - 1.2 PRODUCTS OCT6110 and OCT6120 - - Added functions: Oct6100ConfBridgeDominantSpeakerSetDef, - Oct6100ConfBridgeDominantSpeakerSet - Modified function: Oct6100ChipOpen - Added parameter: ulMaxFlexibleConfParticipants - Modified function: Oct6100ConfBridgeOpen - Added parameter: fFlexibleConferencing - Modified function: Oct6100ConfBridgeChanAdd - Added parameters: ulListenerMask, - ulListenerMaskIndex - Modified functions: Oct6100ChannelOpen, - Oct6100ChannelModify, - Oct6100ChannelGetStats - Added parameters: fSoutAdaptiveNoiseReduction, - fSoutConferencingNoiseReduction, - fDtmfToneRemoval - Modified function: Oct6100ChannelGetStats - Added parameter: fSinVoiceDetected - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -PR-2368 : OCT6116 and OCT6126 features must not be removed from the API -PR-2369 : Added fDominantSpeaker parameter in GetImageInfo function -PR-2372 : Added lRinAppliedGain and lSoutAppliedGain stats in ChannelGetStats - -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -PR-2356 : Playout never stop if repeat infinitly and stop clean is used with - buffer not modulo 64 -PR-2370 : No error returned when enabling dominant speaker while not available -PR-2374 : Error returned when unmuting from flexible conference -PR-2375 : Problem when unmuting the first participant of a flexible bridge - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -PR-2378 : pulPlayoutFreeMemSize not completly accurate - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -PR-2379 : Problem with the cOCT6100_MIXING_0_DB mode - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR20 - -Date: June 02, 2004 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -1.0 BACKWARD COMPATIBILITY NOTICE - - 1.1 ALL PRODUCTS - - Modified function: Oct6100ChipGetImageInfo - Added parameters: fHighLevelCompensation, - Modified functions: Oct6100ChannelOpen, - Oct6100ChannelModify, - Oct6100ChannelGetStats - Added parameters: fRinAutomaticLevelControl, - lRinAutomaticLevelControlTargetDb - fSoutAutomaticLevelControl, - lSoutAutomaticLevelControlTargetDb - fRinHighLevelCompensation, - lRinHighLevelCompensationThresholdDb - - 1.2 PRODUCTS OCT6116 and OCT6126 - - Added function: Oct6100ConfBridgeMaskChange - Modified function: Oct6100ConfBridgeGetStats - Added parameter: fFlexibleConferencing - Modified function: Oct6100ChannelGetStats - Added parameter: fSinVoiceDetected - - 1.3 PRODUCTS OCT6110 and OCT6120 - - Removed functions: Oct6100ConfBridgeDominantSpeakerSetDef, - Oct6100ConfBridgeDominantSpeakerSet - Modified functions: Oct6100ChannelOpen, - Oct6100ChannelModify, - Oct6100ChannelGetStats - Removed parameter: fSoutConferencingNoiseReduction - Modified function: Oct6100ChipOpen - Removed parameter: ulMaxFlexibleConfParticipants - Modified function: Oct6100ConfBridgeOpen - Removed parameter: fFlexibleConferencing - Modified function: Oct6100ConfBridgeChanAdd - Removed parameters: ulListenerMask, - ulListenerMaskIndex - - 1.4 PRODUCTS OCT6100, OCT6110 and OCT6120 - - Modified functions: Oct6100ChannelOpen, - Oct6100ChannelModify, - Oct6100ChannelGetStats - Removed parameter: fDtmfToneRemoval - - 1.5 PRODUCTS OCT611X and OCT612X - - Modified function: Oct6100BufferPlayoutAdd - Added parameter: lGainDb - Modified function: Oct6100BufferPlayoutStop - Added parameters: pfAlreadyStopped, - pfNotifyOnPlayoutStop - - 1.6 Many error code names have been modified - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -PR-1911 : Increased number of buffer playout from 31 to 127 -PR-2225 : Added support of gain control on buffer playout -PR-2261 : Improved the CPU register BIST -PR-2285 : Renamed cOCT6100_ECHO_OP_MODE_G169_ALC as cOCT6100_ECHO_OP_MODE_NO_VQE -PR-2322 : Renamed cOCT6100_ECHO_OP_MODE_NO_VQE as cOCT6100_ECHO_OP_MODE_NO_ECHO -PR-2289 : Added support of mixing mode 0db in playout -PR-2310 : Implemented new conference bridge function to change the participant's - mask for flexible conferencing -PR-2314 : Implemented fSinVoiceDetected in channel stats for OCT61x6 products -PR-2316 : Implemented Automatic level control -PR-2317 : Implemented High Level Compensation -PR-2318 : Changed all feature_unsupported error coded to use the same error base - code -PR-2328 : Added pfAlreadyStopped and pfNotifyOnPlayoutStop parameters to - Oct6100BufferPlayoutStop function - -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -PR-2251 : Playout not always stopping when changing mode from normal to power - down to normal -PR-2256 : Flexible conferencing does not work on the ROUT port -PR-2267 : Removing a muted channel from a flexible conference gives a fatal - error -PR-2268 : Can add two channels with the same index in flexible conferencing -PR-2280 : Remove all feature is causing bridge corruption -PR-2301 : Memory chip size of 8 megabytes must be allowed with SDR -PR-2307 : Remote client not working with OCT610x products -PR-2312 : fFlexibleConferencing is not implemented in function - Oct6100ConfBridgeGetStats -PR-2332 : Dominant speaker always active -PR-2333 : Muting all participants of a bridge is causing bad behaviors -PR-2335 : Buffer Playout duration not working properly - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -NONE - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -NONE - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR19 - -Date: April 30, 2004 - -------------------------------------------------------------------------------- -Please note that caller ID is still not supported. -------------------------------------------------------------------------------- - -1.0 BACKWARD COMPATIBILITY NOTICE - - 1.1 ALL PRODUCTS - - Modified function: Oct6100ChipGetImageInfo - Added parameter: ulMaxChannels - Removed parameters: fRinDcOffsetRemoval, - fSinDcOffsetRemoval, - fNlpControl, - fToneDisabler, - fComfortNoise - Modified functions: Oct6100ChannelOpen, - Oct6100ChannelModify, - Oct6100ChannelGetStats - Added parameters: lAecDefaultErlDb - - 1.2 PRODUCTS OCT611X and OCT612X - - Modified function: Oct6100ChipOpen - Added parameter: ulMaxFlexibleConfParticipants - Modified function: Oct6100ConfBridgeOpen - Added parameter: fFlexibleConferencing - Modified function: Oct6100ConfBridgeChanAdd - Added parameters: ulListenerMask, - ulListenerMaskIndex - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -PR-1909 : Add support of flexible conferencing feature -PR-2226 : Remove unnecessary parameters from image info and add ulMaxChannel - parameter -PR-2238 : Playout no longer supported in HT freeze mode -PR-2237 : Improvements to AEC - -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -PR-2224 : Playout not working in G.169 ALC Mode -PR-2241 : F029_FPGA: Wrong TDM mapping. -PR-2242 : F029_FPGA: ulUserChipId should be between 1 and 6 instead of 0 and 5. -PR-2243 : F029_FPGA: Tone FPGA memory mapping has changed. Base addresses have - changed. -PR-2244 : PLI Comment in API code -PR-2250 : Bridge empty list causing fatal errors -PR-2252 : F029_FPGA: F029 FPGA should not be accessed when not enabled. -PR-2257 : F003_FPGA: Open channel does not set all SCN-PLC fields. -PR-2259 : Buffer playout minimum buffer size can be downsized to 64 bytes. -PR-2260 : memcpy should not be used in OctApi llman library. - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -PR-2256 : Flexible conferencing does not work on the ROUT port -PR-2251 : Playout not always stopping when changing mode to power down - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -NONE - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR18 - -Date: April 22, 2004 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - -1.0 BACKWARD COMPATIBILITY NOTICE - - 1.1 PRODUCTS OCT611X and OCT612X - - Added files: oct6100_caller_id.c - oct6100_caller_id_priv.h - oct6100_caller_id_pub.h - oct6100_caller_id_inst.h - Added functions: Oct6100CallerIdInitDef, - Oct6100CallerIdInit, - Oct6100CallerIdTransmitDef, - Oct6100CallerIdTransmit, - Oct6100CallerIdTransmitAsDef, - Oct6100CallerIdTransmitAs, - Oct6100CallerIdAbortDef, - Oct6100CallerIdAbort - Modified function: Oct6100ChipOpen - Added parameter: fEnableCallerId - Modified functions: Oct6100ChannelOpen, - Oct6100ChannelModify, - Oct6100ChannelGetStats - Added parameter: fSoutConferencingNoiseReduction - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -PR-1964 : Implement caller ID. Please note that this features is not supported - yet but files have been added to the API. -PR-2206 : Allow support of both noise reduction features. - -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -PR-2221 : 32 first bytes sometimes corrupted with buffer playout -PR-2222 : Error when removing a channel from a RIN bridge -PR-2223 : F003_FPGA: SCN/PLC requires a parameter to disable HDLC output - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -NONE - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -NONE - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR17 - -Date: April 20, 2004 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - -1.0 BACKWARD COMPATIBILITY NOTICE - - 1.1 PRODUCT OCT610X - - Added files: oct6100_tsi_cnct.c, - oct6100_tsi_cnct_priv.h - oct6100_tsi_cnct_pub.h - oct6100_tsi_cnct_inst.h - Added functions: Oct6100TsiCnctOpenDef, - Oct6100TsiCnctOpen, - Oct6100TsiCnctCloseDef, - Oct6100TsiCnctClose - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -PR-2207 : Need to reduce the API code size and the API instance size -PR-2208 : TSI connection functions should be available to OCT610x products -PR-2217 : F029_FPGA: OCTF029 API code needs modifications to support MFR2 - -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -PR-2202 : Chariot interval wrong for chips with 512 channels -PR-2210 : Modification of the per channel tail displacement is not working -PR-2214 : Debug channel corrupted when opening too many channels -PR-2215 : Acoustic echo not working properly -PR-2218 : Oct6100ApiReserveBufferPlayoutMemory sometimes returns - cOCT6100_ERR_BUFFER_PLAYOUT_NO_MEMORY but there are still a lot of - memory available. - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -NONE - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -NONE - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR16 - -Date: April 16, 2004 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - -1.0 BACKWARD COMPATIBILITY NOTICE - - 1.1 ALL PRODUCTS - - Added functions: Oct6100FreeResourcesDef, - Oct6100FreeResources - Modified functions: Oct6100ChannelOpen, - Oct6100ChannelModify, - Oct6100ChannelGetStats - Added parameter: ulTailDisplacement - Modified functions: Oct6100ChipGetImageInfo - Added parameter: fPerChannelTailDisplacement - - 1.2 PRODUCT OCT611X and OCT612X - - Modified function: Oct6100BufferPlayoutAdd - Added parameters: ulRepeatCount, - ulDuration - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -PR-2160 : Add ulRepeatCount and ulDuration to the Oct6100BufferPlayoutAdd - function -PR-2166 : Need to add function that closes all open channels and frees all used - ressources. -PR-2172 : Add support of the tail displacement lentgh per channel - -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -PR-2190 : Cleanup old extra code. -PR-2191 : Image info parameters are confusing for level control -PR-2205 : Phasing error when reusing same TSST - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -PR-2210 : Modification of the per channel tail displacement is not working - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -NONE - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR15 - -Date: April 02, 2004 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - -1.0 BACKWARD COMPATIBILITY NOTICE - - 1.1 PRODUCT OCT611X and OCT612X - - Modified function: Oct6100BufferPlayoutLoad - Added parameter: pusBufferPattern - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -PR-2075 : Increase number of TSI connections supported -PR-2113 : Current malloc function is too slow for playout buffer loading. -PR-2115 : CPU bandwidth too small when loading buffers -PR-2120 : Buffer playout copies PUINT8 array into PUINT16 array. Inefficient. -PR-2149 : F029_FPGA: Add API code to support new OCTF029 tone detection FPGA. - -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -PR-1972 : Memory allocation is causing fragmentation when loading buffers -PR-2093 : Oct6100ChipOpen should return an error when the firmware image loaded - requires more external memory then the user specified. -PR-2123 : Create Bi-dir bad behavior when ulMaxBiDirChannels=0 -PR-2128 : ImageInfo.fAcousticEcho return TRUE even when not supported -PR-2129 : Wrong TSST released in 16MHz mode. Causing fatal_55 - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -NONE - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -NONE - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR14 - -Date: March 19, 2004 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - -1.0 BACKWARD COMPATIBILITY NOTICE - -NONE - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -NONE - -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -PR-2088 : Change value written into hardware for ulNonLinearityBehaviorA of 0 -PR-2117 : Mem Refresh too fast - - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -NONE - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -PR-1972 : Memory allocation is causing fragmentation when loading buffers - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR13 - -Date: March 03, 2004 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - -1.0 BACKWARD COMPATIBILITY NOTICE - - 1.1 ALL PRODUCTS - - Modified function: Oct6100InterruptServiceRoutine - Added parameter: ulFatalGeneralFlags - Modified function: Oct6100ChannelGetStats - Added parameter: fEchoCancellerConverged - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -PR-2016 : Add new ISR parameter to get info about fatal errors -PR-2027 : Increase the number of supported TSI connections -PR-2034 : Buffer Playout no more supported if NLP OFF -PR-2035 : Implement fEchoCancellerConverged channel stats -PR-2041 : ulMaxRwAccesses smaller than 8 should be valid -PR-2049 : Create smaller API with less supported functions -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -PR-2018 : Timestamps checks not good -PR-2031 : Unset of the dominant speaker is causing a fatal error -PR-2038 : AF CPU Timeout delay too small -PR-2039 : Tone Disabler stays active when channel is closed -PR-2040 : F003_FPGA: PLC FPGA channel energy not set properly. -PR-2051 : Remove all conference participants is not working properly -PR-2065 : ulSoftOverflowBufferPlayoutEventsCount not initialized - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -NONE - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -PR-1972 : Memory allocation is causing fragmentation when loading buffers - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR12 - -Date: Feb. 09, 2004 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - -1.0 BACKWARD COMPATIBILITY NOTICE - - 1.1 ALL PRODUCTS - - Added function: Oct6100UserSleep - Modified functions: Oct6100ChannelOpen, - Oct6100ChannelModify, - Oct6100ChannelGetStats - Added parameter: ulNonLinearityBehaviorB - - 1.2 PRODUCT OCT611X and OCT612X - - Added functions: Oct6100BufferPlayoutGetEventDef, - Oct6100BufferPlayoutGetEvent, - Oct6100BufferPlayoutLoadBlockInitDef, - Oct6100BufferPlayoutLoadBlockInit, - Oct6100BufferPlayoutLoadBlockDef, - Oct6100BufferPlayoutLoadBlock, - Oct6100ConfBridgeDominantSpeakerSetDef, - Oct6100ConfBridgeDominantSpeakerSet - - Modified function: Oct6100ChipOpen - Added parameter: ulSoftBufferPlayoutEventsBufSize - Modified function: Oct6100ChipGetStats - Added parameters: ulPlayoutFreeMemSize, - ulSoftOverflowBufferPlayoutEventsCount - Modified function: Oct6100BufferPlayoutLoad - Added parameter: pulPlayoutFreeMemSize - Modified function: Oct6100BufferPlayoutAdd - Added parameter: ulBufferLength - Modified function: Oct6100BufferPlayoutStart - Added parameters: fNotifyOnPlayoutStop, - ulUserEventId, - fAllowStartWhileActive - Modified function: Oct6100InterruptServiceRoutine - Added parameter: fBufferPlayoutEventsPending - Modified function: Oct6100ConfBridgeChanAdd - Added parameter: ulInputPort - Modified function: Oct6100ToneDetectionDisable - Added parameter: fDisableAll - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -PR-1870 : Implement ulNonLinearityBehaviorB in Oct6100ChannelOpen -PR-1896 : Give size of memory available for buffer playout to the user -PR-1908 : Add support of conferencing on RIN ports -PR-1910 : Add new functions to allow loading of the buffer playout in multiple - blocks -PR-1912 : Add new parameter to specify the length of the buffer that must be - played -PR-1931 : Fatal error cOCT6100_ERR_FATAL_14 should be replaced by - cOCT6100_ERR_OPEN_INVALID_FIRMWARE_OR_CAPACITY_PINS -PR-1942 : Implement End of Playout Event in the API -PR-1946 : Add TLV fields for buffer playout enable and dominant conference - speaker. -PR-1953 : Implement the dominant speaker feature for conferencing. -PR-1970 : Add UserSleep function in the API -PR-1990 : Add support of acoustic echo cancellation -PR-1991 : Add disabling of all tone detection with one command -PR-1996 : F003_FPGA: Add parameter to set the SCN/PLC operation mode -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -PR-1872 : Law conversion not working for OCT610X and OCT611X products -PR-1882 : F003_FPGA: Tsst configuration not correct in SCN/PLC -PR-1886 : Buffer Playout size must be limited to modulo 16 -PR-1887 : F003_FPGA: Precedence Bug with SCN/PLC -PR-1897 : F003_FPGA: Tsst Phasing mapping bug with SCN/PLC -PR-1915 : Write Access Errors in external memories -PR-1917 : API spec does not match API code with respect to the buffer playout - load function. -PR-1919 : Playout pointers not reset properly in Oct6100ChannelOpen -PR-1920 : Too many reads done in the buffer playout functions -PR-1926 : F003_FPGA: User must specified the compression rate when using the - PLC/SCN FPGA. -PR-1941 : The API must not allowed ulMaxChannels to be greater than the - capacity of the chip -PR-1952 : ANR enable check not good -PR-1969 : ulFirstEmptyIndex not set properly in Oct6100ApiRetrieveNlpConfDword. -PR-1976 : fToneEventsPending not working -PR-1980 : Tone Event Overflow may cause error cOCT6100_ERR_FATAL_2D -PR-1981 : Capacity pins are not always in tri-state -PR-1982 : Bidirectionnal channels in a conference erroneously permitted, and - vice versa. -PR-2001 : F003_FPGA: fEnableScnPlcFpga check not good -PR-2006 : Internal memory register not set properly -PR-2012 : Customer ID no more used and replaced by Build ID -PR-2015 : Channel 0 corruption when closing/opening other channels -PR-2021 : TSI index for closed channels are not good -PR-2022 : Conversion structures not cleared properly -PR-2023 : NLP structure not cleared when closing a channel -PR-2024 : F003_FPGA: Phase type for SCN_PLC not set properly -PR-2025 : Channel resources closure order not good -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -NONE - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -PR-1972 : Memory allocation is causing fragmentation when loading buffers - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - - RELEASE NOTES - -Version: OCT6100API-01.00-PR11 - -Date: Dec. 09, 2003 - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - -1.0 BACKWARD COMPATIBILITY NOTICE - - 1.1 ALL PRODUCTS - - Modified functions: Oct6100ChannelOpen, - Oct6100ChannelModify, - Oct6100ChannelGetStats - Added parameters: lDefaultErlDb, - fDtmfToneRemoval, - fAcousticEcho, - ulNonLinearityBehaviorA, - Modified function: Oct6100ChipGetImageInfo - Added parameter: ulNumToneDetectors - Removed functions: Oct6100DebugGetRecordInfo, - Oct6100DebugGetEvent - Oct6100DebugSelectDebugChannel - - 1.2 PRODUCTS OCT611X and OCT612X - - Modified function: Oct6100ChipOpen - Added parameter: fEnableExtToneDetection - Modified functions: Oct6100ChannelOpen, - Oct6100ChannelModify, - Oct6100ChannelGetStats - Removed parameter: ulTailLength - Added parameter: fEnableExtToneDetection - -------------------------------------------------------------------------------- - -2.0 MODIFICATIONS DONE SINCE LAST RELEASE - -PR-1704 : Add detection of the 1100Hz tone -PR-1716 : Replace all cOCT6100_TONE_REFRESH ulEventType by - cOCT6100_TONE_PRESENT in Oct6100EventGetTone -PR-1719 : Implement lDefaultErlDb, fDtmfToneRemoval, ulNonLinearityBehaviorA - and fAcousticEcho in Oct6100ChannelOpen -PR-1745 : Add ulNumToneDetectors parameter to Oct6100ChipGetImageInfo -PR-1795 : Add new extended Tone detection mode when opening a channel. -PR-1797 : Remove Oct6100DebugSelectDebugChannel, Oct6100DebugGetEvent, - Oct6100DebugGetRecordInfo functions -PR-1798 : Give access to the remote debug functions -PR-1868 : The parameter ulTailLength must be removed from Oct6100ChannelOpen - since it is not supported - -------------------------------------------------------------------------------- - -3.0 BUGS FIXED IN THIS RELEASE - -PR-1707 : Misc errors found during the code inspection -PR-1713 : The Oct6100ChipOpen function must limit ulMaxConfBridges to 448 -PR-1720 : The ulTimestamp parameter is not set properly in Oct6100EventGetTone -PR-1724 : The output data is not good when there is no input -PR-1729 : Multiple calls to Oct6100ConfBridgeChanAdd with the same - ulChannelHndl must return an error -PR-1730 : Wrong defaults values for ulMaxConfBridges, ulMaxPlayoutBuffers and - ulMaxPhasingTssts in Oct6100ChipOpen -PR-1731 : Oct6100ConfBridgeClose does not release all resources -PR-1732 : Oct6100ConfBridgeChanRemove does not release all ressources. -PR-1733 : Not all read burst accesses are using the ulMaxRwAccesses parameter -PR-1734 : Wrong check on ulEncoderPort in Oct6100ChannelOpen -PR-1736 : Wrong check on ulPhasingTsstHndl in Oct6100ChannelModify -PR-1741 : The Oct6100InterruptServiceRoutine should report an error when the - device reset -PR-1742 : Default values for fSinDcOffsetRemoval, fRinDcOffsetRemoval and - ulComfortNoiseMode in Oct6100ChannelOpen are not correct -PR-1743 : Stats not correct when fResetChipStats=TRUE in Oct6100ChipGetStats -PR-1744 : ulMaxTailDisplacement is not set properly in Oct6100ChipGetImageInfo -PR-1748 : Call to Oct6100ChannelClose is causing a failure of the conferencing - feature -PR-1749 : The API must return an error if fEnableNlp=FALSE and - fEnableSilenceSuppression=TRUE -PR-1751 : The interrupt scheduling is not accurate in - Oct6100InterruptServiceRoutine -PR-1752 : Array used in function Oct6100ApiRandomMemoryWrite is too big for - certain compilers -PR-1821 : Buffer Playout not working after a call to Oct6100ChannelModify -PR-1871 : Code not compiling for OCT610X and OCT611X - -------------------------------------------------------------------------------- - -4.0 KNOWN BUGS PRESENT IN THIS RELEASE - -PR-1872 : Law conversion not working for OCT610X and OCT611X products - -------------------------------------------------------------------------------- - -5.0 KNOWN ISSUES PRESENT IN THIS RELEASE - -PR-1702: The user can call Oct6100BufferPlayoutUnload while the buffer is - playing - -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- - diff --git a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_user.c.org b/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_user.c.org deleted file mode 100644 index af394ec..0000000 --- a/patches/kdrivers/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api/oct6100_user.c.org +++ /dev/null @@ -1,474 +0,0 @@ -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ - -File: oct6100_user.c - - Copyright (c) 2001-2007 Octasic Inc. - -Description: - - This file contains the functions provided by the user. - -This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API 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. - -The OCT6100 GPL API is distributed in the hope that 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 the OCT6100 GPL API; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - -$Octasic_Release: OCT612xAPI-01.00-PR48 $ - -$Octasic_Revision: 28 $ - -\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - -/***************************** INCLUDE FILES *******************************/ - - -#include "oct6100api/oct6100_apiud.h" -#include "oct6100api/oct6100_errors.h" - - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ - -Function: Oct6100UserGetTime - -Description: Returns the system time in us. - -------------------------------------------------------------------------------- -| Argument | Description -------------------------------------------------------------------------------- -f_pTime Pointer to structure in which the time is returned. - -\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ -UINT32 Oct6100UserGetTime( - IN OUT tPOCT6100_GET_TIME f_pTime ) -{ - - return cOCT6100_ERR_OK; -} - - - - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ - -Function: Oct6100UserMemSet - -Description: Sets f_ulLength bytes pointed to by f_pAddress to f_ulPattern. - -------------------------------------------------------------------------------- -| Argument | Description -------------------------------------------------------------------------------- - -f_pAddress Address in host memory where data should be set. -f_ulPattern Pattern to apply at the address. This value will never - exceed 0xFF. -f_ulLength Length in bytes to set. - -\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ -UINT32 Oct6100UserMemSet( - IN PVOID f_pAddress, - IN UINT32 f_ulPattern, - IN UINT32 f_ulLength ) -{ - - return cOCT6100_ERR_OK; -} - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ - -Function: Oct6100UserMemCopy - -Description: Copy f_ulLength bytes from f_pSource to f_pDestination. - -------------------------------------------------------------------------------- -| Argument | Description -------------------------------------------------------------------------------- - -f_pDestination Host data destination address. -f_pSource Host data source address. -f_ulLength Length in bytes to copy. - -\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ -UINT32 Oct6100UserMemCopy( - IN PVOID f_pDestination, - IN PVOID f_pSource, - IN UINT32 f_ulLength ) -{ - - return cOCT6100_ERR_OK; -} - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ - -Function: Oct6100UserCreateSerializeObject - -Description: Creates a serialization object. The serialization object is - seized via the Oct6100UserSeizeSerializeObject function. - -------------------------------------------------------------------------------- -| Argument | Description -------------------------------------------------------------------------------- -f_pCreate Pointer to structure in which the serialization object's - handle is returned. - -\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ -UINT32 Oct6100UserCreateSerializeObject( - IN OUT tPOCT6100_CREATE_SERIALIZE_OBJECT f_pCreate ) -{ - - - return cOCT6100_ERR_OK; -} - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ - -Function: Oct6100UserDestroySerializeObject - -Description: Destroys the indicated serialization object. - -------------------------------------------------------------------------------- -| Argument | Description -------------------------------------------------------------------------------- -f_pDestroy Pointer to structure containing the handle of the - serialization object. - -\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ -UINT32 Oct6100UserDestroySerializeObject( - IN tPOCT6100_DESTROY_SERIALIZE_OBJECT f_pDestroy ) -{ - - - return cOCT6100_ERR_OK; -} - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ - -Function: Oct6100UserSeizeSerializeObject - -Description: Seizes the indicated serialization object. - -------------------------------------------------------------------------------- -| Argument | Description -------------------------------------------------------------------------------- -f_pSeize Pointer to structure containing the handle of the - serialization object. - -\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ -UINT32 Oct6100UserSeizeSerializeObject( - IN tPOCT6100_SEIZE_SERIALIZE_OBJECT f_pSeize ) -{ - - - return cOCT6100_ERR_OK; -} - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ - -Function: Oct6100UserReleaseSerializeObject - -Description: Releases the indicated serialization object. - -------------------------------------------------------------------------------- -| Argument | Description -------------------------------------------------------------------------------- -f_pRelease Pointer to structure containing the handle of the - serialization object. - -\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ -UINT32 Oct6100UserReleaseSerializeObject( - IN tPOCT6100_RELEASE_SERIALIZE_OBJECT f_pRelease ) -{ - - - return cOCT6100_ERR_OK; -} - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ - -Function: Oct6100UserDriverWriteApi - -Description: Performs a write access to the chip. This function is - accessible only from the API code entity (i.e. not from the - APIMI code entity). - -------------------------------------------------------------------------------- -| Argument | Description -------------------------------------------------------------------------------- -f_pWriteParams Pointer to structure containing the Params to the - write function. - -\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ -UINT32 Oct6100UserDriverWriteApi( - IN tPOCT6100_WRITE_PARAMS f_pWriteParams ) -{ - - - - - return cOCT6100_ERR_OK; -} - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ - -Function: Oct6100UserDriverWriteOs - -Description: Performs a write access to the chip. This function is - accessible only from the APIMI code entity (i.e. not from the - API code entity). - -------------------------------------------------------------------------------- -| Argument | Description -------------------------------------------------------------------------------- -f_pWriteParams Pointer to structure containing the Params to the - write function. - -\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ -UINT32 Oct6100UserDriverWriteOs( - IN tPOCT6100_WRITE_PARAMS f_pWriteParams ) -{ - - return cOCT6100_ERR_OK; -} - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ - -Function: Oct6100UserDriverWriteSmearApi - -Description: Performs a series of write accesses to the chip. The same data - word is written to a series of addresses. The writes begin at - the start address, and the address is incremented by the - indicated amount for each subsequent write. This function is - accessible only from the API code entity (i.e. not from the - APIMI code entity). - -------------------------------------------------------------------------------- -| Argument | Description -------------------------------------------------------------------------------- -f_pSmearParams Pointer to structure containing the parameters to the - write smear function. - -\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ -UINT32 Oct6100UserDriverWriteSmearApi( - IN tPOCT6100_WRITE_SMEAR_PARAMS f_pSmearParams ) -{ - - - - - return cOCT6100_ERR_OK; -} - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ - -Function: Oct6100UserDriverWriteSmearOs - -Description: Performs a series of write accesses to the chip. The same data - word is written to a series of addresses. The writes begin at - the start address, and the address is incremented by the - indicated amount for each subsequent write. This function is - accessible only from the APIMI code entity (i.e. not from the - API code entity). - -------------------------------------------------------------------------------- -| Argument | Description -------------------------------------------------------------------------------- -f_pSmearParams Pointer to structure containing the parameters to the - write smear function. - -\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ -UINT32 Oct6100UserDriverWriteSmearOs( - IN tPOCT6100_WRITE_SMEAR_PARAMS f_pSmearParams ) -{ - - - return cOCT6100_ERR_OK; -} - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ - -Function: Oct6100UserDriverWriteBurstApi - -Description: Performs a series of write accesses to the chip. An array of - data words is written to a series of consecutive addresses. - The writes begin at the start address with element 0 of the - provided array as the data word. The address is incremented by - two for each subsequent write. This function is accessible only - from the API code entity (i.e. not from the APIMI code entity). - -------------------------------------------------------------------------------- -| Argument | Description -------------------------------------------------------------------------------- -f_pBurstParams Pointer to structure containing the parameters to the - write burst function. - -\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ -UINT32 Oct6100UserDriverWriteBurstApi( - IN tPOCT6100_WRITE_BURST_PARAMS f_pBurstParams ) -{ - - - - - return cOCT6100_ERR_OK; -} - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ - -Function: Oct6100UserDriverWriteBurstOs - -Description: Performs a series of write accesses to the chip. An array of - data words is written to a series of consecutive addresses. - The writes begin at the start address with element 0 of the - provided array as the data word. The address is incremented by - two for each subsequent write. This function is accessible only - from the API code entity (i.e. not from the APIMI code entity). - -------------------------------------------------------------------------------- -| Argument | Description -------------------------------------------------------------------------------- -f_pBurstParams Pointer to structure containing the parameters to the - write burst function. - -\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ -UINT32 Oct6100UserDriverWriteBurstOs( - IN tPOCT6100_WRITE_BURST_PARAMS f_pBurstParams ) -{ - - - return cOCT6100_ERR_OK; -} - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ - -Function: Oct6100UserDriverReadApi - -Description: Performs a read access to the chip. This function is accessible - only from the API code entity (i.e. not from the APIMI code - entity). - -------------------------------------------------------------------------------- -| Argument | Description -------------------------------------------------------------------------------- -f_pReadParams Pointer to structure containing the parameters to the - read function. - -\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ -UINT32 Oct6100UserDriverReadApi( - IN OUT tPOCT6100_READ_PARAMS f_pReadParams ) -{ - - - - - return cOCT6100_ERR_OK; -} - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ - -Function: Oct6100UserDriverReadOs - -Description: Performs a read access to the chip. This function is accessible - only from the APIMI code entity (i.e. not from the API code - entity). - -------------------------------------------------------------------------------- -| Argument | Description -------------------------------------------------------------------------------- -f_pReadParams Pointer to structure containing the parameters to the - read function. - -\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ -UINT32 Oct6100UserDriverReadOs( - IN OUT tPOCT6100_READ_PARAMS f_pReadParams ) -{ - - - return cOCT6100_ERR_OK; -} - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ - -Function: Oct6100UserDriverReadBurstApi - -Description: Performs a burst of read accesses to the chip. The first read - is performed at the start address, and the address is - incremented by two for each subsequent read. The data is - retunred in an array provided by the user. This function is - accessible only from the API code entity (i.e. not from the - APIMI code entity). - -------------------------------------------------------------------------------- -| Argument | Description -------------------------------------------------------------------------------- -f_pBurstParams Pointer to structure containing the parameters to the - read burst function. - -\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ -UINT32 Oct6100UserDriverReadBurstApi( - IN OUT tPOCT6100_READ_BURST_PARAMS f_pBurstParams ) -{ - - - - - return cOCT6100_ERR_OK; -} - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ - -Function: Oct6100UserDriverReadBurstOs - -Description: Performs a burst of read accesses to the chip. The first read - is performed at the start address, and the address is - incremented by two for each subsequent read. The data is - retunred in an array provided by the user. This function is - accessible only from the APIMI code entity (i.e. not from the - API code entity). - -------------------------------------------------------------------------------- -| Argument | Description -------------------------------------------------------------------------------- -f_pBurstParams Pointer to structure containing the parameters to the - read burst function. - -\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ -UINT32 Oct6100UserDriverReadBurstOs( - IN OUT tPOCT6100_READ_BURST_PARAMS f_pBurstParams ) -{ - - - return cOCT6100_ERR_OK; -} - - - - - - - diff --git a/patches/kdrivers/wanec/wanec.mod.c b/patches/kdrivers/wanec/wanec.mod.c index 9223540..57f73cb 100644 --- a/patches/kdrivers/wanec/wanec.mod.c +++ b/patches/kdrivers/wanec/wanec.mod.c @@ -4,9 +4,10 @@ MODULE_INFO(vermagic, VERMAGIC_STRING); +#undef unix struct module __this_module __attribute__((section(".gnu.linkonce.this_module"))) = { - .name = KBUILD_MODNAME, + .name = __stringify(KBUILD_MODNAME), .init = init_module, #ifdef CONFIG_MODULE_UNLOAD .exit = cleanup_module, @@ -16,33 +17,32 @@ __attribute__((section(".gnu.linkonce.this_module"))) = { static const struct modversion_info ____versions[] __attribute_used__ __attribute__((section("__versions"))) = { - { 0x89e24b9c, "struct_module" }, - { 0x12da5bb2, "__kmalloc" }, - { 0xec7bc0d, "__mod_timer" }, + { 0x44d7b32c, "struct_module" }, + { 0x7da8156e, "__kmalloc" }, + { 0xdcad5d16, "__mod_timer" }, { 0xd6ee688f, "vmalloc" }, - { 0x4827a016, "del_timer" }, - { 0xf26c4b72, "class_device_destroy" }, - { 0xb5513e49, "class_device_create" }, - { 0xab978df6, "malloc_sizes" }, - { 0x1bcd461f, "_spin_lock" }, + { 0x15413d5, "del_timer" }, + { 0x1192e363, "malloc_sizes" }, + { 0x14e57c7d, "class_simple_create" }, { 0xeae3dfd6, "__const_udelay" }, { 0x2fd1d81c, "vfree" }, { 0x1d26aa98, "sprintf" }, - { 0x7d11c268, "jiffies" }, + { 0xda02d67, "jiffies" }, + { 0xd7474566, "__copy_to_user_ll" }, + { 0x1af40e18, "__copy_from_user_ll" }, { 0x1b7d4074, "printk" }, - { 0x5152e605, "memcmp" }, - { 0x2da418b5, "copy_to_user" }, - { 0x2e1de6c1, "class_create" }, - { 0x19070091, "kmem_cache_alloc" }, - { 0x4086729e, "register_chrdev" }, - { 0xd0b91f9b, "init_timer" }, + { 0x71c90087, "memcmp" }, + { 0xe2f1e52c, "class_simple_device_remove" }, + { 0x49e79940, "__cond_resched" }, + { 0xc01b581d, "kmem_cache_alloc" }, + { 0x2d30c0a, "register_chrdev" }, + { 0xf1fa0f9d, "class_simple_destroy" }, { 0xf6ebc03b, "net_ratelimit" }, { 0x72270e35, "do_gettimeofday" }, { 0x37a0cba, "kfree" }, { 0x2e60bace, "memcpy" }, { 0xc192d491, "unregister_chrdev" }, - { 0x4870cf59, "class_destroy" }, - { 0xf2a644fb, "copy_from_user" }, + { 0xc8abd94d, "class_simple_device_add" }, }; static const char __module_depends[] @@ -50,5 +50,3 @@ __attribute_used__ __attribute__((section(".modinfo"))) = "depends="; - -MODULE_INFO(srcversion, "3F518EE5B16E643E85FE299"); diff --git a/patches/kdrivers/wanec/wanec_cmd.c b/patches/kdrivers/wanec/wanec_cmd.c index 61d8383..d63b596 100644 --- a/patches/kdrivers/wanec/wanec_cmd.c +++ b/patches/kdrivers/wanec/wanec_cmd.c @@ -871,7 +871,9 @@ int wanec_ChannelOpen(wan_ec_dev_t *ec_dev, wan_ec_api_t *ec_api) EchoChannelOpen.VqeConfig.fAcousticEcho = TRUE; #endif - EchoChannelOpen.VqeConfig.fSoutAdaptiveNoiseReduction = FALSE; + /* Breaks Faxing + EchoChannelOpen.VqeConfig.fSoutAdaptiveNoiseReduction = TRUE; + */ EchoChannelOpen.VqeConfig.ulComfortNoiseMode = cOCT6100_COMFORT_NOISE_NORMAL; /* cOCT6100_COMFORT_NOISE_NORMAL diff --git a/patches/kdrivers/wanec/wanec_iface.c b/patches/kdrivers/wanec/wanec_iface.c index ee2f437..d0fcacf 100644 --- a/patches/kdrivers/wanec/wanec_iface.c +++ b/patches/kdrivers/wanec/wanec_iface.c @@ -258,7 +258,6 @@ static int wanec_enable(void *pcard, int enable, int fe_channel) { sdla_t *card = (sdla_t*)pcard; wan_ec_dev_t *ec_dev = NULL; - int err; ec_dev = #if defined(__WINDOWS__) @@ -266,15 +265,9 @@ static int wanec_enable(void *pcard, int enable, int fe_channel) #else wanec_search(card->devname); #endif - WAN_ASSERT(ec_dev == NULL); #if defined(WANEC_BYDEFAULT_NORMAL) - WAN_ASSERT(ec_dev->ec == NULL); - wan_spin_lock(&ec_dev->ec->lock); - err=wanec_bypass(ec_dev, fe_channel, enable, 0); - wan_spin_unlock(&ec_dev->ec->lock); - - return err; + return wanec_bypass(ec_dev, fe_channel, enable, 0); #else return wanec_modify_channel( ec_dev, @@ -310,7 +303,7 @@ static int wanec_bypass(wan_ec_dev_t *ec_dev, int fe_channel, int enable, int ve } if (enable){ if (!wan_test_bit(fe_channel, &card->wandev.ec_map)){ - if (ec->ec_active >= ec->max_channels){ + if (ec->ec_channels_no >= ec->max_channels){ DEBUG_EVENT( "%s: Exceeded maximum number of Echo Canceller channels (max=%d)!\n", ec->name, @@ -331,9 +324,9 @@ static int wanec_bypass(wan_ec_dev_t *ec_dev, int fe_channel, int enable, int ve err = card->wandev.hwec_enable(card, enable, fe_channel); if (!err){ if (enable){ - ec->ec_active++; + ec->ec_channels_no++; }else{ - if (ec->ec_active) ec->ec_active--; + if (ec->ec_channels_no) ec->ec_channels_no--; } }else{ PRINT1(verbose, @@ -1235,7 +1228,7 @@ int wanec_ioctl(void *data, void *pcard) } WAN_ASSERT(ec_dev->ec == NULL); ec = ec_dev->ec; - wan_spin_lock(&ec->lock); +// wan_spin_lock(&ec->lock); if (wan_test_bit(WAN_EC_BIT_CRIT_DOWN, &ec_dev->critical)){ PRINT1(ec_api->verbose, @@ -1316,7 +1309,7 @@ int wanec_ioctl(void *data, void *pcard) wan_clear_bit(WAN_EC_BIT_CRIT_CMD, &ec->critical); wanec_ioctl_done: - wan_spin_unlock(&ec->lock); +// wan_spin_unlock(&ec->lock); #if defined(__LINUX__) err = WAN_COPY_TO_USER( data, @@ -1375,8 +1368,6 @@ static void* wanec_register(void *pcard, int max_channels) wan_ec_dev_t *ec_dev = NULL, *ec_dev_new = NULL; WAN_DEBUG_FUNC_START; - - #if defined(__WINDOWS__) ec = get_wan_ec_ptr(card); #else @@ -1433,13 +1424,12 @@ static void* wanec_register(void *pcard, int max_channels) __FUNCTION__,__LINE__); return NULL; } - memset(ec, 0, sizeof(wan_ec_t)); ec->chip_no = ++wan_ec_no; ec->state = WAN_OCT6100_STATE_RESET; - ec->ec_active = 0; + ec->ec_channels_no = 0; ec->max_channels = max_channels; - wan_spin_lock_init(&ec->lock); + //wan_spin_lock_init(&ec->lock); sprintf(ec->name, "%s%d", WANEC_DEV_NAME, ec->chip_no); Oct6100InterruptServiceRoutineDef(&ec->f_InterruptFlag); @@ -1512,7 +1502,7 @@ static int wanec_unregister(void *arg, void *pcard) WAN_DEBUG_FUNC_START; ec = ec_dev->ec; - wan_spin_lock(&ec->lock); +// wan_spin_lock(&ec->lock); DEBUG_EVENT("%s: Unregister interface from %s (chip id %d, usage %d)!\n", card->devname, ec->name, @@ -1572,7 +1562,7 @@ static int wanec_unregister(void *arg, void *pcard) ec_dev->ec = NULL; wan_free(ec_dev); } - wan_spin_unlock(&ec->lock); +// wan_spin_unlock(&ec->lock); WAN_DEBUG_FUNC_END; return 0; } @@ -1646,11 +1636,11 @@ static int wanec_poll(void *arg, void *pcard) WAN_DEBUG_FUNC_START; - wan_spin_lock(&ec->lock); +// wan_spin_lock(&ec->lock); wan_clear_bit(WAN_EC_BIT_TIMER_RUNNING,(void*)&ec_dev->critical); if (wan_test_bit(WAN_EC_BIT_CRIT_DOWN, &ec_dev->critical)){ ec_dev->poll_cmd = WAN_EC_POLL_NONE; - wan_spin_unlock(&ec->lock); +// wan_spin_unlock(&ec->lock); return -EINVAL; } switch(ec_dev->poll_cmd){ @@ -1693,7 +1683,7 @@ static int wanec_poll(void *arg, void *pcard) ec_dev->poll_cmd = WAN_EC_POLL_NONE; wanec_poll_done: - wan_spin_unlock(&ec->lock); +// wan_spin_unlock(&ec->lock); WAN_DEBUG_FUNC_END; return err; } diff --git a/patches/kdrivers/wanec/wanec_iface.c~ b/patches/kdrivers/wanec/wanec_iface.c~ deleted file mode 100644 index 7c0548a..0000000 --- a/patches/kdrivers/wanec/wanec_iface.c~ +++ /dev/null @@ -1,1807 +0,0 @@ -/************************************************************* - * wanec_iface.c WANPIPE Echo Canceller Layer (WANEC) - * - * - * - * =========================================================== - * - * May 10 2006 Alex Feldman Initial Versionr - */ - -/*============================================================= - * Includes - */ -#undef WAN_DEBUG_FUNC - -#if defined(__FreeBSD__) || defined(__OpenBSD__) -# include -# include -# include -# include -# include -#elif defined(__LINUX__) -# include -# include -# include -# include -# include -# include -#elif defined(__WINDOWS__) -# include -# include -# include -# include -# include -# include - -# define DEBUG_HWEC_V1 DbgPrint -//#define DEBUG_HWEC_V1 -#endif - -#include "wanec_iface.h" - -/*============================================================= - * Definitions - */ -#define WAN_OCT6100_ENABLE_INTR_POLL - -#define WAN_OCT6100_READ_LIMIT 0x10000 - -#if 0 -# define DEBUG -#endif - -/*============================================================= - * Global Parameters - */ -#if defined(DEBUG) -static int global_verbose = WAN_EC_VERBOSE_EXTRA1; -#else -static int global_verbose = WAN_EC_VERBOSE_NONE; -#endif - -WAN_LIST_HEAD(wan_ec_head_, wan_ec_) wan_ec_head = - WAN_LIST_HEAD_INITIALIZER(wan_ec_head); - -wanec_iface_t wanec_iface = -{ - 0, - NULL, - NULL, - - NULL, - NULL, - NULL, - NULL -}; - -static int wan_ec_no = 0; - -static unsigned char wpec_fullname[]="WANPIPE(tm) WANEC Layer"; -static unsigned char wpec_copyright[]="(c) 1995-2006 Sangoma Technologies Inc."; -/*============================================================= - * Function definition - */ - -#if defined(__LINUX__) -extern int wanec_create_dev(void); -extern int wanec_remove_dev(void); -#elif defined(__WINDOWS__) -extern int wanec_create_dev(void); -extern int wanec_remove_dev(void); -extern void* get_wan_ec_ptr(sdla_t *card); -extern void set_wan_ec_ptr(sdla_t *card, IN void *wan_ec_ptr); -#endif - -int register_wanec_iface (wanec_iface_t *iface); -void unregister_wanec_iface (void); - -extern int wanec_fe2ec_channel(wan_ec_dev_t*, int); - -extern int wanec_ChipOpenPrep(wan_ec_dev_t*, wan_ec_api_t*); -extern int wanec_ChipOpen(wan_ec_dev_t*, int verbose); -extern int wanec_ChipOpen_OLD(wan_ec_dev_t*, wan_ec_api_t*); -extern int wanec_ChipClose(wan_ec_dev_t*, int verbose); -extern int wanec_ChipStats(wan_ec_dev_t*, wan_ec_api_t*, int); - -extern int wanec_ChannelOpen(wan_ec_dev_t*, wan_ec_api_t *ec_api); -extern int wanec_ChannelClose(wan_ec_dev_t*, wan_ec_api_t *ec_api, int); -extern int wanec_ChannelModify(wan_ec_dev_t*, INT, UINT32, wan_ec_api_t*, int verbose); -extern int wanec_ChannelStats(wan_ec_dev_t*, INT channel, wan_ec_api_t *ec_api, int reset); - -extern int wanec_TonesEnable(wan_ec_t *ec, int channel, unsigned char, int verbose); -extern int wanec_TonesDisable(wan_ec_t *ec, int channel, unsigned char, int verbose); - -extern int wanec_DebugChannel(wan_ec_t *ec, INT channel, int verbose); -extern int wanec_DebugGetData(wan_ec_t *ec, wan_ec_api_t *ec_api); - -extern int wanec_BufferLoad(wan_ec_dev_t *ec_dev, wan_ec_api_t *ec_api); -extern int wanec_BufferUnload(wan_ec_dev_t *ec_dev, wan_ec_api_t *ec_api); -extern int wanec_BufferPlayoutAdd(wan_ec_t *ec, int channel, wan_ec_api_t *ec_api); -extern int wanec_BufferPlayoutStart(wan_ec_t *ec, int channel, wan_ec_api_t *ec_api); -extern int wanec_BufferPlayoutStop(wan_ec_t *ec, int channel, wan_ec_api_t *ec_api); - -extern int wanec_EventTone(wan_ec_t *ec, int verbose); -extern int wanec_ISR(wan_ec_t *ec, int verbose); - -static int wanec_config(wan_ec_dev_t *ec_dev, wan_ec_api_t *ec_api); -static int wanec_release(wan_ec_dev_t *ec_dev, wan_ec_api_t *ec_api, int verbose); -static int wanec_channel_open(wan_ec_dev_t *ec_dev, wan_ec_api_t *ec_api); -static int wanec_modify_channel(wan_ec_dev_t *ec_dev, int fe_chan, u32 cmd, int verbose); -static int wanec_modify(wan_ec_dev_t *ec_dev, wan_ec_api_t *ec_api); -static int wanec_modify_mode(wan_ec_dev_t *ec_dev, wan_ec_api_t *ec_api); -static int wanec_modify_bypass(wan_ec_dev_t *ec_dev, wan_ec_api_t *ec_api); -static int wanec_bypass(wan_ec_dev_t *ec_dev, int fe_channel, int enable, int verbose); - -static wan_ec_dev_t *wanec_search(char *devname); - -static int wanec_enable(void *pcard, int enable, int channel); -static int wanec_poll(void *arg, void *pcard); - -#if defined(__FreeBSD__) || defined(__OpenBSD__) -int wanec_ioctl(void *sc, void *data); -#elif defined(__LINUX__) -int wanec_ioctl(unsigned int cmd, void *data); -#endif - -int wan_ec_write_internal_dword(wan_ec_dev_t *ec_dev, u32 addr1, u32 data); -int wan_ec_read_internal_dword(wan_ec_dev_t *ec_dev, u32 addr1, u32 *data); - -int wanec_init(void*); -int wanec_exit(void*); - - -/*****************************************************************************/ - -static u32 convert_addr(u32 addr) -{ - addr &= 0xFFFF; - switch(addr){ - case 0x0000: - return 0x60; - case 0x0002: - return 0x64; - case 0x0004: - return 0x68; - case 0x0008: - return 0x70; - case 0x000A: - return 0x74; - } - return 0x00; -} - -/*===========================================================================*\ - ReadInternalDword -\*===========================================================================*/ -int wan_ec_read_internal_dword(wan_ec_dev_t *ec_dev, u32 addr1, u32 *data) -{ - sdla_t *card = NULL; - u32 addr; - int err; - - WAN_ASSERT(ec_dev == NULL); - WAN_ASSERT(ec_dev->card == NULL); - card = ec_dev->card; - addr = convert_addr(addr1); - if (addr == 0x00){ - DEBUG_EVENT("%s: %s:%d: Internal Error (EC off %X)\n", - card->devname, - __FUNCTION__,__LINE__, - addr1); - return -EINVAL; - } - - err = card->hw_iface.bus_read_4(card->hw, addr, data); - - WP_DELAY(5); - return err; -} - - -/*===========================================================================*\ - WriteInternalDword -\*===========================================================================*/ -int wan_ec_write_internal_dword(wan_ec_dev_t *ec_dev, u32 addr1, u32 data) -{ - sdla_t *card = NULL; - u32 addr; - int err; - - WAN_ASSERT(ec_dev == NULL); - WAN_ASSERT(ec_dev->card == NULL); - card = ec_dev->card; - addr = convert_addr(addr1); - if (addr == 0x00){ - DEBUG_EVENT("%s: %s:%d: Internal Error (EC off %X)\n", - card->devname, - __FUNCTION__,__LINE__, - addr1); - return -EINVAL; - } - - - err = card->hw_iface.bus_write_4(card->hw, addr, data); - - WP_DELAY(5); - return err; -} - - -static int wanec_reset(wan_ec_dev_t *ec_dev, int reset) -{ - sdla_t *card; - wan_ec_t *ec; - int err = -EINVAL; - - WAN_ASSERT(ec_dev == NULL); - WAN_ASSERT(ec_dev->ec == NULL); - WAN_ASSERT(ec_dev->card == NULL); - ec = ec_dev->ec; - card = ec_dev->card; - if (card->wandev.hwec_reset){ - /* reset=1 - Set HW EC reset - ** reset=0 - Clear HW EC reset */ - err = card->wandev.hwec_reset(card, reset); - if (!err){ - if (reset){ - ec->state = WAN_OCT6100_STATE_RESET; - }else{ - ec->state = WAN_OCT6100_STATE_READY; - } - } - } - return err; -} - -static int wanec_enable(void *pcard, int enable, int fe_channel) -{ - sdla_t *card = (sdla_t*)pcard; - wan_ec_dev_t *ec_dev = NULL; - int err; - - ec_dev = -#if defined(__WINDOWS__) - card->ec_dev_ptr; -#else - wanec_search(card->devname); -#endif - WAN_ASSERT(ec_dev == NULL); - -#if defined(WANEC_BYDEFAULT_NORMAL) - WAN_ASSERT(ec_dev->ec == NULL); - wan_spin_lock(&ec_dev->ec->lock); - err=wanec_bypass(ec_dev, fe_channel, enable, 0); - wan_spin_unlock(&ec_dev->ec->lock); - - return err; -#else - return wanec_modify_channel( - ec_dev, - fe_channel, - (enable) ? WAN_EC_CMD_ENABLE : WAN_EC_CMD_DISABLE, - 0); -#endif -} - -static int wanec_bypass(wan_ec_dev_t *ec_dev, int fe_channel, int enable, int verbose) -{ - wan_ec_t *ec = NULL; - sdla_t *card = NULL; - int err = -ENODEV; - - WAN_ASSERT(ec_dev == NULL); - WAN_ASSERT(ec_dev->ec == NULL); - WAN_ASSERT(ec_dev->card == NULL); - ec = ec_dev->ec; - card = ec_dev->card; - - PRINT1(verbose, - "%s: %s bypass mode for channel %d (%lX)!\n", - card->devname, - (enable) ? "Enable" : "Disable", - fe_channel, - card->wandev.ec_map); - - if (card->wandev.hwec_enable == NULL){ - DEBUG_EVENT("%s: Undefined HW EC callback function!\n", - ec->name); - return -ENODEV; - } - if (enable){ - if (!wan_test_bit(fe_channel, &card->wandev.ec_map)){ - if (ec->ec_active >= ec->max_channels){ - DEBUG_EVENT( - "%s: Exceeded maximum number of Echo Canceller channels (max=%d)!\n", - ec->name, - ec->max_channels); - return -ENODEV; - } - }else{ - /* Already enabled */ - return 0; - } - }else{ - if (!wan_test_bit(fe_channel, &card->wandev.ec_map)){ - /* Already disabled */ - return 0; - } - - } - err = card->wandev.hwec_enable(card, enable, fe_channel); - if (!err){ - if (enable){ - ec->ec_active++; - }else{ - if (ec->ec_active) ec->ec_active--; - } - }else{ - PRINT1(verbose, - "%s: HWEC option is not enable for the channel %d (%lX)!\n", - ec->name, fe_channel, card->wandev.ec_enable_map); - return err; - } - return err; -} - -#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) -static void wanec_timer(void* p_ec_dev) -#elif defined(__WINDOWS__) -static void wanec_timer(IN PKDPC Dpc, void* p_ec_dev, void* arg2, void* arg3) -#else -static void wanec_timer(unsigned long p_ec_dev) -#endif -{ - wan_ec_dev_t *ec_dev = (wan_ec_dev_t*)p_ec_dev; - sdla_t *card = NULL; - - WAN_ASSERT1(ec_dev == NULL); - WAN_ASSERT1(ec_dev->card == NULL); - card = (sdla_t*)ec_dev->card; - - if (wan_test_bit(WAN_EC_BIT_TIMER_KILL,(void*)&ec_dev->critical)){ - wan_clear_bit(WAN_EC_BIT_TIMER_RUNNING,(void*)&ec_dev->critical); - return; - } - /*WAN_ASSERT1(wandev->te_enable_timer == NULL); */ - /* Enable hardware interrupt for TE1 */ - - if (card->wandev.ec_enable_timer){ - card->wandev.ec_enable_timer(card); - }else{ - wanec_poll(ec_dev, card); - } - return; -} - -/* - ****************************************************************************** - * wanec_enable_timer() - * - * Description: Enable software timer interrupt in delay ms. - * Arguments: - * Returns: - ****************************************************************************** - */ -static void wanec_enable_timer(wan_ec_dev_t* ec_dev, u_int8_t cmd, u_int32_t delay) -{ - sdla_t *card = NULL; - - WAN_ASSERT1(ec_dev == NULL); - WAN_ASSERT1(ec_dev->card == NULL); - card = (sdla_t*)ec_dev->card; - -#if defined (__WINDOWS__) - if(KeGetCurrentIrql() > DISPATCH_LEVEL){ - /* May get here on AFT card because front end interrupt - is handled inside ISR not in DPC as on S514. - The KeSetTimer() function is illegal inside ISR, - so queue 'front_end_dpc_obj' DPC and this routine - will be called again from xilinx_front_end_dpc(). - */ - card->xilinx_fe_dpc.te_timer_delay = delay; - ec_dev->poll_cmd = (u_int8_t)cmd; - - if(KeInsertQueueDpc(&card->front_end_dpc_obj, NULL, - (PVOID)ENABLE_HWEC_TIMER) == FALSE){ - - DEBUG_HWEC("Failed to queue 'front_end_dpc_obj'!\n"); - }else{ - DEBUG_HWEC("Successfully queued 'front_end_dpc_obj'.\n"); - } - return; - }/* if() */ -#endif - if (wan_test_bit(WAN_EC_BIT_TIMER_KILL,(void*)&ec_dev->critical)){ - wan_clear_bit(WAN_EC_BIT_TIMER_RUNNING, (void*)&ec_dev->critical); - return; - } - - if (wan_test_bit(WAN_EC_BIT_TIMER_RUNNING,(void*)&ec_dev->critical)){ - if (ec_dev->poll_cmd == cmd){ - /* Just ignore current request */ - return; - } - DEBUG_EVENT("%s: WAN_EC_BIT_TIMER_RUNNING: new_cmd=%X curr_cmd=%X\n", - ec_dev->name, - cmd, - ec_dev->poll_cmd); - return; - } - - wan_set_bit(WAN_EC_BIT_TIMER_RUNNING,(void*)&ec_dev->critical); - ec_dev->poll_cmd=cmd; - wan_add_timer(&ec_dev->timer, delay * HZ / 1000); - return; -} - -wan_ec_dev_t *wanec_search(char *devname) -{ - wan_ec_t *ec; - wan_ec_dev_t *ec_dev = NULL; - - WAN_LIST_FOREACH(ec, &wan_ec_head, next){ - WAN_LIST_FOREACH(ec_dev, &ec->ec_dev_head, next){ - if (strcmp(ec_dev->devname, devname) == 0){ - return ec_dev; - } - } - } - return NULL; -} - -static int wanec_config(wan_ec_dev_t *ec_dev, wan_ec_api_t *ec_api) -{ - wan_ec_t *ec = NULL; - int err; - - WAN_ASSERT(ec_dev == NULL); - WAN_ASSERT(ec_dev->ec == NULL); - ec = ec_dev->ec; - switch(ec->state){ - case WAN_OCT6100_STATE_RESET: - case WAN_OCT6100_STATE_READY: - break; - case WAN_OCT6100_STATE_CHIP_OPEN: - case WAN_OCT6100_STATE_CHIP_OPEN_PENDING: - case WAN_OCT6100_STATE_CHIP_READY: - DEBUG_HWEC( - "%s: Echo Canceller %s chip is %s!\n", - ec_api->devname, ec->name, - WAN_OCT6100_STATE_DECODE(ec->state)); - break; - default: - DEBUG_EVENT( - "ERROR: %s: Invalid Echo Canceller %s API state (%s)\n", - ec_api->devname, ec->name, - WAN_OCT6100_STATE_DECODE(ec->state)); - ec_api->err = WAN_EC_API_RC_INVALID_STATE; - return 0; - } - - if (ec->state == WAN_OCT6100_STATE_RESET){ - err = wanec_reset(ec_dev, 0); - if (err) return err; - } - - if (ec->state == WAN_OCT6100_STATE_READY){ - - if (wanec_ChipOpenPrep(ec_dev, ec_api)){ - wanec_reset(ec_dev, 1); - return -EINVAL; - } - ec->imageLast = ec_api->u_config.imageLast; - ec->state = WAN_OCT6100_STATE_CHIP_OPEN_PENDING; - wanec_enable_timer(ec_dev, WAN_EC_POLL_CHIPOPENPENDING, 10); - } - ec_dev->state = ec->state; - return 0; -} - -static int wanec_channel_open(wan_ec_dev_t *ec_dev, wan_ec_api_t *ec_api) -{ - wan_ec_t *ec = NULL; - unsigned int ec_chan, fe_chan; - - WAN_ASSERT(ec_dev == NULL); - WAN_ASSERT(ec_dev->ec == NULL); - ec = ec_dev->ec; - switch(ec->state){ - case WAN_OCT6100_STATE_CHIP_OPEN: - break; - case WAN_OCT6100_STATE_CHIP_READY: - DEBUG_HWEC( - "%s: Echo Canceller %s chip is %s!\n", - ec_api->devname, ec->name, - WAN_OCT6100_STATE_DECODE(ec->state)); - break; - default: - PRINT1(ec_api->verbose, - "ERROR: %s: Invalid Echo Canceller %s API state (%s)\n", - ec_api->devname, ec->name, - WAN_OCT6100_STATE_DECODE(ec->state)); - ec_api->err = WAN_EC_API_RC_INVALID_STATE; - return 0; - } - - if (ec->state == WAN_OCT6100_STATE_CHIP_OPEN){ - - /* Open all channels */ - if (wanec_ChannelOpen(ec_dev, ec_api)){ - wanec_ChipClose(ec_dev, ec_api->verbose); - wanec_reset(ec_dev, 1); - return -EINVAL; - } - ec->state = WAN_OCT6100_STATE_CHIP_READY; - } - ec_dev->state = ec->state; - - /* EC_DEV_MAP */ - for(fe_chan=0; fe_chan < ec_dev->fe_max_channels; fe_chan++){ - ec_chan = wanec_fe2ec_channel(ec_dev, fe_chan); - ec->pEcDevMap[ec_chan] = ec_dev; - } - return 0; -} - -int wanec_release(wan_ec_dev_t *ec_dev, wan_ec_api_t *ec_api, int verbose) -{ - wan_ec_t *ec = NULL; - wan_ec_dev_t *ec_dev_tmp = NULL; - unsigned int fe_chan, ec_chan, err = 0; - - WAN_ASSERT(ec_dev == NULL); - WAN_ASSERT(ec_dev->ec == NULL); - ec = ec_dev->ec; - - switch(ec->state){ - case WAN_OCT6100_STATE_READY: - case WAN_OCT6100_STATE_CHIP_OPEN: - case WAN_OCT6100_STATE_CHIP_OPEN_PENDING: - case WAN_OCT6100_STATE_CHIP_READY: - break; - case WAN_OCT6100_STATE_RESET: - return 0; - default: - PRINT1(verbose, - "%s: WARNING: Echo Canceller %s API state (%s)\n", - ec_dev->devname, - ec->name, - WAN_OCT6100_STATE_DECODE(ec->state)); - return 0; - } - -#if defined(__WINDOWS__) - //for TDMV API there is only only one device created. - //So 'release' request should simply go ahead. - FUNC_DEBUG(); -#else - WAN_LIST_FOREACH(ec_dev_tmp, &ec->ec_dev_head, next){ - if (ec_dev_tmp != ec_dev){ - if (ec_dev_tmp->state == WAN_OCT6100_STATE_CHIP_READY){ - /* This EC device is still connected */ - ec->f_Context.ec_dev = ec_dev_tmp; - strlcpy(ec->f_Context.devname, ec_dev_tmp->devname, WAN_DRVNAME_SZ); - break; - } - } - } - -#endif - - for(fe_chan = 0; fe_chan < ec_dev->fe_max_channels; fe_chan++){ - ec_chan = wanec_fe2ec_channel(ec_dev, fe_chan); - if (ec->pEcDevMap){ - ec->pEcDevMap[ec_chan] = NULL; - } - } - ec_dev->state = WAN_OCT6100_STATE_RESET; - if (ec_dev_tmp){ - /* EC device is still in used */ - return 0; - } - - /* EC device is not in used anymore. - ** Close all channels and chip */ - if (ec->state == WAN_OCT6100_STATE_CHIP_READY){ - if (wanec_ChannelClose(ec_dev, ec_api, verbose)){ - return EINVAL; - } - ec->state = WAN_OCT6100_STATE_CHIP_OPEN; - } - if (ec->state == WAN_OCT6100_STATE_CHIP_OPEN){ - if (wanec_ChipClose(ec_dev, verbose)){ - return EINVAL; - } - ec->state = WAN_OCT6100_STATE_READY; - } - - if (ec->state == WAN_OCT6100_STATE_CHIP_OPEN_PENDING){ - ec->state = WAN_OCT6100_STATE_READY; - } - if (ec->state == WAN_OCT6100_STATE_READY){ - err = wanec_reset(ec_dev, 1); - if (err){ - return EINVAL; - } - } - return 0; -} - -static int wanec_modify_channel(wan_ec_dev_t *ec_dev, int fe_chan, u32 cmd, int verbose) -{ - wan_ec_t *ec = NULL; - sdla_t *card = NULL; - u_int32_t ec_chan = 0; - int err; - - WAN_ASSERT(ec_dev == NULL); - WAN_ASSERT(ec_dev->ec == NULL); - WAN_ASSERT(ec_dev->card == NULL); - ec = ec_dev->ec; - card = ec_dev->card; - - if (ec->state != WAN_OCT6100_STATE_CHIP_READY){ - PRINT1(verbose, - "WARNING: %s: Invalid Echo Canceller %s API state (%s)\n", - ec_dev->devname, - ec->name, - WAN_OCT6100_STATE_DECODE(ec->state)); - return WAN_EC_API_RC_INVALID_STATE; - } - - /* Enable Echo cancelation on Oct6100 */ - PRINT1(verbose, - "%s: %s Echo Canceller on channel %d ...\n", - ec_dev->devname, - (cmd == WAN_EC_CMD_ENABLE) ? "Enable" : "Disable", - fe_chan); - ec_chan = wanec_fe2ec_channel(ec_dev, fe_chan); - if (cmd == WAN_EC_CMD_ENABLE){ - err = wanec_ChannelModify( - ec_dev, - ec_chan, - cOCT6100_ECHO_OP_MODE_NORMAL, - NULL, - verbose); - if (err){ - return WAN_EC_API_RC_FAILED; - } - - /* Change rx/tx traffic through Oct6100 */ - if (wanec_bypass(ec_dev, fe_chan, 1, verbose)){ - return WAN_EC_API_RC_FAILED; - } - }else{ - /* Change rx/tx traffic through Oct6100 */ - if (wanec_bypass(ec_dev, fe_chan, 0, verbose)){ - return WAN_EC_API_RC_FAILED; - } - - err = wanec_ChannelModify( - ec_dev, - ec_chan, - cOCT6100_ECHO_OP_MODE_POWER_DOWN, - NULL, - verbose); - if (err){ - return WAN_EC_API_RC_FAILED; - } - } - - return 0; -} - - -static int wanec_modify(wan_ec_dev_t *ec_dev, wan_ec_api_t *ec_api) -{ - wan_ec_t *ec = NULL; - sdla_t *card = NULL; - u_int32_t cmd = ec_api->cmd; - u_int32_t fe_chan = 0; -#if 0 - u_int32_t ec_chan = 0; -#endif - int err; - - WAN_ASSERT(ec_dev == NULL); - WAN_ASSERT(ec_dev->ec == NULL); - WAN_ASSERT(ec_dev->card == NULL); - ec = ec_dev->ec; - card = ec_dev->card; - - if (ec->state != WAN_OCT6100_STATE_CHIP_READY){ - PRINT1(ec_api->verbose, - "WARNING: %s: Invalid Echo Canceller %s API state (%s)\n", - ec_dev->devname, - ec->name, - WAN_OCT6100_STATE_DECODE(ec->state)); - return WAN_EC_API_RC_INVALID_STATE; - } - - if (ec_api->channel_map == 0xFFFFFFFF){ - /* All channels selected */ - ec_api->channel_map = 0l; - for (fe_chan = 0; fe_chan < ec_dev->fe_max_channels; fe_chan++){ - ec_api->channel_map |= (1 << fe_chan); - } - }else{ - if (ec_dev->fe_media == WAN_MEDIA_T1 || - ec_dev->fe_media == WAN_MEDIA_FXOFXS){ - ec_api->channel_map = ec_api->channel_map >> 1; - } - } - - /* Enable Echo cancelation on Oct6100 */ - PRINT1(ec_api->verbose, - "%s: %s Echo Canceller on channel(s) map=0x%08lX ...\n", - ec_dev->devname, - (cmd == WAN_EC_CMD_ENABLE) ? "Enable" : "Disable", - ec_api->channel_map); - /*for(chan = fe_first; chan <= fe_last; chan++){*/ - for(fe_chan=0; fe_chan < ec_dev->fe_max_channels; fe_chan++){ - if (!(ec_api->channel_map & (1 << fe_chan))){ - continue; - } - if (ec_dev->fe_media == WAN_MEDIA_E1 && fe_chan == 0) continue; -#if 1 - err = wanec_modify_channel(ec_dev, fe_chan, cmd, ec_api->verbose); -#else - ec_chan = wanec_fe2ec_channel(ec_dev, fe_chan); - if (cmd == WAN_EC_CMD_ENABLE){ - err = wanec_ChannelModify( - ec_dev, - ec_chan, - cOCT6100_ECHO_OP_MODE_NORMAL, - ec_api); - if (err){ - return WAN_EC_API_RC_FAILED; - } - - /* Change rx/tx traffic through Oct6100 */ - if (wanec_bypass(ec_dev, fe_chan, 1, ec_api->verbose)){ - return WAN_EC_API_RC_FAILED; - } - }else{ - /* Change rx/tx traffic through Oct6100 */ - if (wanec_bypass(ec_dev, fe_chan, 0, ec_api->verbose)){ - return WAN_EC_API_RC_FAILED; - } - - err = wanec_ChannelModify( - ec_dev, - ec_chan, - cOCT6100_ECHO_OP_MODE_POWER_DOWN, - ec_api); - if (err){ - return WAN_EC_API_RC_FAILED; - } - } -#endif - } - - return 0; -} - -static int wanec_modify_mode(wan_ec_dev_t *ec_dev, wan_ec_api_t *ec_api) -{ - wan_ec_t *ec = NULL; - u_int32_t cmd = ec_api->cmd; - u_int32_t chan, ec_channel; - int err; - - WAN_ASSERT(ec_dev == NULL); - WAN_ASSERT(ec_dev->ec == NULL); - ec = ec_dev->ec; - if (ec->state != WAN_OCT6100_STATE_CHIP_READY){ - PRINT1(ec_api->verbose, - "WARNING: %s: Invalid Echo Canceller %s API state (%s)\n", - ec_dev->devname, - ec->name, - WAN_OCT6100_STATE_DECODE(ec->state)); - return WAN_EC_API_RC_INVALID_STATE; - } - - if (ec_api->channel_map == 0xFFFFFFFF){ - /* All channels selected */ - ec_api->channel_map = 0l; - for (chan = 0; chan < ec_dev->fe_max_channels; chan++){ - ec_api->channel_map |= (1 << chan); - } - }else{ - if (ec_dev->fe_media == WAN_MEDIA_T1 || - ec_dev->fe_media == WAN_MEDIA_FXOFXS){ - ec_api->channel_map = ec_api->channel_map >> 1; - } - } - /* Enable/Disable Normal mode on Oct6100 */ - PRINT1(ec_api->verbose, - "%s: %s Echo Canceller mode on channel(s) map=0x%08lX ...\n", - ec_dev->devname, - (cmd == WAN_EC_CMD_MODE_NORMAL) ? "Enable" : - (cmd == WAN_EC_CMD_MODE_POWERDOWN) ? "Disable" : "Modify", - ec_api->channel_map); - for(chan=0; chan < ec_dev->fe_max_channels; chan++){ - if (!(ec_api->channel_map & (1 << chan))){ - continue; - } - if (ec_dev->fe_media == WAN_MEDIA_E1 && chan == 0) continue; - ec_channel = wanec_fe2ec_channel(ec_dev, chan); - switch(cmd){ - case WAN_EC_CMD_MODE_NORMAL: - err = wanec_ChannelModify( - ec_dev, - ec_channel, - cOCT6100_ECHO_OP_MODE_NORMAL, - ec_api, - ec_api->verbose); - break; - case WAN_EC_CMD_MODE_POWERDOWN: - err = wanec_ChannelModify( - ec_dev, - ec_channel, - cOCT6100_ECHO_OP_MODE_POWER_DOWN, - ec_api, - ec_api->verbose); - break; - default: - err = wanec_ChannelModify( - ec_dev, - ec_channel, - cOCT6100_KEEP_PREVIOUS_SETTING, - ec_api, - ec_api->verbose); - break; - } - if (err){ - return WAN_EC_API_RC_FAILED; - } - } - return 0; -} - -static int wanec_modify_bypass(wan_ec_dev_t *ec_dev, wan_ec_api_t *ec_api) -{ - wan_ec_t *ec = NULL; - sdla_t *card = NULL; - unsigned int chan, fe_chan = 0; - - WAN_ASSERT(ec_dev == NULL); - WAN_ASSERT(ec_dev->ec == NULL); - WAN_ASSERT(ec_dev->card == NULL); - ec = ec_dev->ec; - card = ec_dev->card; - - if (ec->state != WAN_OCT6100_STATE_CHIP_READY){ - PRINT1(ec_api->verbose, - "WARNING: %s: Invalid Echo Canceller %s API state (%s)\n", - ec_dev->devname, - ec->name, - WAN_OCT6100_STATE_DECODE(ec->state)); - return WAN_EC_API_RC_INVALID_STATE; - } - if (ec_api->channel_map == 0xFFFFFFFF){ - /* All channels selected */ - ec_api->channel_map = 0l; - for (chan = 0; chan < ec_dev->fe_max_channels; chan++){ - ec_api->channel_map |= (1 << chan); - } - }else{ - if (ec_dev->fe_media == WAN_MEDIA_T1 || - ec_dev->fe_media == WAN_MEDIA_FXOFXS){ - ec_api->channel_map = ec_api->channel_map >> 1; - } - } - /* Enable/Disable bypass mode on Oct6100 */ - PRINT1(ec_api->verbose, - "%s: %s Bypass mode on channel(s) map=0x%08lX ...\n", - ec_dev->devname, - (ec_api->cmd == WAN_EC_CMD_BYPASS_ENABLE) ? "Enable" : "Disable", - ec_api->channel_map); - for(chan = 0; chan < ec_dev->fe_max_channels; chan++){ - if (!(ec_api->channel_map & (1 << chan))){ - continue; - } - fe_chan = chan; - if (ec_api->cmd == WAN_EC_CMD_BYPASS_ENABLE){ - /* Change rx/tx traffic through Oct6100 */ - if (wanec_bypass(ec_dev, fe_chan, 1, ec_api->verbose)){ - return WAN_EC_API_RC_FAILED; - } - }else{ - /* Change rx/tx traffic through Oct6100 */ - if (wanec_bypass(ec_dev, fe_chan, 0, ec_api->verbose)){ - return WAN_EC_API_RC_FAILED; - } - } - } - return 0; -} - - -static int wanec_modify_dtmf(wan_ec_dev_t *ec_dev, wan_ec_api_t *ec_api) -{ - wan_ec_t *ec = NULL; - sdla_t *card = NULL; - unsigned int fe_chan, ec_channel; - int err = WAN_EC_API_RC_OK; - - WAN_ASSERT(ec_dev == NULL); - WAN_ASSERT(ec_dev->ec == NULL); - WAN_ASSERT(ec_dev->card == NULL); - ec = ec_dev->ec; - card = ec_dev->card; - if (ec->state != WAN_OCT6100_STATE_CHIP_READY){ - PRINT1(ec_api->verbose, - "WARNING: %s: Invalid Echo Canceller %s API state (%s)\n", - ec_dev->devname, - ec->name, - WAN_OCT6100_STATE_DECODE(ec->state)); - return WAN_EC_API_RC_INVALID_STATE; - } - - if (ec_api->channel_map == 0xFFFFFFFF){ - /* All channels selected */ - ec_api->channel_map = 0l; - for (fe_chan = 0; fe_chan < ec_dev->fe_max_channels; fe_chan++){ - ec_api->channel_map |= (1 << fe_chan); - } - }else{ - if (ec_dev->fe_media == WAN_MEDIA_T1 || - ec_dev->fe_media == WAN_MEDIA_FXOFXS){ - ec_api->channel_map = ec_api->channel_map >> 1; - } - } - - if (!ec_api->channel_map){ - return WAN_EC_API_RC_NOACTION; - } - /* Enable/Disable Normal mode on Oct6100 */ - PRINT1(ec_api->verbose, - "%s: %s Echo Canceller DTMF on channel(s) map=0x%08lX ...\n", - ec_dev->devname, - (ec_api->cmd == WAN_EC_CMD_DTMF_ENABLE) ? "Enable" : - (ec_api->cmd == WAN_EC_CMD_DTMF_DISABLE) ? "Disable" : - "Unknown", - ec_api->channel_map); - for(fe_chan=0; fe_chan < ec_dev->fe_max_channels; fe_chan++){ - if (!(ec_api->channel_map & (1 << fe_chan))){ - continue; - } - if (ec_dev->fe_media == WAN_MEDIA_E1 && fe_chan == 0) continue; - ec_channel = wanec_fe2ec_channel(ec_dev, fe_chan); - switch(ec_api->cmd){ - case WAN_EC_CMD_DTMF_ENABLE: - if (wanec_bypass(ec_dev, fe_chan, 1, ec_api->verbose)){ - return WAN_EC_API_RC_FAILED; - } - err = wanec_TonesEnable( - ec, - ec_channel, - ec_api->u_dtmf_config.port, - ec_api->verbose); - break; - case WAN_EC_CMD_DTMF_DISABLE: - err = wanec_TonesDisable( - ec, - ec_channel, - ec_api->u_dtmf_config.port, - ec_api->verbose); - if (wanec_bypass(ec_dev, fe_chan, 0, ec_api->verbose)){ - return WAN_EC_API_RC_FAILED; - } - break; - default: - err = WAN_EC_API_RC_INVALID_CMD; - break; - } - if (err){ - return WAN_EC_API_RC_FAILED; - } - } - return err; -} - -static int wanec_stats(wan_ec_dev_t *ec_dev, wan_ec_api_t *ec_api) -{ - wan_ec_t *ec = NULL; - unsigned int fe_chan, ec_channel, err = 0; - - WAN_ASSERT(ec_dev == NULL); - WAN_ASSERT(ec_dev->ec == NULL); - ec = ec_dev->ec; - if (ec->state != WAN_OCT6100_STATE_CHIP_READY){ - PRINT1(ec_api->verbose, - "WARNING: %s: Invalid Echo Canceller %s API state (%s)\n", - ec_dev->devname, - ec->name, - WAN_OCT6100_STATE_DECODE(ec->state)); - return WAN_EC_API_RC_INVALID_STATE; - } - - if (ec_dev->fe_media == WAN_MEDIA_T1 || ec_dev->fe_media == WAN_MEDIA_FXOFXS){ - ec_api->channel_map = ec_api->channel_map >> 1; - } - PRINT1(ec_api->verbose, - "%s: Read Echo Canceller stats on channel(s) map=0x%08lX reset %d...\n", - ec_dev->devname, - ec_api->channel_map, - (ec_api->channel_map) ? - ec_api->u_chan_stats.reset:ec_api->u_chip_stats.reset); - if (wanec_ISR(ec, ec_api->verbose)){ - return WAN_EC_API_RC_FAILED; - } - if (ec_api->channel_map){ - for(fe_chan=0; fe_chan < ec_dev->fe_max_channels; fe_chan++){ - if (!(ec_api->channel_map & (1 << fe_chan))){ - continue; - } - if (ec_dev->fe_media == WAN_MEDIA_E1 && fe_chan == 0){ - continue; - } - ec_channel = wanec_fe2ec_channel(ec_dev, fe_chan); - err = wanec_ChannelStats( - ec_dev, - ec_channel, - ec_api, - ec_api->u_chan_stats.reset); - if (err){ - return WAN_EC_API_RC_FAILED; - } - } - }else{ - wanec_ChipStats(ec_dev, ec_api, ec_api->u_chip_stats.reset); - } - - return 0; -} - -static int wanec_monitor(wan_ec_dev_t *ec_dev, wan_ec_api_t *ec_api) -{ - wan_ec_t *ec = NULL; - unsigned int channel = ec_api->channel, - ec_channel; - - WAN_ASSERT(ec_dev == NULL); - WAN_ASSERT(ec_dev->ec == NULL); - ec = ec_dev->ec; - if (ec->state != WAN_OCT6100_STATE_CHIP_READY){ - PRINT1(ec_api-> verbose, - "WARNING: %s: Invalid Echo Canceller %s API state (%s)\n", - ec_dev->devname, - ec->name, - WAN_OCT6100_STATE_DECODE(ec->state)); - return WAN_EC_API_RC_INVALID_STATE; - } - - /* Sanity check from channel selection */ - if (((ec_dev->fe_media == WAN_MEDIA_T1) && (channel > ec_dev->fe_max_channels)) || - ((ec_dev->fe_media == WAN_MEDIA_E1) && (channel >= ec_dev->fe_max_channels))){ - DEBUG_EVENT( - "ERROR: %s: Channel number %d out of range!\n", - ec_dev->devname, - channel); - return WAN_EC_API_RC_INVALID_CHANNELS; - } - - if (channel){ - if (ec_dev->fe_media == WAN_MEDIA_T1 || ec_dev->fe_media == WAN_MEDIA_FXOFXS) channel--; - ec_channel = wanec_fe2ec_channel(ec_dev, channel); - if (wanec_DebugChannel(ec, ec_channel, ec_api->verbose)){ - return WAN_EC_API_RC_FAILED; - } - }else{ - wanec_DebugGetData(ec, ec_api); - } - return 0; -} - -static int wanec_tone(wan_ec_dev_t *ec_dev, wan_ec_api_t *ec_api) -{ - wan_ec_t *ec = NULL; - int err; - - WAN_ASSERT(ec_dev == NULL); - WAN_ASSERT(ec_dev->ec == NULL); - ec = ec_dev->ec; - if (ec->state != WAN_OCT6100_STATE_CHIP_READY){ - PRINT1(ec_api->verbose, - "WARNING: %s: Invalid Echo Canceller %s API state (%s)\n", - ec_dev->devname, - ec->name, - WAN_OCT6100_STATE_DECODE(ec->state)); - return WAN_EC_API_RC_INVALID_STATE; - } - if (ec_api->cmd == WAN_EC_CMD_TONE_LOAD){ - err = wanec_BufferLoad(ec_dev, ec_api); - }else{ - err = wanec_BufferUnload(ec_dev, ec_api); - } - if (err){ - return WAN_EC_API_RC_FAILED; - } - return 0; -} - -static int wanec_playout(wan_ec_dev_t *ec_dev, wan_ec_api_t *ec_api) -{ - wan_ec_t *ec = NULL; - int ec_channel; - - WAN_ASSERT(ec_dev == NULL); - WAN_ASSERT(ec_dev->ec == NULL); - ec = ec_dev->ec; - if (ec->state != WAN_OCT6100_STATE_CHIP_READY){ - PRINT1(ec_api->verbose, - "WARNING: %s: Invalid Echo Canceller %s API state (%s)\n", - ec_dev->devname, - ec->name, - WAN_OCT6100_STATE_DECODE(ec->state)); - return WAN_EC_API_RC_INVALID_STATE; - } - - if (ec_dev->fe_media == WAN_MEDIA_E1 && ec_api->channel == 0){ - return WAN_EC_API_RC_NOACTION; - } - if (((ec_dev->fe_media == WAN_MEDIA_T1) && ((unsigned int)ec_api->channel > ec_dev->fe_max_channels)) || - ((ec_dev->fe_media == WAN_MEDIA_E1) && ((unsigned int)ec_api->channel >= ec_dev->fe_max_channels))){ - DEBUG_EVENT( - "ERROR: %s: Channel number %d out of range!\n", - ec_dev->devname, - ec_api->channel); - return WAN_EC_API_RC_INVALID_CHANNELS; - } - - if (ec_dev->fe_media == WAN_MEDIA_T1 || ec_dev->fe_media == WAN_MEDIA_FXOFXS) - ec_api->channel--; - ec_channel = wanec_fe2ec_channel(ec_dev, ec_api->channel); - - switch(ec_api->cmd){ - case WAN_EC_CMD_PLAYOUT_START: - if (wanec_BufferPlayoutAdd(ec, ec_channel, ec_api)){ - return WAN_EC_API_RC_FAILED; - } - if (wanec_BufferPlayoutStart(ec, ec_channel, ec_api)){ - wanec_BufferPlayoutStop(ec, ec_channel, ec_api); - return WAN_EC_API_RC_FAILED; - } - break; - case WAN_EC_CMD_PLAYOUT_STOP: - wanec_BufferPlayoutStop(ec, ec_channel, ec_api); - break; - } - - return 0; -} - -#if defined(__FreeBSD__) || defined(__OpenBSD__) -int wanec_ioctl(void *sc, void *data) -#elif defined(__LINUX__) -int wanec_ioctl(unsigned int cmd, void *data) -#elif defined(__WINDOWS__) -int wanec_ioctl(void *data, void *pcard) -#endif -{ - wan_ec_api_t *ec_api = NULL; - wan_ec_t *ec = NULL; - wan_ec_dev_t *ec_dev = NULL; - int err = 0; -#if defined(__WINDOWS__) - sdla_t *card = (sdla_t*)pcard; -#endif - - WAN_DEBUG_FUNC_START; - -#if defined(__LINUX__) - ec_api = wan_malloc(sizeof(wan_ec_api_t)); - if (ec_api == NULL){ - DEBUG_EVENT( - "wanec: Failed allocate memory (%d) [%s:%d]!\n", - sizeof(wan_ec_api_t), - __FUNCTION__,__LINE__); - return -EINVAL; - } - err = WAN_COPY_FROM_USER( - ec_api, - data, - sizeof(wan_ec_api_t)); - if (err){ - DEBUG_EVENT( - "wanec: Failed to copy data from user space [%s:%d]!\n", - __FUNCTION__,__LINE__); - wan_free(ec_api); - return -EINVAL; - } -#else - ec_api = (wan_ec_api_t*)data; -#endif - -#if defined(DEBUG) - ec_api->verbose |= (WAN_EC_VERBOSE_EXTRA1|WAN_EC_VERBOSE_EXTRA2); -#endif - - ec_dev = -#if defined(__WINDOWS__) - card->ec_dev_ptr; -#else - wanec_search(ec_api->devname); -#endif - if (ec_dev == NULL){ - PRINT1(ec_api->verbose, - "%s: Failed to find device [%s:%d]!\n", - ec_api->devname, __FUNCTION__,__LINE__); - ec_api->err = WAN_EC_API_RC_INVALID_DEV; - goto wanec_ioctl_done; - } - WAN_ASSERT(ec_dev->ec == NULL); - ec = ec_dev->ec; - wan_spin_lock(&ec->lock); - - if (wan_test_bit(WAN_EC_BIT_CRIT_DOWN, &ec_dev->critical)){ - PRINT1(ec_api->verbose, - "%s: Echo Canceller device is down!\n", - ec_api->devname); - ec_api->err = WAN_EC_API_RC_INVALID_DEV; - goto wanec_ioctl_done; - } - if (wan_test_and_set_bit(WAN_EC_BIT_CRIT_CMD, &ec->critical)){ - PRINT1(ec_api->verbose, - "%s: Echo Canceller is busy!\n", - ec_api->devname); - ec_api->err = WAN_EC_API_RC_BUSY; - goto wanec_ioctl_done; - } - PRINT2(ec_api->verbose, - "%s: WPEC_LIP IOCTL: %s\n", - ec_api->devname, WAN_EC_CMD_DECODE(ec_api->cmd)); - ec_api->err = WAN_EC_API_RC_OK; - switch(ec_api->cmd){ - case WAN_EC_CMD_GETINFO: - ec_api->u_info.max_channels = ec->max_channels; - ec_api->state = ec->state; - break; - case WAN_EC_CMD_CONFIG: - err = wanec_config(ec_dev, ec_api); - break; - case WAN_EC_CMD_RELEASE: - err = wanec_release(ec_dev, ec_api, ec_api->verbose); - break; - case WAN_EC_CMD_CHANNEL_OPEN: - err = wanec_channel_open(ec_dev, ec_api); - break; - case WAN_EC_CMD_ENABLE: - case WAN_EC_CMD_DISABLE: - err = wanec_modify(ec_dev, ec_api); - break; - case WAN_EC_CMD_BYPASS_ENABLE: - case WAN_EC_CMD_BYPASS_DISABLE: - err = wanec_modify_bypass(ec_dev, ec_api); - break; - case WAN_EC_CMD_MODE_NORMAL: - case WAN_EC_CMD_MODE_POWERDOWN: - case WAN_EC_CMD_MODIFY_CHANNEL: - err = wanec_modify_mode(ec_dev, ec_api); - break; - case WAN_EC_CMD_DTMF_ENABLE: - case WAN_EC_CMD_DTMF_DISABLE: - ec_api->err = wanec_modify_dtmf(ec_dev, ec_api); - break; - case WAN_EC_CMD_STATS: - case WAN_EC_CMD_STATS_FULL: - err = wanec_stats(ec_dev, ec_api); - break; - case WAN_EC_CMD_TONE_LOAD: - case WAN_EC_CMD_TONE_UNLOAD: - err = wanec_tone(ec_dev, ec_api); - break; - case WAN_EC_CMD_PLAYOUT_START: - case WAN_EC_CMD_PLAYOUT_STOP: - err = wanec_playout(ec_dev, ec_api); - break; - case WAN_EC_CMD_MONITOR: - err = wanec_monitor(ec_dev, ec_api); - break; - case WAN_EC_CMD_RELEASE_ALL: - break; - } - if (err){ - PRINT2(ec_api->verbose, - "%s: %s return error (Command: %s)\n", - ec_api->devname, __FUNCTION__, WAN_EC_CMD_DECODE(ec_api->cmd)); - ec_api->err = err; - } - if (ec_api->err == WAN_EC_API_RC_INVALID_STATE){ - ec_api->state = ec->state; - } - wan_clear_bit(WAN_EC_BIT_CRIT_CMD, &ec->critical); - -wanec_ioctl_done: - wan_spin_unlock(&ec->lock); -#if defined(__LINUX__) - err = WAN_COPY_TO_USER( - data, - ec_api, - sizeof(wan_ec_api_t)); - if (err){ - DEBUG_EVENT( - "%s: Failed to copy data to user space [%s:%d]!\n", - ec_api->devname, - __FUNCTION__,__LINE__); - wan_free(ec_api); - return -EINVAL; - } -#endif - PRINT2(ec_api->verbose, - "%s: WPEC_LIP IOCTL: %s returns %d\n", - ec_api->devname, - WAN_EC_CMD_DECODE(ec_api->cmd), - ec_api->err); - -#if defined(__LINUX__) - wan_free(ec_api); -#endif - WAN_DEBUG_FUNC_END; - return 0; -} - - -/*****************************************************************************/ -#define my_isdigit(c) ((c) >= '0' && (c) <= '9') -static int wan_ec_devnum(char *ptr) -{ - int num = 0, base = 1; - int i = 0; - - while(!my_isdigit(*ptr)) ptr++; - while(my_isdigit(ptr[i])){ - i++; - base = base * 10; - } - if (i){ - i=0; - do { - base = base / 10; - num = num + (ptr[i]-'0') * base; - i++; - }while(my_isdigit(ptr[i])); - } - return num; -} - -static void* wanec_register(void *pcard, int max_channels) -{ - sdla_t *card = (sdla_t*)pcard; - wan_ec_t *ec = NULL; - wan_ec_dev_t *ec_dev = NULL, *ec_dev_new = NULL; - - WAN_DEBUG_FUNC_START; - - DEBUG_EVENT("%s:%d: Max_line=%i, Max_chann - -#if defined(__WINDOWS__) - ec = get_wan_ec_ptr(card); -#else - WAN_LIST_FOREACH(ec, &wan_ec_head, next){ - WAN_LIST_FOREACH(ec_dev, &ec->ec_dev_head, next){ - if (ec_dev->card == NULL || ec_dev->card == card){ - DEBUG_EVENT("%s: Internal Error (%s:%d)\n", - card->devname, - __FUNCTION__,__LINE__); - return NULL; - } - } - } - WAN_LIST_FOREACH(ec, &wan_ec_head, next){ - WAN_LIST_FOREACH(ec_dev, &ec->ec_dev_head, next){ - if (card->hw_iface.hw_same(ec_dev->card->hw, card->hw)){ - /* Current OCT6100 chip is already in use */ - break; - } - } - if (ec_dev){ - break; - } - } -#endif - - if (ec && ec_dev){ - if(wan_test_bit(WAN_EC_BIT_CRIT_ERROR, &ec_dev->ec->critical)){ - DEBUG_EVENT("%s: Echo Canceller chip has Critical Error flag set!\n", - card->devname); - return NULL; - } - } - - ec_dev_new = wan_malloc(sizeof(wan_ec_dev_t)); - if (ec_dev_new == NULL){ - DEBUG_EVENT("%s: ERROR: Failed to allocate memory (%s:%d)!\n", - card->devname, - __FUNCTION__,__LINE__); - return NULL; - } - memset(ec_dev_new, 0, sizeof(wan_ec_dev_t)); -#if defined(__WINDOWS__) - ec_dev = ec_dev_new; - if (ec == NULL){ -#else - if (ec_dev == NULL){ -#endif - /* First device for current Oct6100 chip */ - ec = wan_malloc(sizeof(wan_ec_t)); - if (ec == NULL){ - DEBUG_EVENT("%s: ERROR: Failed to allocate memory (%s:%d)!\n", - card->devname, - __FUNCTION__,__LINE__); - return NULL; - } - - memset(ec, 0, sizeof(wan_ec_t)); - ec->chip_no = ++wan_ec_no; - ec->state = WAN_OCT6100_STATE_RESET; - ec->ec_active = 0; - ec->max_channels = max_channels; - wan_spin_lock_init(&ec->lock); - sprintf(ec->name, "%s%d", WANEC_DEV_NAME, ec->chip_no); - Oct6100InterruptServiceRoutineDef(&ec->f_InterruptFlag); - -#if defined(__WINDOWS__) - set_wan_ec_ptr(card, ec); -#else - WAN_LIST_INIT(&ec->ec_dev_head); - WAN_LIST_INSERT_HEAD(&wan_ec_head, ec, next); -#endif - }else{ -#if !defined(__WINDOWS__) - ec = ec_dev->ec; -#endif - } - ec->usage++; - ec_dev_new->ecdev_no = wan_ec_devnum(card->devname); - ec_dev_new->ec = ec; - ec_dev_new->name = ec->name; - ec_dev_new->card = card; - - ec_dev_new->fe_media = WAN_FE_MEDIA(&card->fe); - ec_dev_new->fe_lineno = WAN_FE_LINENO(&card->fe); - ec_dev_new->fe_max_channels = WAN_FE_MAX_CHANNELS(&card->fe); - if (!WAN_FE_TDMV_LAW(&card->fe)){ - if (WAN_FE_MEDIA(&card->fe) == WAN_MEDIA_T1){ - WAN_FE_TDMV_LAW(&card->fe) = WAN_TDMV_MULAW; - }else if (WAN_FE_MEDIA(&card->fe) == WAN_MEDIA_E1){ - WAN_FE_TDMV_LAW(&card->fe) = WAN_TDMV_ALAW; - }else{ - DEBUG_EVENT("%s: ERROR: Undefines MULAW/ALAW type!\n", - card->devname); - } - } - ec_dev_new->fe_tdmv_law = WAN_FE_TDMV_LAW(&card->fe); - ec_dev_new->state = WAN_OCT6100_STATE_RESET; - - /* Initialize hwec_bypass pointer */ - card->wandev.ec_enable = wanec_enable; - card->wandev.ec_map = 0; - - memcpy(ec_dev_new->devname, card->devname, sizeof(card->devname)); - sprintf(ec_dev_new->ecdev_name, "wp%dec", ec_dev_new->ecdev_no); - - wan_init_timer( &ec_dev_new->timer, - wanec_timer, - (wan_timer_arg_t)ec_dev_new); - -#if defined(__WINDOWS__) - card->ec_dev_ptr = ec_dev_new; -#else - WAN_LIST_INSERT_HEAD(&ec->ec_dev_head, ec_dev_new, next); -#endif - - DEBUG_EVENT("%s: Register EC interface %s (usage %d, max ec chans %d)!\n", - ec_dev_new->devname, - ec->name, - ec->usage, - ec->max_channels); - return (void*)ec_dev_new; -} - -static int wanec_unregister(void *arg, void *pcard) -{ - sdla_t *card = (sdla_t*)pcard; - wan_ec_t *ec = NULL; - wan_ec_dev_t *ec_dev = (wan_ec_dev_t*)arg; - - WAN_ASSERT(ec_dev == NULL); - WAN_ASSERT(ec_dev->ec == NULL); - WAN_DEBUG_FUNC_START; - - ec = ec_dev->ec; - wan_spin_lock(&ec->lock); - DEBUG_EVENT("%s: Unregister interface from %s (chip id %d, usage %d)!\n", - card->devname, - ec->name, - ec->chip_no, - ec->usage); - - wan_set_bit(WAN_EC_BIT_TIMER_KILL,(void*)&ec_dev->critical); - wan_set_bit(WAN_EC_BIT_CRIT_DOWN,(void*)&ec_dev->critical); - wan_set_bit(WAN_EC_BIT_CRIT,(void*)&ec_dev->critical); - wan_del_timer(&ec_dev->timer); - - if (ec_dev->state != WAN_OCT6100_STATE_RESET){ - PRINT1(global_verbose, - "%s: Forcing EC device release\n", - card->devname); - wanec_release(ec_dev, NULL, global_verbose); - } - ec_dev->card = NULL; - ec->usage--; - -#if !defined(__WINDOWS__) - if (WAN_LIST_FIRST(&ec->ec_dev_head) == ec_dev){ - WAN_LIST_FIRST(&ec->ec_dev_head) = - WAN_LIST_NEXT(ec_dev, next); - WAN_LIST_NEXT(ec_dev, next) = NULL; - }else{ - WAN_LIST_REMOVE(ec_dev, next); - } -#endif - - card->wandev.ec_enable = NULL; -#if defined(__WINDOWS__) - card->ec_dev_ptr = NULL; -#endif - - /* FIXME: Remove character device */ - if (!ec->usage){ - ec_dev->ec = NULL; - wan_free(ec_dev); -#if !defined(__WINDOWS__) - if (WAN_LIST_FIRST(&wan_ec_head) == ec){ - WAN_LIST_FIRST(&wan_ec_head) = - WAN_LIST_NEXT(ec, next); - WAN_LIST_NEXT(ec, next) = NULL; - }else{ - WAN_LIST_REMOVE(ec, next); - } -#endif - - wan_free(ec); - -#if defined(__WINDOWS__) - set_wan_ec_ptr(card, NULL); -#endif - - }else{ - ec_dev->ec = NULL; - wan_free(ec_dev); - } - wan_spin_unlock(&ec->lock); - WAN_DEBUG_FUNC_END; - return 0; -} - -#if 0 -static int wanec_isr(void *arg, void *pcard) -{ - wan_ec_t *ec = NULL; - wan_ec_dev_t *ec_dev = (wan_ec_dev_t*)arg; - - WAN_ASSERT2(ec_dev == NULL, 0); - WAN_ASSERT2(ec_dev->ec == NULL, 0); - ec = ec_dev->ec; - -#if !defined(__WINDOWS__) - if (WAN_LIST_FIRST(&ec->ec_dev_head) != ec_dev){ - return 0; - } -#endif - - if (ec->state != WAN_OCT6100_STATE_CHIP_READY){ - return 0; - } - if (wan_test_bit(WAN_EC_BIT_CRIT_DOWN, &ec_dev->critical)){ - return 0; - } - if (wan_test_bit(WAN_EC_BIT_CRIT_ERROR, &ec_dev->critical)){ - return 0; - } - if (wan_test_bit(WAN_EC_BIT_CRIT_CMD, &ec->critical)){ - return 0; - } - if (ec_dev->poll_cmd != WAN_EC_POLL_NONE){ - /* I'm still busy, return now */ - return 0; - } - - ec->intcount++; - - /* Execute interrupt routine */ - if (wanec_ISR(ec, global_verbose)){ - wan_set_bit(WAN_EC_BIT_CRIT_ERROR, &ec->critical); - wan_set_bit(WAN_EC_BIT_CRIT,(void*)&ec_dev->critical); - return 0; - } - - PRINT1(global_verbose, - "%s: HW EC ISR-POLL (%d:%d)\n", - ec_dev->devname, ec->intcount, - (ec->f_InterruptFlag.fToneEventsPending == TRUE)?1:0); - - if (ec->f_InterruptFlag.fToneEventsPending == TRUE && - wan_test_bit(WAN_EC_BIT_EVENT_DTMF, &ec_dev->events)){ - ec_dev->poll_cmd = WAN_EC_POLL_INTR; - /* Schedule poll */ - return 1; - } - return 0; -} -#endif - -static int wanec_poll(void *arg, void *pcard) -{ - wan_ec_t *ec = NULL; - wan_ec_dev_t *ec_dev = (wan_ec_dev_t*)arg; - int err = 0; - - WAN_ASSERT(ec_dev == NULL); - WAN_ASSERT(ec_dev->ec == NULL); - ec = ec_dev->ec; - - WAN_DEBUG_FUNC_START; - - wan_spin_lock(&ec->lock); - wan_clear_bit(WAN_EC_BIT_TIMER_RUNNING,(void*)&ec_dev->critical); - if (wan_test_bit(WAN_EC_BIT_CRIT_DOWN, &ec_dev->critical)){ - ec_dev->poll_cmd = WAN_EC_POLL_NONE; - wan_spin_unlock(&ec->lock); - return -EINVAL; - } - switch(ec_dev->poll_cmd){ - case WAN_EC_POLL_CHIPOPENPENDING: - /* Chip open */ - if (wanec_ChipOpen(ec_dev, WAN_EC_VERBOSE_NONE)){ - /* Chip state is Ready state */ - ec->state = WAN_OCT6100_STATE_READY; - ec_dev->state = ec->state; - ec_dev->poll_cmd = WAN_EC_POLL_NONE; - err = -EINVAL; - goto wanec_poll_done; - } - ec->state = WAN_OCT6100_STATE_CHIP_OPEN; - ec_dev->state = ec->state; - break; - - case WAN_EC_POLL_INTR: - default: /* by default, can be only schedule from interrupt */ - if (ec->state != WAN_OCT6100_STATE_CHIP_READY){ - break; - } - - if ((wan_test_bit(WAN_EC_BIT_CRIT_DOWN, &ec_dev->critical)) || - (wan_test_bit(WAN_EC_BIT_CRIT_ERROR, &ec_dev->critical)) || - (wan_test_bit(WAN_EC_BIT_CRIT_CMD, &ec->critical))) { - err = -EINVAL; - break; - } - - /* Execute interrupt routine */ - if (wanec_ISR(ec, global_verbose)){ - wan_set_bit(WAN_EC_BIT_CRIT_ERROR, &ec->critical); - wan_set_bit(WAN_EC_BIT_CRIT,(void*)&ec_dev->critical); - err = -EINVAL; - break; - } - break; - } - ec_dev->poll_cmd = WAN_EC_POLL_NONE; - -wanec_poll_done: - wan_spin_unlock(&ec->lock); - WAN_DEBUG_FUNC_END; - return err; -} - -static int wanec_event_ctrl(void *arg, void *pcard, wan_event_ctrl_t *event_ctrl) -{ - wan_ec_t *ec = NULL; - wan_ec_dev_t *ec_dev = (wan_ec_dev_t*)arg; - int err = 0; - - WAN_ASSERT(ec_dev == NULL); - WAN_ASSERT(ec_dev->ec == NULL); - WAN_ASSERT(event_ctrl == NULL); - ec = ec_dev->ec; - - if (wan_test_and_set_bit(WAN_EC_BIT_CRIT_CMD, &ec->critical)){ - return -EBUSY; - } - - switch(event_ctrl->type){ - case WAN_EVENT_EC_DTMF: - DEBUG_EVENT("%s: %s DTMF events\n", - ec_dev->devname, - WAN_EVENT_MODE_DECODE(event_ctrl->mode)); - if (event_ctrl->mode == WAN_EVENT_ENABLE){ - wan_set_bit(WAN_EC_BIT_EVENT_DTMF, &ec_dev->events); - }else{ - wan_clear_bit(WAN_EC_BIT_EVENT_DTMF, &ec_dev->events); - } - break; - default: - err = -EINVAL; - break; - } - if (!err){ -#if !defined(__WINDOWS__) - wan_free(event_ctrl); -#endif - } - wan_clear_bit(WAN_EC_BIT_CRIT_CMD, &ec->critical); - return err; -} - -int wanec_init(void *arg) -{ -#if defined(__WINDOWS__) - if(wanec_iface.reg != NULL){ - DEBUG_EVENT("%s(): Warning: Initialization already done!\n", __FUNCTION__); - return 0; - } -#endif - - if (WANPIPE_VERSION_BETA){ - DEBUG_EVENT("%s Beta %s.%s %s\n", - wpec_fullname, - WANPIPE_VERSION, - WANPIPE_SUB_VERSION, - wpec_copyright); - }else{ - DEBUG_EVENT("%s Stable %s.%s %s\n", - wpec_fullname, - WANPIPE_VERSION, - WANPIPE_SUB_VERSION, - wpec_copyright); - } - - /* Initialize WAN EC lip interface */ - wanec_iface.reg = wanec_register; - wanec_iface.unreg = wanec_unregister; - wanec_iface.ioctl = NULL; - wanec_iface.isr = NULL; // wanec_isr; - wanec_iface.poll = wanec_poll; - wanec_iface.event_ctrl = wanec_event_ctrl; - - register_wanec_iface (&wanec_iface); - -#if defined(__FreeBSD__) || defined(__OpenBSD__) - wp_cdev_reg(NULL, WANEC_DEV_NAME, wanec_ioctl); -#elif defined(__LINUX__) || defined(__WINDOWS__) - wanec_create_dev(); -#endif - return 0; -} - -int wanec_exit (void *arg) -{ -#if defined(__FreeBSD__) || defined(__OpenBSD__) - wp_cdev_unreg(WANEC_DEV_NAME); -#elif defined(__LINUX__) || defined(__WINDOWS__) - wanec_remove_dev(); -#endif - unregister_wanec_iface(); - DEBUG_EVENT("WANEC Layer: Unloaded\n"); - return 0; -} - -#if !defined(__WINDOWS__) -WAN_MODULE_DEFINE( - wanec,"wanec", - "Alex Feldman ", - "Wanpipe Echo Canceller Layer - Sangoma Tech. Copyright 2006", - "GPL", - wanec_init, wanec_exit, NULL); - -WAN_MODULE_DEPEND(wanec, wanrouter, 1, - WANROUTER_MAJOR_VER, WANROUTER_MAJOR_VER); - -WAN_MODULE_DEPEND(wanec, wanpipe, 1, - WANPIPE_MAJOR_VER, WANPIPE_MAJOR_VER); -#endif diff --git a/patches/kdrivers/wanec/wanec_iface.h b/patches/kdrivers/wanec/wanec_iface.h index 346938e..abdcb73 100644 --- a/patches/kdrivers/wanec/wanec_iface.h +++ b/patches/kdrivers/wanec/wanec_iface.h @@ -438,13 +438,13 @@ typedef struct wan_ec_ { int usage; int chip_no; int state; - int ec_active; + int ec_channels_no; int max_channels; /* max number of ec channels (security) */ void *ec_dev; u_int32_t intcount; u_int32_t critical; - wan_spinlock_t lock; + //wan_spinlock_t lock; u_int32_t events; /* enable events map */ PUINT8 pImageData; diff --git a/patches/kdrivers/wanec/wanec_utils.c b/patches/kdrivers/wanec/wanec_utils.c index ac91c4b..cf051b9 100644 --- a/patches/kdrivers/wanec/wanec_utils.c +++ b/patches/kdrivers/wanec/wanec_utils.c @@ -108,11 +108,9 @@ key_word_t ChannelModifyParam[] = { "lSoutAutomaticLevelControlTargetDb", offsetof(tOCT6100_CHANNEL_MODIFY, VqeConfig)+offsetof(tOCT6100_CHANNEL_MODIFY_VQE,lSoutAutomaticLevelControlTargetDb), DTYPE_INT32 }, -#if 0 { "ulAlcNoiseBleedOutTime", offsetof(tOCT6100_CHANNEL_MODIFY, VqeConfig)+offsetof(tOCT6100_CHANNEL_MODIFY_VQE,ulAlcNoiseBleedOutTime), DTYPE_UINT32 }, -#endif { "fRinHighLevelCompensation", offsetof(tOCT6100_CHANNEL_MODIFY, VqeConfig)+offsetof(tOCT6100_CHANNEL_MODIFY_VQE,fRinHighLevelCompensation), DTYPE_BOOL }, diff --git a/patches/kfeatures b/patches/kfeatures index 60fd328..8b13789 100644 --- a/patches/kfeatures +++ b/patches/kfeatures @@ -1,2 +1 @@ --DWANPIPE_USE_I_PRIVATE diff --git a/patches/sangoma-zaptel-patch.sh b/patches/sangoma-zaptel-patch.sh index 52fc041..c0b4150 100755 --- a/patches/sangoma-zaptel-patch.sh +++ b/patches/sangoma-zaptel-patch.sh @@ -9,15 +9,6 @@ ZAPTEL_C_PATCH="if ((chan->flags \& ZT_FLAG_HDLC) \&\& chan->span->ioctl != NULL }\n\ chan->writen[chan->inwritebuf] = amnt;" -# D channel patching for zaptel version 1.2.17.1/1.4.2.1 or above -ZAPTEL_C_SEARCH_STR_NEW="chan->writen\[res\] = amnt;" -ZAPTEL_C_PATCH_NEW="if ((chan->flags \& ZT_FLAG_HDLC) \&\& chan->span->ioctl != NULL){\n\ - if (chan->span->ioctl(chan, ZT_DCHAN_TX_V2, amnt)==0){\n\ - return amnt;\n\ - }\n\ - }\n\ - chan->writen[res] = amnt;" - #NOTE1: the 'sed' command does NOT work on more than one line, so the #closing '*/' will be pushed AFTER the inserted strings. @@ -50,6 +41,7 @@ tdmv_apply_zaptel_dchan_patch () # patch zaptel.h eval "search_and_replace zaptel.h zaptel.h \"$ZAPTEL_H_SEARCH_STR\" \"$ZAPTEL_H_PATCH\"" + if [ $? -ne 0 ]; then echo "search_and_replace(zaptel.h) failed" cd $lhome @@ -58,14 +50,8 @@ tdmv_apply_zaptel_dchan_patch () echo "search_and_replace(zaptel.h) succeeded" fi - - # patch $ZAPTEL_C_FILE - eval "grep \"$ZAPTEL_C_SEARCH_STR\" $ZAPTEL_C_FILE > /dev/null 2> /dev/null" - if [ $? -eq 0 ]; then - eval "search_and_replace $ZAPTEL_C_FILE $ZAPTEL_C_FILE \"$ZAPTEL_C_SEARCH_STR\" \"$ZAPTEL_C_PATCH\"" - else - eval "search_and_replace $ZAPTEL_C_FILE $ZAPTEL_C_FILE \"$ZAPTEL_C_SEARCH_STR_NEW\" \"$ZAPTEL_C_PATCH_NEW\"" - fi + # patch zaptel.c + eval "search_and_replace $ZAPTEL_C_FILE $ZAPTEL_C_FILE \"$ZAPTEL_C_SEARCH_STR\" \"$ZAPTEL_C_PATCH\"" if [ $? -ne 0 ]; then echo "search_and_replace($ZAPTEL_C_FILE) failed" @@ -73,8 +59,9 @@ tdmv_apply_zaptel_dchan_patch () return 2 else echo "search_and_replace($ZAPTEL_C_FILE) succeeded" + cd $lhome + return 0 fi - cd $lhome return 0 } @@ -114,6 +101,5 @@ if [ "$ZAPTEL_DIR" == "" ]; then fi echo "Applying Sangoma DCHAN patch to $ZAPTEL_DIR" -echo " " tdmv_apply_zaptel_dchan_patch diff --git a/rpmspec/wanpipe-mod.spec b/rpmspec/wanpipe-mod.spec index af58327..303fcc4 100644 --- a/rpmspec/wanpipe-mod.spec +++ b/rpmspec/wanpipe-mod.spec @@ -1,7 +1,7 @@ %define WANPIPE_VER wanpipe-modules %define name %{WANPIPE_VER} -%define version 2.3.4 -%define release 16 +%define version 3.1.0 +%define release 0 %define serial 1 %define MODULES_DIR /lib/modules %define USR_INCLUDE_DIR /usr/include @@ -51,657 +51,29 @@ echo "Wanpipe Modules located in %{MODULES_DIR}/%{KVERSION}" %changelog - -* Tue Nov 15 2007 Nenad Corbic - 2.3.4-16 -==================================================================== - -- Fixed MAXIM loopback commands. - T1/E1 Digital, Remote and Line Loopbacks now work. - - -* Tue Oct 29 2007 Nenad Corbic - 2.3.4-15 -==================================================================== - -- Fixed T3/E3 CARRIER state on startup. - -- Updated Setup install script - - -* Tue Aug 15 2007 Nenad Corbic - 2.3.4-14 -==================================================================== - -- Added A101-SH A102-SH autopci old config support. - So A101u or A101c config file can be used with new A101-SH cards. - -- Added a sanity checker for enabling HWEC. - Used to prevent duble hwec enable. - -- Updated CHDLC switched CTS/RTS auto-baudrate. - - - -* Mon Jun 30 2007 Nenad Corbic - 2.3.4-13 -==================================================================== - -- Update to Ocatsic Hardware Echo Canceler Library - Turned of the NOISE suppression because it can interfere - with faxes. If you faxes did not work properly on 2.3.4-12 - release they will work fine with this one. - -- Cleaned up the Setup installation script. - - -* Mon Jun 16 2007 Nenad Corbic - 2.3.4-12 -==================================================================== - -- Update to Octasic Hardware Echo Canceler library - This is a very important update that affects all AFT cards - with octasic hardware echo canceler. The new octasic update - fixes faxing/modem issues over octasic hwec. The previous - release contained a bug that limited the faxing/modem speeds - to 26k. The new update properly detects fax/modem and works - with full speed of 33k fax and 56k modem. - -- A200/A400 Updated - This update fixes the offhook startup failure. - On startup if fxs is offhook driver will start correctly - -- Wanpipe Startup order changed - The wanpipe startup scripts on bootup were previously - set too early "S03wanrouter". This caused unpredictable - behaviour on some systems. We have now moved wanrouter - startup on boot up to "S11wanrouter", after networking - code. - -- Zaptel Adjustable Chunk Size Feature - Wanpipe drivers can work with 1,2,5 and 10ms - chunk size. Zaptel also supports this, however - the wct4xx driver breaks compilation when chunk - size is changed. ./Setup can how change the - zaptel chunk size for you and update zaptel - Makefiles to remove wct4xx driver out. - - Zaptel with 1ms generates 1000 interrupts per sec - Zaptel with 10ms generates 100 interrupts per sec. - - As you can see its a drastic interrupt performance - increase. - - NOTE: This breaks software echo cancelation, but - its not needed since we have hwec. - - -* Thu Jun 14 2007 Nenad Corbic - 2.3.4-11 -=============================================================== - -- A101/2/4/8 (MAXIM) AFT Update IMPORTANT - A major bug fix for AFT Maxim E1 cards for E1 CRC4 Mode. - On some lines the E1/CRC4 mode causes line errors on - the telco side which results in PRI not coming up. - - Symptiom: E1 is up (no alarms) on local side but pri is - not coming up! (Only in E1 CRC4 Mode) - -- A101/2/4/8 (MAXIM) Mandatory Firmware Update - An echo canceler bug has been fixed for all AFT - MAXIM Cards A101/2/4/8dm. New firmware version is V31. - If you are running MAXIM cards with hwec wiht older - firmware version you must upgrade. - -- Updated SMG - Fixed DTMF synchronization - - -* Thu Jun 13 2007 Nenad Corbic - 2.3.4-10 -=============================================================== - -- Support for AFT 54K DDS hardware - -- Support for New A301 T3/E3 Card - -- Updated Maxim (A101/2/4/8) Front end - On port shutdown properly reset the port. - This will solve instances where on port - shutdown, the remote end stays up. - -- Updated Setup for patching Zaptel 1.2.17 - -- Analog Network Sync Feature - Synchronize Analog card to a clock of a - Digital T1/E1 port using external cable. - Improves Faxing performance! - For more info: - http://wiki.sangoma.com/t1e1analogfaxing - - -* Wed May 17 2007 Nenad Corbic - 2.3.4-9 +* Fri May 17 2007 Nenad Corbic - Beta - 3.1.0 ==================================================================== -- Updated Zaptel 1.2.17 DCHAN Patch - -- Hardware A101D and A101DX Support - -- Added Maxim register debug in wanpipemon - -- Update to SMG - - -* Wed Apr 23 2007 Nenad Corbic - 2.3.4-8 -==================================================================== - -- Important: AFT TDMV (ZAPTEL) Fix - A race condition existed on wanrouter startup. - If echo canceler startup delayed the startup long enough, - for T1/E1 line to come up, it was possible that zaptel - alarms would not be cleared. - -- Important: AFT T1/E1 Front End update. - The AFT cards will not disable communications for minor - T1/E1 alarms. This has caused problems in the passed because - AFT cards were too strict in interpreting T1/E1 alarms. - - -- Added AFT/56K Line Loop Test feature in wanpipemon - After enabling digital loopback run line test to test - the device.: - wanpipemon -i w1g1 -c Tadlb - wanpipemon -i w1g1 -c Tlt - - This option can be used with any T1/E1 AFT card as well as 56K, - with any wanpipe configuration. - -- Hardware support for new AFT 301 Card. - The new T3 card has been redesigned to use common main board as - the rest of the AFT family. However, the driver remains identical. - -- AFT T1/E1 Improved CAS Signaling Support - -- Allow original A102 config to work with A102d cards. - -- TDM API updated for unlimited number of /dev/wptdm devices. - -- Updated the Hardware Echo Canceler with Noise suppression. - -- New TDM Zaptel/TDM API installation Makefile to be used by linux power users. - Options: - make #buils all utilities and kernel modules - make install #installs utilities modules etc - -- Fixed DCHAN patch for zaptel 1.2.13 - - - KNOWS ISSUES: - ------------- - - All cards with Maxim/Dallas front end chips do not support RBS signalling. - These include: A102d/A108d and new A104d with maxim/dallas chips. - The fix is in new beta 3.1.0 release. - - -* Wed Jan 31 2007 Nenad Corbic - 2.3.4-7 -==================================================================== - -- Removed a sanity check from AFT drivers - This check was added in 2.3.4-5 release. - - Due to some imporant fixes in 2.3.4-5 this release was - rushed, and things like this happen. Sorry :) - - -* Wed Jan 31 2007 Nenad Corbic - 2.3.4-6 -==================================================================== - -- Bugfix for AFT Hardware Echo Voice cards - Bug introduced in 2.3.4-5 release. +- Major new BETA wanpipe release + Changed wanpipe versioning: + Release: A.B.C.D + A - Major Relase number + B - Indicates Stable or Beta + Odd number is Beta + Even number is Stable + C - Minor Release number + D - Optional pre-release and custom releases - The new feature "persistent hwec" released in 2.3.4-5 had a bug - that was apprent on wanpipe restarts. - Anyone running 2.3.4-5 release should upgrade. +- Fixed RBS Support for all Maxim cards A101/2/4/8. - If you are running 2.3.4-5 in production to fix this problem enable - the following option in [wanpipe] section of wanpipeX.conf. - TDMV_HWEC_PERSIST_DISABLE=YES - And restart all wanpipe cards using: wanrouter restart command. - - Note this bug affects all AFT cards with hardware echo cancellation - and release 2.3.4-5. +- Support for 2.6.20 kernels. - For more info please contact Sangoma Support. +- Support for New: A101D A102D A104D Maxim cards + : +- Support for New: AFT 56K DDS card -- Minor cosmetic update to wancfg_zaptel wanpipe/zaptel configurator. - +- Redesigned TDM API Events -* Mon Jan 22 2007 Nenad Corbic - 2.3.4-5 -==================================================================== +- TDM API Analog Support -- Updated support for A400 Analog card - This release will recognize the new A400 - pci card info. - -- Updated A200/A400 firmware updater - Takes into account the new A200 and A400 cards. - -- AFT A301 T3/E3 Driver Update - Fixed a possible race condition - during startup/shutdown - -- AFT A101/2 T1/E1 Driver Update - Fixed a possible race condition - during startup/shutdown - -- AFT Hardware Echo Cancellation Persist Mode - The new default Echo Cancellation mode for all AFT cards. - If HWEC is enabled in wanpipe1.conf the Sangoma HWEC will - remain enabled all the time, even if the calls are not up. - Previously Asterisk enabled and disabled echo based on - zapata.conf and call state. This delay however caused minute - echo on call startup. In Persist mode, Sangoma HWEC will - always be enabled, thus users will get perfect quality 100% - of the time. - - In order to configure WANPIPE card in NON-PERSIST mode one - has to enable TDMV_HWEC_PERSIST_DISABLE=YES option in [wanpipeX] - section of wanpipeX.conf. - In this mode Asterisk will be responsible for enabling/disabling - hardware echo canceler. - -- LIP Layer Bug Fix. - This bug fix affects all WAN protocols for all AFT cards. - The bug was a race condition in startup code. - On a slow enough machine it was possible for an interface - to get stuck in disconnected mode during startup. - -- Wanpipe Zaptel Configuration Utility - The new wancfg_zaptel utility is now a default way to - configure Sangoma cards for Zaptel. The wancfg_zaptel utility - will auto detect all Sangoma cards in your machine and create - wanpipe configuration files along with /etc/zaptel.conf. This way - the customer can concentrate on /etc/asterisk/zapata.conf only. - - Run: /usr/sbin/wancfg_zaptel - Wizard like questions will lead you through whole - configuration process. - - After wancfg_zaptel following files will be created: - /etc/wanpipe/wanpipe*.conf # All wanpipe config files - /etc/zaptel.con # Fully configured zaptel - - -* Tue Jan 9 2007 Nenad Corbic - 2.3.4-4 -==================================================================== - -- Critical Bug fix A200/A400 Analog Cards - Critical bug fix in fxo sanity check control. - All customers that are running stable 2.3.4 release - must upgrade to 2.3.4-4. - -- Updates for 2.6.18 and 2.6.19 kernels. - -- Critical Bug fix for A108D and A102D cards. - It was possible for the front end interrupt handler to - miss-handle a pending interrupt, which would caused system - instability. - -- TDM API Update - Removed Zaptel dependency for A200/A400 cards when - running in TDM API mode only. - - -* Tue Dec 12 2006 Nenad Corbic - 2.3.4-3 -==================================================================== - -- Bug fix on A301 T3/E3 Drivers - The T3/E3 card/drivers could get stuck in connected or disconnected - state after which no state changes are reported. Used to happend - on noisy lines. - -- Bug Fix in A101/2 Drivers - Mishandling of skb buffers on rx stream could cause - unpredictable behavior on some systems. - This has now been fixed. - -- Updated A101/2/4/8 A301 Drivers - Changed the memory allocation scheme in non interrupt context to - use KERNEL instead of ATOMIC. The symptoms were on low - memory system wanrouter start could fail due to memory - allocation error when starting up large number of devices. - -- TDM API polling bug fix - By default TDM API application uses rx and tx streams. - However in tx only mode, the select would fail to wakeup. - -- A200 A400 Driver Bug Fix - If A200/A400 card are started with NO FXO/FXS modules - a kernel error is possible on some systems. - -- Update to TDM API sample Makefiles - added -lm library to compilation - -- Updated SMG Drivers - Sangoma SMG 1.7 Chan Woomera 1.6 - - -* Wed Nov 30 2006 Nenad Corbic - 2.3.4-2 -==================================================================== - -- A200 Sanity Check Bug Fix - This is an IMPORTANT update! This bug fix fixes a bug in FXO - sanity checker that on some machine could cause instability. - -- Wanpipemon A200 Voltage Check bug fix. - wanpipemon command was showing over 50V voltage - the sign was not observed. - - - -* Wed Nov 23 2006 Nenad Corbic - 2.3.4-1 -==================================================================== - -- This is the first official STABLE release of 2.3.4 branch. - -- AFT A104d 64bit bug fix - The AFT A104d T1 channel 24 failed to initialize causing DCHAN - not to come up on 64 bit machines. - -- SMG Update - Major optimizations to greatly improve system load and capacity. - Added rx tx gain control from CLI and woomera.conf - Woomera v1.5 SMG v1.6 - -- Driver update for 2.6.18 kernel. - -- Wanpipemon Updates - Updated for A301 drivers. - Minor bug fixes. - -- CHDLC Protocol - Fixed up the ignore keepalive - -- WANCFG - CHDLC Protocol - Bug fix in chdlc configuration. - - -* Thu Nov 02 2006 Nenad Corbic - beta12-2.3.4 -=================================================================== -- Further Analog Bug Fixes. - Fixes the problem where fxo module gets stuck during operation. - - - -* Wed Nov 01 2006 Nenad Corbic - beta11-2.3.4 -=================================================================== -- A102D Hardware Support - Updated drivers for A102D Hardware - Minimum A102D firmware version V.28 - -- Bug fix in Analog A200 driver. - Every once in a while a fxo port would get stuck and fail to - receive any more calls. This has not been fixed. - -- Bug fix in Analog A200 driver. - The lasttxhoot state could get stuck in one state. - If you have weird analog A200 issues, please try this release. - -- New SMG update - -- Setup installation script update - -- New A200 voltage statistics in wanpipemon - -- New wanrouter hwprobe verbose option - Displays all FXO/FXS modules installed on your system - wanrouter hwprobe verbose - - -* Fri Oct 13 2006 Nenad Corbic - beta10-2.3.4 -==================================================================== - -- A200 Bug fix - Analog software echo cancellation has been broken - in beta8-2.3.4 release. This bug has now been fixed. - This bug does not affect A200d cards with HWEC. - -- Setup update - Update in compilation headers that caused wan_ec_client - to fail compilation on some machine. - -* Fri Oct 6 2006 Nenad Corbic - beta9-2.3.4 -- Bug fixes hwec that were introduced in beta8 -- Disabled hw dtmf events. -- This release has been tested in production. - -* Mon Oct 2 2006 Nenad Corbic - beta8-2.3.4 -================================================================= - -- New A108 HWEC Support - Optimized TDM Drivers for A108 - Support for A108 Hardware Echo Cancellation - Support for A108 RefClock between ports. - New Firmware. V27 - -- New A108 HWEC Support - Optimized TDM Drivers for A108 - Support for A108 Hardware Echo Cancellation - Support for A108 RefClock between ports. - New Firmware. V27 - -- LIP / AFT Layer Latency Optimization (LINUX Only) - By setting txqueuelen using ifconfig to value of 1 - the LIP layer will re-configure the protocol and hw layer - for SINGLE tx buffer. This will improve overall latency. - -- AFT (A101/2/4/8) Layer Latency Optimization - The SINGLE_TX_BUF=YES option in [w1g1] interface - section, configures the AFT hardware for single hw dma buffer - instead of a DMA chain. This option along with above - LIP layer latency option reduces driver/protocol latency - to theoretical minimum. - NOTE: In WAN/IP applications latency feature will increase - system load. - (5% to 20% depending on system and number of ports used) - - -* Mon Jul 31 2006 Nenad Corbic - beta7-2.3.4 -================================================================== -- A200 Driver Bug Fix. - The A200 drivers had PULSE dialing enabled - that can cause call outages on NON-PULSE dialing lines. - This has now been fixed. - -- Updates to ./Setup installation script - More documentation in usage. - - - -* Mon Jul 24 2006 Nenad Corbic - beta6-2.3.4 -================================================================== -- Fixed the AFT HWEC on 64bit kernels. - The bug was caused by using 32bit version of - the octasic API release in beta5-2.3.4. - - - -* Fri Jul 21 2006 Nenad Corbic - beta5-2.3.4 -================================================================== -- TDM API was broken on A101/2 Cards - It has not been fixed. - -- A108D Hardware Support - The new A108D: 8 Port T1/E1 with onboard 246 channel - hardware echo canceller. - -- The wanec daemon has been deprecated. - A new wanec kernel module has been created to handle - all octasic commands. - -- The hwec release has been deprecated. - The hwec drivers are now part of wanpipe release. - -- Bug Fix in A104 and A104D Ref Clock - This bug caused FAX failures when REF Clock option was enabled. - -- Updates for 2.6.16 and 2.6.17 kernels - New kernels broke previous wanpipe drivers. - -- Frame Relay Update: EEK Support - New Frame relay stack supports Cisco End to End Keepalives - on each DLCI. - -- PPP Update: Updated PPP IP negotiation. IPCP was not - working properly agains some routers. This has now - been resolved. - -- TDM API: HW DMTF on A104D cards. - The TDM API and regular API interfaces now supports HW DTMF - on A104D and A108D cards. - -- Setup update: the --protocols option with --silent option did not - select proper protocols under certail conditions. - ./Setup install --protocols=TDM --silent - This option will now compile TDM protocol properly. - -- ADSL Update: The ADSL drivers were failing on some machines due - to kfree_skb error under irq. This has now been fixed. - -- AFT A104/A108 Driver updated for 64bit kernels with over 4GB - of memory. The NO AUDIO problem on TDM drivers. - The 4GB memory caused DMA corruptions to occur which caused - no AUDIO effect. - -- SSMG Product: Sangoma Signal Media Gateway - The ssmg product is now part of standard wanpipe. - It will automatically get installed if XMTP2 drivers are - selected. The SMG product provides SS7 Support to Asterisk. - -- LibSangoma: LibSangoma is part of the SSMG product, however - it can be used separately with TDM API to develop custom - TDM applications. Libsangoma is now part of standard wanpipe - release. - -* Fri Mar 04 2006 Nenad Corbic - beta4-2.3.4 -- A108 Hardware Support - Full support for new A108 8 Port T1/E1 Card - -- AFT Front End T1/E1 Alarm Update/Polling - On some embedded machines the A104D cards exhibited - unreliable ports i.e. The port would not come up due to - missing interrupts from the front end chip. - The Front End polling mechanism has been updated to solve this problem. - -- TDM API Update - Fixed a bug in RX/TX functions. - On some machines the kernel to user copy did not work. - -- Updated HWEC and TDMAPI Udev Devices - HWEC UDEV device: /dev/wp1ec (Major: 241) - TDM API UDEV device: /dev/wptdm_s1c1 (Major: 242) - -- Setup Installation Script Update - Compilation of Zaptel during installation - UDEV Zaptel updates - UDEV TDM API updates - -- AFT-LIP Frame Relay DLCI Statistics - Updated Frame Relay DLCI Statistics. - -- AFT-LIP PPP Update - IPCP negotiation failed when connected to some telco. - -* Wed Feb 22 2006 Nenad Corbic - beta3-2.3.4 -- A104D HWEC Update - Bug fix on E1 4th port channel 31 did not work. - -- A104D HWEC 64Bit Fix - The A104D HWEC now works on 64bit machines. - Using UDEV /dev/wp1ec device to access hwec chip. - If no UDEV one must create /dev/wp1ec using: - mknod /dev/wp1ec c 2402 1 - -- AFT Firmware Update Utility - Bug fix. On some systems firmware update failed. - -- TDM API Updates - Support on AFT A101/2 Cards - Fixed shutdown problems while channels are opened. - -* Wed Feb 15 2006 Nenad Corbic - beta2-2.3.4 -- The Beta2-2.3.4 is the first official Beta release of 2.3.4. - The 2.3.4 release has been in ALPHA for months and has gone - through major testing process. - -- A200 Remora Updates - Updates for 24 port A200 solution - New A200 Firmware Release V05 - -- A104D Update/Bug Fix - Echo cancellation DSP had problems on - port 4 of A104D card. - -- New A104/4D TDM API and libsangoma release - The new TDM API replaces the old TDM API. - Currently the TDM API is only supported on A104 and A104D cards. - - The TDM API is compiled by default in wanpipe drivers. - Supports: PRI and RBS functionality. - Sample files: /etc/wanpipe/api/tdm_api - -- Libsangoma Release - New libsangoma source is located in - /etc/wanpipe/api/libsangoma directory. - - For more info and docs please refer to http://sangoma.editme.com - - -* Tue Jan 10 2006 Nenad Corbic - beta1y-2.3.4 -- Driver update for 2.4.30 kernel -- AFT A104 Driver minor update to TDM API - Number of dma packets used in API mode. - To save memory. Not a functional change. - -- Update to Setup install script - -- Wancfg Update - New option to configure wanpipe config file base on zaptel.conf - syntax: "wancfg zaptel" - -* Tue Dec 15 2005 Nenad Corbic - beta1x-2.3.4 -- Major AFT A200 Analog Updates - Analog Hardware Echo Canceler is now supported - Bug fixes on aLaw lines, noise problems. - -- Wancfg Updates - -- Updates to Setup installation utility - -* Mon Dec 5 2005 Nenad Corbic - beta1x-2.3.4 -- WanCfg Update - New wancfg option "zaptel" that will create wanpipe - based on /etc/zaptel.conf configuration. - eg: - 1. Configure your zaptel first based on hardware - 2. Run: wancfg zaptel - To create wanpipe config files based on zaptel.conf - 3. Run: wanrouter start - 4. Run: ztcfg -vvv - 5. Read to start Asterisk - -- Setup Update - Added new options in ./Setup for user to specify custom gcc - compiler. - -- AFT A200 Updates - Further Analog driver updates. - -- AFT Echo Debugging Utility - Used to measure echo spike and debug echo problems. - - -* Wed Nov 23 2005 Nenad Corbic - beta1x-2.3.4 - -- Bug fix in Analog startup - You can now set ACTIVE_CH=ALL and by default all detected - FXO/FXS Devices will be configured. - -- Bug fix in A102 Drivers - When both ports are running, if you stop one - the other one dies. - - END - diff --git a/rpmspec/wanpipe-new.spec b/rpmspec/wanpipe-new.spec index 4c51945..7856dd8 100644 --- a/rpmspec/wanpipe-new.spec +++ b/rpmspec/wanpipe-new.spec @@ -15,7 +15,7 @@ BuildRequires: kernel-source kernel-syms module-init-tools udev URL: http://www.sangoma.com Summary: Sangoma Wanpipe Voice,TDM and Wan Drivers/Utilities Version: 2.3.4 -Release: 7 +Release: 9 License: GNU General Public License (GPL) Group: Productivity/Telephony/Utilities PreReq: %insserv_prereq %fillup_prereq udev diff --git a/rpmspec/wanpipe-util.spec b/rpmspec/wanpipe-util.spec index a532ed9..d464ebf 100644 --- a/rpmspec/wanpipe-util.spec +++ b/rpmspec/wanpipe-util.spec @@ -1,8 +1,8 @@ %define KERNEL_VERSION %{?kern_ver} %define WANPIPE_VER wanpipe-util %define name %{WANPIPE_VER} -%define version 2.3.4 -%define release 16 +%define version 3.1.0 +%define release 0 %define serial 1 %define UTILS_DIR /usr/sbin %define UTILS_LOCAL_DIR /usr/local/sbin @@ -245,657 +245,29 @@ install_init; %changelog - -* Tue Nov 15 2007 Nenad Corbic - 2.3.4-16 -==================================================================== - -- Fixed MAXIM loopback commands. - T1/E1 Digital, Remote and Line Loopbacks now work. - - -* Tue Oct 29 2007 Nenad Corbic - 2.3.4-15 -==================================================================== - -- Fixed T3/E3 CARRIER state on startup. - -- Updated Setup install script - - -* Tue Aug 15 2007 Nenad Corbic - 2.3.4-14 -==================================================================== - -- Added A101-SH A102-SH autopci old config support. - So A101u or A101c config file can be used with new A101-SH cards. - -- Added a sanity checker for enabling HWEC. - Used to prevent duble hwec enable. - -- Updated CHDLC switched CTS/RTS auto-baudrate. - - - -* Mon Jun 30 2007 Nenad Corbic - 2.3.4-13 -==================================================================== - -- Update to Ocatsic Hardware Echo Canceler Library - Turned of the NOISE suppression because it can interfere - with faxes. If you faxes did not work properly on 2.3.4-12 - release they will work fine with this one. - -- Cleaned up the Setup installation script. - - -* Mon Jun 16 2007 Nenad Corbic - 2.3.4-12 -==================================================================== - -- Update to Octasic Hardware Echo Canceler library - This is a very important update that affects all AFT cards - with octasic hardware echo canceler. The new octasic update - fixes faxing/modem issues over octasic hwec. The previous - release contained a bug that limited the faxing/modem speeds - to 26k. The new update properly detects fax/modem and works - with full speed of 33k fax and 56k modem. - -- A200/A400 Updated - This update fixes the offhook startup failure. - On startup if fxs is offhook driver will start correctly - -- Wanpipe Startup order changed - The wanpipe startup scripts on bootup were previously - set too early "S03wanrouter". This caused unpredictable - behaviour on some systems. We have now moved wanrouter - startup on boot up to "S11wanrouter", after networking - code. - -- Zaptel Adjustable Chunk Size Feature - Wanpipe drivers can work with 1,2,5 and 10ms - chunk size. Zaptel also supports this, however - the wct4xx driver breaks compilation when chunk - size is changed. ./Setup can how change the - zaptel chunk size for you and update zaptel - Makefiles to remove wct4xx driver out. - - Zaptel with 1ms generates 1000 interrupts per sec - Zaptel with 10ms generates 100 interrupts per sec. - - As you can see its a drastic interrupt performance - increase. - - NOTE: This breaks software echo cancelation, but - its not needed since we have hwec. - - -* Thu Jun 14 2007 Nenad Corbic - 2.3.4-11 -=============================================================== - -- A101/2/4/8 (MAXIM) AFT Update IMPORTANT - A major bug fix for AFT Maxim E1 cards for E1 CRC4 Mode. - On some lines the E1/CRC4 mode causes line errors on - the telco side which results in PRI not coming up. - - Symptiom: E1 is up (no alarms) on local side but pri is - not coming up! (Only in E1 CRC4 Mode) - -- A101/2/4/8 (MAXIM) Mandatory Firmware Update - An echo canceler bug has been fixed for all AFT - MAXIM Cards A101/2/4/8dm. New firmware version is V31. - If you are running MAXIM cards with hwec wiht older - firmware version you must upgrade. - -- Updated SMG - Fixed DTMF synchronization - - -* Thu Jun 13 2007 Nenad Corbic - 2.3.4-10 -=============================================================== - -- Support for AFT 54K DDS hardware - -- Support for New A301 T3/E3 Card - -- Updated Maxim (A101/2/4/8) Front end - On port shutdown properly reset the port. - This will solve instances where on port - shutdown, the remote end stays up. - -- Updated Setup for patching Zaptel 1.2.17 - -- Analog Network Sync Feature - Synchronize Analog card to a clock of a - Digital T1/E1 port using external cable. - Improves Faxing performance! - For more info: - http://wiki.sangoma.com/t1e1analogfaxing - - -* Wed May 17 2007 Nenad Corbic - 2.3.4-9 +* Fri May 17 2007 Nenad Corbic - Beta - 3.1.0 ==================================================================== -- Updated Zaptel 1.2.17 DCHAN Patch - -- Hardware A101D and A101DX Support - -- Added Maxim register debug in wanpipemon - -- Update to SMG - - -* Wed Apr 23 2007 Nenad Corbic - 2.3.4-8 -==================================================================== - -- Important: AFT TDMV (ZAPTEL) Fix - A race condition existed on wanrouter startup. - If echo canceler startup delayed the startup long enough, - for T1/E1 line to come up, it was possible that zaptel - alarms would not be cleared. - -- Important: AFT T1/E1 Front End update. - The AFT cards will not disable communications for minor - T1/E1 alarms. This has caused problems in the passed because - AFT cards were too strict in interpreting T1/E1 alarms. - - -- Added AFT/56K Line Loop Test feature in wanpipemon - After enabling digital loopback run line test to test - the device.: - wanpipemon -i w1g1 -c Tadlb - wanpipemon -i w1g1 -c Tlt - - This option can be used with any T1/E1 AFT card as well as 56K, - with any wanpipe configuration. - -- Hardware support for new AFT 301 Card. - The new T3 card has been redesigned to use common main board as - the rest of the AFT family. However, the driver remains identical. - -- AFT T1/E1 Improved CAS Signaling Support - -- Allow original A102 config to work with A102d cards. - -- TDM API updated for unlimited number of /dev/wptdm devices. - -- Updated the Hardware Echo Canceler with Noise suppression. - -- New TDM Zaptel/TDM API installation Makefile to be used by linux power users. - Options: - make #buils all utilities and kernel modules - make install #installs utilities modules etc - -- Fixed DCHAN patch for zaptel 1.2.13 - - - KNOWS ISSUES: - ------------- - - All cards with Maxim/Dallas front end chips do not support RBS signalling. - These include: A102d/A108d and new A104d with maxim/dallas chips. - The fix is in new beta 3.1.0 release. - - -* Wed Jan 31 2007 Nenad Corbic - 2.3.4-7 -==================================================================== - -- Removed a sanity check from AFT drivers - This check was added in 2.3.4-5 release. - - Due to some imporant fixes in 2.3.4-5 this release was - rushed, and things like this happen. Sorry :) - - -* Wed Jan 31 2007 Nenad Corbic - 2.3.4-6 -==================================================================== - -- Bugfix for AFT Hardware Echo Voice cards - Bug introduced in 2.3.4-5 release. +- Major new BETA wanpipe release + Changed wanpipe versioning: + Release: A.B.C.D + A - Major Relase number + B - Indicates Stable or Beta + Odd number is Beta + Even number is Stable + C - Minor Release number + D - Optional pre-release and custom releases - The new feature "persistent hwec" released in 2.3.4-5 had a bug - that was apprent on wanpipe restarts. - Anyone running 2.3.4-5 release should upgrade. +- Fixed RBS Support for all Maxim cards A101/2/4/8. - If you are running 2.3.4-5 in production to fix this problem enable - the following option in [wanpipe] section of wanpipeX.conf. - TDMV_HWEC_PERSIST_DISABLE=YES - And restart all wanpipe cards using: wanrouter restart command. - - Note this bug affects all AFT cards with hardware echo cancellation - and release 2.3.4-5. +- Support for 2.6.20 kernels. - For more info please contact Sangoma Support. +- Support for New: A101D A102D A104D Maxim cards + : +- Support for New: AFT 56K DDS card -- Minor cosmetic update to wancfg_zaptel wanpipe/zaptel configurator. - +- Redesigned TDM API Events -* Mon Jan 22 2007 Nenad Corbic - 2.3.4-5 -==================================================================== +- TDM API Analog Support -- Updated support for A400 Analog card - This release will recognize the new A400 - pci card info. - -- Updated A200/A400 firmware updater - Takes into account the new A200 and A400 cards. - -- AFT A301 T3/E3 Driver Update - Fixed a possible race condition - during startup/shutdown - -- AFT A101/2 T1/E1 Driver Update - Fixed a possible race condition - during startup/shutdown - -- AFT Hardware Echo Cancellation Persist Mode - The new default Echo Cancellation mode for all AFT cards. - If HWEC is enabled in wanpipe1.conf the Sangoma HWEC will - remain enabled all the time, even if the calls are not up. - Previously Asterisk enabled and disabled echo based on - zapata.conf and call state. This delay however caused minute - echo on call startup. In Persist mode, Sangoma HWEC will - always be enabled, thus users will get perfect quality 100% - of the time. - - In order to configure WANPIPE card in NON-PERSIST mode one - has to enable TDMV_HWEC_PERSIST_DISABLE=YES option in [wanpipeX] - section of wanpipeX.conf. - In this mode Asterisk will be responsible for enabling/disabling - hardware echo canceler. - -- LIP Layer Bug Fix. - This bug fix affects all WAN protocols for all AFT cards. - The bug was a race condition in startup code. - On a slow enough machine it was possible for an interface - to get stuck in disconnected mode during startup. - -- Wanpipe Zaptel Configuration Utility - The new wancfg_zaptel utility is now a default way to - configure Sangoma cards for Zaptel. The wancfg_zaptel utility - will auto detect all Sangoma cards in your machine and create - wanpipe configuration files along with /etc/zaptel.conf. This way - the customer can concentrate on /etc/asterisk/zapata.conf only. - - Run: /usr/sbin/wancfg_zaptel - Wizard like questions will lead you through whole - configuration process. - - After wancfg_zaptel following files will be created: - /etc/wanpipe/wanpipe*.conf # All wanpipe config files - /etc/zaptel.con # Fully configured zaptel - - -* Tue Jan 9 2007 Nenad Corbic - 2.3.4-4 -==================================================================== - -- Critical Bug fix A200/A400 Analog Cards - Critical bug fix in fxo sanity check control. - All customers that are running stable 2.3.4 release - must upgrade to 2.3.4-4. - -- Updates for 2.6.18 and 2.6.19 kernels. - -- Critical Bug fix for A108D and A102D cards. - It was possible for the front end interrupt handler to - miss-handle a pending interrupt, which would caused system - instability. - -- TDM API Update - Removed Zaptel dependency for A200/A400 cards when - running in TDM API mode only. - - -* Tue Dec 12 2006 Nenad Corbic - 2.3.4-3 -==================================================================== - -- Bug fix on A301 T3/E3 Drivers - The T3/E3 card/drivers could get stuck in connected or disconnected - state after which no state changes are reported. Used to happend - on noisy lines. - -- Bug Fix in A101/2 Drivers - Mishandling of skb buffers on rx stream could cause - unpredictable behavior on some systems. - This has now been fixed. - -- Updated A101/2/4/8 A301 Drivers - Changed the memory allocation scheme in non interrupt context to - use KERNEL instead of ATOMIC. The symptoms were on low - memory system wanrouter start could fail due to memory - allocation error when starting up large number of devices. - -- TDM API polling bug fix - By default TDM API application uses rx and tx streams. - However in tx only mode, the select would fail to wakeup. - -- A200 A400 Driver Bug Fix - If A200/A400 card are started with NO FXO/FXS modules - a kernel error is possible on some systems. - -- Update to TDM API sample Makefiles - added -lm library to compilation - -- Updated SMG Drivers - Sangoma SMG 1.7 Chan Woomera 1.6 - - -* Wed Nov 30 2006 Nenad Corbic - 2.3.4-2 -==================================================================== - -- A200 Sanity Check Bug Fix - This is an IMPORTANT update! This bug fix fixes a bug in FXO - sanity checker that on some machine could cause instability. - -- Wanpipemon A200 Voltage Check bug fix. - wanpipemon command was showing over 50V voltage - the sign was not observed. - - - -* Wed Nov 23 2006 Nenad Corbic - 2.3.4-1 -==================================================================== - -- This is the first official STABLE release of 2.3.4 branch. - -- AFT A104d 64bit bug fix - The AFT A104d T1 channel 24 failed to initialize causing DCHAN - not to come up on 64 bit machines. - -- SMG Update - Major optimizations to greatly improve system load and capacity. - Added rx tx gain control from CLI and woomera.conf - Woomera v1.5 SMG v1.6 - -- Driver update for 2.6.18 kernel. - -- Wanpipemon Updates - Updated for A301 drivers. - Minor bug fixes. - -- CHDLC Protocol - Fixed up the ignore keepalive - -- WANCFG - CHDLC Protocol - Bug fix in chdlc configuration. - - -* Thu Nov 02 2006 Nenad Corbic - beta12-2.3.4 -=================================================================== -- Further Analog Bug Fixes. - Fixes the problem where fxo module gets stuck during operation. - - - -* Wed Nov 01 2006 Nenad Corbic - beta11-2.3.4 -=================================================================== -- A102D Hardware Support - Updated drivers for A102D Hardware - Minimum A102D firmware version V.28 - -- Bug fix in Analog A200 driver. - Every once in a while a fxo port would get stuck and fail to - receive any more calls. This has not been fixed. - -- Bug fix in Analog A200 driver. - The lasttxhoot state could get stuck in one state. - If you have weird analog A200 issues, please try this release. - -- New SMG update - -- Setup installation script update - -- New A200 voltage statistics in wanpipemon - -- New wanrouter hwprobe verbose option - Displays all FXO/FXS modules installed on your system - wanrouter hwprobe verbose - - -* Fri Oct 13 2006 Nenad Corbic - beta10-2.3.4 -==================================================================== - -- A200 Bug fix - Analog software echo cancellation has been broken - in beta8-2.3.4 release. This bug has now been fixed. - This bug does not affect A200d cards with HWEC. - -- Setup update - Update in compilation headers that caused wan_ec_client - to fail compilation on some machine. - -* Fri Oct 6 2006 Nenad Corbic - beta9-2.3.4 -- Bug fixes hwec that were introduced in beta8 -- Disabled hw dtmf events. -- This release has been tested in production. - -* Mon Oct 2 2006 Nenad Corbic - beta8-2.3.4 -================================================================= - -- New A108 HWEC Support - Optimized TDM Drivers for A108 - Support for A108 Hardware Echo Cancellation - Support for A108 RefClock between ports. - New Firmware. V27 - -- New A108 HWEC Support - Optimized TDM Drivers for A108 - Support for A108 Hardware Echo Cancellation - Support for A108 RefClock between ports. - New Firmware. V27 - -- LIP / AFT Layer Latency Optimization (LINUX Only) - By setting txqueuelen using ifconfig to value of 1 - the LIP layer will re-configure the protocol and hw layer - for SINGLE tx buffer. This will improve overall latency. - -- AFT (A101/2/4/8) Layer Latency Optimization - The SINGLE_TX_BUF=YES option in [w1g1] interface - section, configures the AFT hardware for single hw dma buffer - instead of a DMA chain. This option along with above - LIP layer latency option reduces driver/protocol latency - to theoretical minimum. - NOTE: In WAN/IP applications latency feature will increase - system load. - (5% to 20% depending on system and number of ports used) - - -* Mon Jul 31 2006 Nenad Corbic - beta7-2.3.4 -================================================================== -- A200 Driver Bug Fix. - The A200 drivers had PULSE dialing enabled - that can cause call outages on NON-PULSE dialing lines. - This has now been fixed. - -- Updates to ./Setup installation script - More documentation in usage. - - - -* Mon Jul 24 2006 Nenad Corbic - beta6-2.3.4 -================================================================== -- Fixed the AFT HWEC on 64bit kernels. - The bug was caused by using 32bit version of - the octasic API release in beta5-2.3.4. - - - -* Fri Jul 21 2006 Nenad Corbic - beta5-2.3.4 -================================================================== -- TDM API was broken on A101/2 Cards - It has not been fixed. - -- A108D Hardware Support - The new A108D: 8 Port T1/E1 with onboard 246 channel - hardware echo canceller. - -- The wanec daemon has been deprecated. - A new wanec kernel module has been created to handle - all octasic commands. - -- The hwec release has been deprecated. - The hwec drivers are now part of wanpipe release. - -- Bug Fix in A104 and A104D Ref Clock - This bug caused FAX failures when REF Clock option was enabled. - -- Updates for 2.6.16 and 2.6.17 kernels - New kernels broke previous wanpipe drivers. - -- Frame Relay Update: EEK Support - New Frame relay stack supports Cisco End to End Keepalives - on each DLCI. - -- PPP Update: Updated PPP IP negotiation. IPCP was not - working properly agains some routers. This has now - been resolved. - -- TDM API: HW DMTF on A104D cards. - The TDM API and regular API interfaces now supports HW DTMF - on A104D and A108D cards. - -- Setup update: the --protocols option with --silent option did not - select proper protocols under certail conditions. - ./Setup install --protocols=TDM --silent - This option will now compile TDM protocol properly. - -- ADSL Update: The ADSL drivers were failing on some machines due - to kfree_skb error under irq. This has now been fixed. - -- AFT A104/A108 Driver updated for 64bit kernels with over 4GB - of memory. The NO AUDIO problem on TDM drivers. - The 4GB memory caused DMA corruptions to occur which caused - no AUDIO effect. - -- SSMG Product: Sangoma Signal Media Gateway - The ssmg product is now part of standard wanpipe. - It will automatically get installed if XMTP2 drivers are - selected. The SMG product provides SS7 Support to Asterisk. - -- LibSangoma: LibSangoma is part of the SSMG product, however - it can be used separately with TDM API to develop custom - TDM applications. Libsangoma is now part of standard wanpipe - release. - -* Fri Mar 04 2006 Nenad Corbic - beta4-2.3.4 -- A108 Hardware Support - Full support for new A108 8 Port T1/E1 Card - -- AFT Front End T1/E1 Alarm Update/Polling - On some embedded machines the A104D cards exhibited - unreliable ports i.e. The port would not come up due to - missing interrupts from the front end chip. - The Front End polling mechanism has been updated to solve this problem. - -- TDM API Update - Fixed a bug in RX/TX functions. - On some machines the kernel to user copy did not work. - -- Updated HWEC and TDMAPI Udev Devices - HWEC UDEV device: /dev/wp1ec (Major: 241) - TDM API UDEV device: /dev/wptdm_s1c1 (Major: 242) - -- Setup Installation Script Update - Compilation of Zaptel during installation - UDEV Zaptel updates - UDEV TDM API updates - -- AFT-LIP Frame Relay DLCI Statistics - Updated Frame Relay DLCI Statistics. - -- AFT-LIP PPP Update - IPCP negotiation failed when connected to some telco. - -* Wed Feb 22 2006 Nenad Corbic - beta3-2.3.4 -- A104D HWEC Update - Bug fix on E1 4th port channel 31 did not work. - -- A104D HWEC 64Bit Fix - The A104D HWEC now works on 64bit machines. - Using UDEV /dev/wp1ec device to access hwec chip. - If no UDEV one must create /dev/wp1ec using: - mknod /dev/wp1ec c 2402 1 - -- AFT Firmware Update Utility - Bug fix. On some systems firmware update failed. - -- TDM API Updates - Support on AFT A101/2 Cards - Fixed shutdown problems while channels are opened. - -* Wed Feb 15 2006 Nenad Corbic - beta2-2.3.4 -- The Beta2-2.3.4 is the first official Beta release of 2.3.4. - The 2.3.4 release has been in ALPHA for months and has gone - through major testing process. - -- A200 Remora Updates - Updates for 24 port A200 solution - New A200 Firmware Release V05 - -- A104D Update/Bug Fix - Echo cancellation DSP had problems on - port 4 of A104D card. - -- New A104/4D TDM API and libsangoma release - The new TDM API replaces the old TDM API. - Currently the TDM API is only supported on A104 and A104D cards. - - The TDM API is compiled by default in wanpipe drivers. - Supports: PRI and RBS functionality. - Sample files: /etc/wanpipe/api/tdm_api - -- Libsangoma Release - New libsangoma source is located in - /etc/wanpipe/api/libsangoma directory. - - For more info and docs please refer to http://sangoma.editme.com - - -* Tue Jan 10 2006 Nenad Corbic - beta1y-2.3.4 -- Driver update for 2.4.30 kernel -- AFT A104 Driver minor update to TDM API - Number of dma packets used in API mode. - To save memory. Not a functional change. - -- Update to Setup install script - -- Wancfg Update - New option to configure wanpipe config file base on zaptel.conf - syntax: "wancfg zaptel" - -* Tue Dec 15 2005 Nenad Corbic - beta1x-2.3.4 -- Major AFT A200 Analog Updates - Analog Hardware Echo Canceler is now supported - Bug fixes on aLaw lines, noise problems. - -- Wancfg Updates - -- Updates to Setup installation utility - -* Mon Dec 5 2005 Nenad Corbic - beta1x-2.3.4 -- WanCfg Update - New wancfg option "zaptel" that will create wanpipe - based on /etc/zaptel.conf configuration. - eg: - 1. Configure your zaptel first based on hardware - 2. Run: wancfg zaptel - To create wanpipe config files based on zaptel.conf - 3. Run: wanrouter start - 4. Run: ztcfg -vvv - 5. Read to start Asterisk - -- Setup Update - Added new options in ./Setup for user to specify custom gcc - compiler. - -- AFT A200 Updates - Further Analog driver updates. - -- AFT Echo Debugging Utility - Used to measure echo spike and debug echo problems. - - -* Wed Nov 23 2005 Nenad Corbic - beta1x-2.3.4 - -- Bug fix in Analog startup - You can now set ACTIVE_CH=ALL and by default all detected - FXO/FXS Devices will be configured. - -- Bug fix in A102 Drivers - When both ports are running, if you stop one - the other one dies. - - END - diff --git a/rpmspec/wanpipe.spec b/rpmspec/wanpipe.spec index d39cd94..2a48d3b 100644 --- a/rpmspec/wanpipe.spec +++ b/rpmspec/wanpipe.spec @@ -1,8 +1,8 @@ %define KERNEL_VERSION %{?kern_ver} %define WANPIPE_VER wanpipe %define name %{WANPIPE_VER} -%define version 2.3.4 -%define release 16 +%define version 3.1.0 +%define release 0 %define serial 1 %define UTILS_DIR /usr/sbin %define UTILS_LOCAL_DIR /usr/local/sbin @@ -253,657 +253,29 @@ install_init; %changelog - -* Tue Nov 15 2007 Nenad Corbic - 2.3.4-16 -==================================================================== - -- Fixed MAXIM loopback commands. - T1/E1 Digital, Remote and Line Loopbacks now work. - - -* Tue Oct 29 2007 Nenad Corbic - 2.3.4-15 -==================================================================== - -- Fixed T3/E3 CARRIER state on startup. - -- Updated Setup install script - - -* Tue Aug 15 2007 Nenad Corbic - 2.3.4-14 -==================================================================== - -- Added A101-SH A102-SH autopci old config support. - So A101u or A101c config file can be used with new A101-SH cards. - -- Added a sanity checker for enabling HWEC. - Used to prevent duble hwec enable. - -- Updated CHDLC switched CTS/RTS auto-baudrate. - - - -* Mon Jun 30 2007 Nenad Corbic - 2.3.4-13 -==================================================================== - -- Update to Ocatsic Hardware Echo Canceler Library - Turned of the NOISE suppression because it can interfere - with faxes. If you faxes did not work properly on 2.3.4-12 - release they will work fine with this one. - -- Cleaned up the Setup installation script. - - -* Mon Jun 16 2007 Nenad Corbic - 2.3.4-12 -==================================================================== - -- Update to Octasic Hardware Echo Canceler library - This is a very important update that affects all AFT cards - with octasic hardware echo canceler. The new octasic update - fixes faxing/modem issues over octasic hwec. The previous - release contained a bug that limited the faxing/modem speeds - to 26k. The new update properly detects fax/modem and works - with full speed of 33k fax and 56k modem. - -- A200/A400 Updated - This update fixes the offhook startup failure. - On startup if fxs is offhook driver will start correctly - -- Wanpipe Startup order changed - The wanpipe startup scripts on bootup were previously - set too early "S03wanrouter". This caused unpredictable - behaviour on some systems. We have now moved wanrouter - startup on boot up to "S11wanrouter", after networking - code. - -- Zaptel Adjustable Chunk Size Feature - Wanpipe drivers can work with 1,2,5 and 10ms - chunk size. Zaptel also supports this, however - the wct4xx driver breaks compilation when chunk - size is changed. ./Setup can how change the - zaptel chunk size for you and update zaptel - Makefiles to remove wct4xx driver out. - - Zaptel with 1ms generates 1000 interrupts per sec - Zaptel with 10ms generates 100 interrupts per sec. - - As you can see its a drastic interrupt performance - increase. - - NOTE: This breaks software echo cancelation, but - its not needed since we have hwec. - - -* Thu Jun 14 2007 Nenad Corbic - 2.3.4-11 -=============================================================== - -- A101/2/4/8 (MAXIM) AFT Update IMPORTANT - A major bug fix for AFT Maxim E1 cards for E1 CRC4 Mode. - On some lines the E1/CRC4 mode causes line errors on - the telco side which results in PRI not coming up. - - Symptiom: E1 is up (no alarms) on local side but pri is - not coming up! (Only in E1 CRC4 Mode) - -- A101/2/4/8 (MAXIM) Mandatory Firmware Update - An echo canceler bug has been fixed for all AFT - MAXIM Cards A101/2/4/8dm. New firmware version is V31. - If you are running MAXIM cards with hwec wiht older - firmware version you must upgrade. - -- Updated SMG - Fixed DTMF synchronization - - -* Thu Jun 13 2007 Nenad Corbic - 2.3.4-10 -=============================================================== - -- Support for AFT 54K DDS hardware - -- Support for New A301 T3/E3 Card - -- Updated Maxim (A101/2/4/8) Front end - On port shutdown properly reset the port. - This will solve instances where on port - shutdown, the remote end stays up. - -- Updated Setup for patching Zaptel 1.2.17 - -- Analog Network Sync Feature - Synchronize Analog card to a clock of a - Digital T1/E1 port using external cable. - Improves Faxing performance! - For more info: - http://wiki.sangoma.com/t1e1analogfaxing - - -* Wed May 17 2007 Nenad Corbic - 2.3.4-9 +* Fri May 17 2007 Nenad Corbic - Beta - 3.1.0 ==================================================================== -- Updated Zaptel 1.2.17 DCHAN Patch - -- Hardware A101D and A101DX Support - -- Added Maxim register debug in wanpipemon - -- Update to SMG - - -* Wed Apr 23 2007 Nenad Corbic - 2.3.4-8 -==================================================================== - -- Important: AFT TDMV (ZAPTEL) Fix - A race condition existed on wanrouter startup. - If echo canceler startup delayed the startup long enough, - for T1/E1 line to come up, it was possible that zaptel - alarms would not be cleared. - -- Important: AFT T1/E1 Front End update. - The AFT cards will not disable communications for minor - T1/E1 alarms. This has caused problems in the passed because - AFT cards were too strict in interpreting T1/E1 alarms. - - -- Added AFT/56K Line Loop Test feature in wanpipemon - After enabling digital loopback run line test to test - the device.: - wanpipemon -i w1g1 -c Tadlb - wanpipemon -i w1g1 -c Tlt - - This option can be used with any T1/E1 AFT card as well as 56K, - with any wanpipe configuration. - -- Hardware support for new AFT 301 Card. - The new T3 card has been redesigned to use common main board as - the rest of the AFT family. However, the driver remains identical. - -- AFT T1/E1 Improved CAS Signaling Support - -- Allow original A102 config to work with A102d cards. - -- TDM API updated for unlimited number of /dev/wptdm devices. - -- Updated the Hardware Echo Canceler with Noise suppression. - -- New TDM Zaptel/TDM API installation Makefile to be used by linux power users. - Options: - make #buils all utilities and kernel modules - make install #installs utilities modules etc - -- Fixed DCHAN patch for zaptel 1.2.13 - - - KNOWS ISSUES: - ------------- - - All cards with Maxim/Dallas front end chips do not support RBS signalling. - These include: A102d/A108d and new A104d with maxim/dallas chips. - The fix is in new beta 3.1.0 release. - - -* Wed Jan 31 2007 Nenad Corbic - 2.3.4-7 -==================================================================== - -- Removed a sanity check from AFT drivers - This check was added in 2.3.4-5 release. - - Due to some imporant fixes in 2.3.4-5 this release was - rushed, and things like this happen. Sorry :) - - -* Wed Jan 31 2007 Nenad Corbic - 2.3.4-6 -==================================================================== - -- Bugfix for AFT Hardware Echo Voice cards - Bug introduced in 2.3.4-5 release. +- Major new BETA wanpipe release + Changed wanpipe versioning: + Release: A.B.C.D + A - Major Relase number + B - Indicates Stable or Beta + Odd number is Beta + Even number is Stable + C - Minor Release number + D - Optional pre-release and custom releases - The new feature "persistent hwec" released in 2.3.4-5 had a bug - that was apprent on wanpipe restarts. - Anyone running 2.3.4-5 release should upgrade. +- Fixed RBS Support for all Maxim cards A101/2/4/8. - If you are running 2.3.4-5 in production to fix this problem enable - the following option in [wanpipe] section of wanpipeX.conf. - TDMV_HWEC_PERSIST_DISABLE=YES - And restart all wanpipe cards using: wanrouter restart command. - - Note this bug affects all AFT cards with hardware echo cancellation - and release 2.3.4-5. +- Support for 2.6.20 kernels. - For more info please contact Sangoma Support. +- Support for New: A101D A102D A104D Maxim cards + : +- Support for New: AFT 56K DDS card -- Minor cosmetic update to wancfg_zaptel wanpipe/zaptel configurator. - +- Redesigned TDM API Events -* Mon Jan 22 2007 Nenad Corbic - 2.3.4-5 -==================================================================== +- TDM API Analog Support -- Updated support for A400 Analog card - This release will recognize the new A400 - pci card info. - -- Updated A200/A400 firmware updater - Takes into account the new A200 and A400 cards. - -- AFT A301 T3/E3 Driver Update - Fixed a possible race condition - during startup/shutdown - -- AFT A101/2 T1/E1 Driver Update - Fixed a possible race condition - during startup/shutdown - -- AFT Hardware Echo Cancellation Persist Mode - The new default Echo Cancellation mode for all AFT cards. - If HWEC is enabled in wanpipe1.conf the Sangoma HWEC will - remain enabled all the time, even if the calls are not up. - Previously Asterisk enabled and disabled echo based on - zapata.conf and call state. This delay however caused minute - echo on call startup. In Persist mode, Sangoma HWEC will - always be enabled, thus users will get perfect quality 100% - of the time. - - In order to configure WANPIPE card in NON-PERSIST mode one - has to enable TDMV_HWEC_PERSIST_DISABLE=YES option in [wanpipeX] - section of wanpipeX.conf. - In this mode Asterisk will be responsible for enabling/disabling - hardware echo canceler. - -- LIP Layer Bug Fix. - This bug fix affects all WAN protocols for all AFT cards. - The bug was a race condition in startup code. - On a slow enough machine it was possible for an interface - to get stuck in disconnected mode during startup. - -- Wanpipe Zaptel Configuration Utility - The new wancfg_zaptel utility is now a default way to - configure Sangoma cards for Zaptel. The wancfg_zaptel utility - will auto detect all Sangoma cards in your machine and create - wanpipe configuration files along with /etc/zaptel.conf. This way - the customer can concentrate on /etc/asterisk/zapata.conf only. - - Run: /usr/sbin/wancfg_zaptel - Wizard like questions will lead you through whole - configuration process. - - After wancfg_zaptel following files will be created: - /etc/wanpipe/wanpipe*.conf # All wanpipe config files - /etc/zaptel.con # Fully configured zaptel - - -* Tue Jan 9 2007 Nenad Corbic - 2.3.4-4 -==================================================================== - -- Critical Bug fix A200/A400 Analog Cards - Critical bug fix in fxo sanity check control. - All customers that are running stable 2.3.4 release - must upgrade to 2.3.4-4. - -- Updates for 2.6.18 and 2.6.19 kernels. - -- Critical Bug fix for A108D and A102D cards. - It was possible for the front end interrupt handler to - miss-handle a pending interrupt, which would caused system - instability. - -- TDM API Update - Removed Zaptel dependency for A200/A400 cards when - running in TDM API mode only. - - -* Tue Dec 12 2006 Nenad Corbic - 2.3.4-3 -==================================================================== - -- Bug fix on A301 T3/E3 Drivers - The T3/E3 card/drivers could get stuck in connected or disconnected - state after which no state changes are reported. Used to happend - on noisy lines. - -- Bug Fix in A101/2 Drivers - Mishandling of skb buffers on rx stream could cause - unpredictable behavior on some systems. - This has now been fixed. - -- Updated A101/2/4/8 A301 Drivers - Changed the memory allocation scheme in non interrupt context to - use KERNEL instead of ATOMIC. The symptoms were on low - memory system wanrouter start could fail due to memory - allocation error when starting up large number of devices. - -- TDM API polling bug fix - By default TDM API application uses rx and tx streams. - However in tx only mode, the select would fail to wakeup. - -- A200 A400 Driver Bug Fix - If A200/A400 card are started with NO FXO/FXS modules - a kernel error is possible on some systems. - -- Update to TDM API sample Makefiles - added -lm library to compilation - -- Updated SMG Drivers - Sangoma SMG 1.7 Chan Woomera 1.6 - - -* Wed Nov 30 2006 Nenad Corbic - 2.3.4-2 -==================================================================== - -- A200 Sanity Check Bug Fix - This is an IMPORTANT update! This bug fix fixes a bug in FXO - sanity checker that on some machine could cause instability. - -- Wanpipemon A200 Voltage Check bug fix. - wanpipemon command was showing over 50V voltage - the sign was not observed. - - - -* Wed Nov 23 2006 Nenad Corbic - 2.3.4-1 -==================================================================== - -- This is the first official STABLE release of 2.3.4 branch. - -- AFT A104d 64bit bug fix - The AFT A104d T1 channel 24 failed to initialize causing DCHAN - not to come up on 64 bit machines. - -- SMG Update - Major optimizations to greatly improve system load and capacity. - Added rx tx gain control from CLI and woomera.conf - Woomera v1.5 SMG v1.6 - -- Driver update for 2.6.18 kernel. - -- Wanpipemon Updates - Updated for A301 drivers. - Minor bug fixes. - -- CHDLC Protocol - Fixed up the ignore keepalive - -- WANCFG - CHDLC Protocol - Bug fix in chdlc configuration. - - -* Thu Nov 02 2006 Nenad Corbic - beta12-2.3.4 -=================================================================== -- Further Analog Bug Fixes. - Fixes the problem where fxo module gets stuck during operation. - - - -* Wed Nov 01 2006 Nenad Corbic - beta11-2.3.4 -=================================================================== -- A102D Hardware Support - Updated drivers for A102D Hardware - Minimum A102D firmware version V.28 - -- Bug fix in Analog A200 driver. - Every once in a while a fxo port would get stuck and fail to - receive any more calls. This has not been fixed. - -- Bug fix in Analog A200 driver. - The lasttxhoot state could get stuck in one state. - If you have weird analog A200 issues, please try this release. - -- New SMG update - -- Setup installation script update - -- New A200 voltage statistics in wanpipemon - -- New wanrouter hwprobe verbose option - Displays all FXO/FXS modules installed on your system - wanrouter hwprobe verbose - - -* Fri Oct 13 2006 Nenad Corbic - beta10-2.3.4 -==================================================================== - -- A200 Bug fix - Analog software echo cancellation has been broken - in beta8-2.3.4 release. This bug has now been fixed. - This bug does not affect A200d cards with HWEC. - -- Setup update - Update in compilation headers that caused wan_ec_client - to fail compilation on some machine. - -* Fri Oct 6 2006 Nenad Corbic - beta9-2.3.4 -- Bug fixes hwec that were introduced in beta8 -- Disabled hw dtmf events. -- This release has been tested in production. - -* Mon Oct 2 2006 Nenad Corbic - beta8-2.3.4 -================================================================= - -- New A108 HWEC Support - Optimized TDM Drivers for A108 - Support for A108 Hardware Echo Cancellation - Support for A108 RefClock between ports. - New Firmware. V27 - -- New A108 HWEC Support - Optimized TDM Drivers for A108 - Support for A108 Hardware Echo Cancellation - Support for A108 RefClock between ports. - New Firmware. V27 - -- LIP / AFT Layer Latency Optimization (LINUX Only) - By setting txqueuelen using ifconfig to value of 1 - the LIP layer will re-configure the protocol and hw layer - for SINGLE tx buffer. This will improve overall latency. - -- AFT (A101/2/4/8) Layer Latency Optimization - The SINGLE_TX_BUF=YES option in [w1g1] interface - section, configures the AFT hardware for single hw dma buffer - instead of a DMA chain. This option along with above - LIP layer latency option reduces driver/protocol latency - to theoretical minimum. - NOTE: In WAN/IP applications latency feature will increase - system load. - (5% to 20% depending on system and number of ports used) - - -* Mon Jul 31 2006 Nenad Corbic - beta7-2.3.4 -================================================================== -- A200 Driver Bug Fix. - The A200 drivers had PULSE dialing enabled - that can cause call outages on NON-PULSE dialing lines. - This has now been fixed. - -- Updates to ./Setup installation script - More documentation in usage. - - - -* Mon Jul 24 2006 Nenad Corbic - beta6-2.3.4 -================================================================== -- Fixed the AFT HWEC on 64bit kernels. - The bug was caused by using 32bit version of - the octasic API release in beta5-2.3.4. - - - -* Fri Jul 21 2006 Nenad Corbic - beta5-2.3.4 -================================================================== -- TDM API was broken on A101/2 Cards - It has not been fixed. - -- A108D Hardware Support - The new A108D: 8 Port T1/E1 with onboard 246 channel - hardware echo canceller. - -- The wanec daemon has been deprecated. - A new wanec kernel module has been created to handle - all octasic commands. - -- The hwec release has been deprecated. - The hwec drivers are now part of wanpipe release. - -- Bug Fix in A104 and A104D Ref Clock - This bug caused FAX failures when REF Clock option was enabled. - -- Updates for 2.6.16 and 2.6.17 kernels - New kernels broke previous wanpipe drivers. - -- Frame Relay Update: EEK Support - New Frame relay stack supports Cisco End to End Keepalives - on each DLCI. - -- PPP Update: Updated PPP IP negotiation. IPCP was not - working properly agains some routers. This has now - been resolved. - -- TDM API: HW DMTF on A104D cards. - The TDM API and regular API interfaces now supports HW DTMF - on A104D and A108D cards. - -- Setup update: the --protocols option with --silent option did not - select proper protocols under certail conditions. - ./Setup install --protocols=TDM --silent - This option will now compile TDM protocol properly. - -- ADSL Update: The ADSL drivers were failing on some machines due - to kfree_skb error under irq. This has now been fixed. - -- AFT A104/A108 Driver updated for 64bit kernels with over 4GB - of memory. The NO AUDIO problem on TDM drivers. - The 4GB memory caused DMA corruptions to occur which caused - no AUDIO effect. - -- SSMG Product: Sangoma Signal Media Gateway - The ssmg product is now part of standard wanpipe. - It will automatically get installed if XMTP2 drivers are - selected. The SMG product provides SS7 Support to Asterisk. - -- LibSangoma: LibSangoma is part of the SSMG product, however - it can be used separately with TDM API to develop custom - TDM applications. Libsangoma is now part of standard wanpipe - release. - -* Fri Mar 04 2006 Nenad Corbic - beta4-2.3.4 -- A108 Hardware Support - Full support for new A108 8 Port T1/E1 Card - -- AFT Front End T1/E1 Alarm Update/Polling - On some embedded machines the A104D cards exhibited - unreliable ports i.e. The port would not come up due to - missing interrupts from the front end chip. - The Front End polling mechanism has been updated to solve this problem. - -- TDM API Update - Fixed a bug in RX/TX functions. - On some machines the kernel to user copy did not work. - -- Updated HWEC and TDMAPI Udev Devices - HWEC UDEV device: /dev/wp1ec (Major: 241) - TDM API UDEV device: /dev/wptdm_s1c1 (Major: 242) - -- Setup Installation Script Update - Compilation of Zaptel during installation - UDEV Zaptel updates - UDEV TDM API updates - -- AFT-LIP Frame Relay DLCI Statistics - Updated Frame Relay DLCI Statistics. - -- AFT-LIP PPP Update - IPCP negotiation failed when connected to some telco. - -* Wed Feb 22 2006 Nenad Corbic - beta3-2.3.4 -- A104D HWEC Update - Bug fix on E1 4th port channel 31 did not work. - -- A104D HWEC 64Bit Fix - The A104D HWEC now works on 64bit machines. - Using UDEV /dev/wp1ec device to access hwec chip. - If no UDEV one must create /dev/wp1ec using: - mknod /dev/wp1ec c 2402 1 - -- AFT Firmware Update Utility - Bug fix. On some systems firmware update failed. - -- TDM API Updates - Support on AFT A101/2 Cards - Fixed shutdown problems while channels are opened. - -* Wed Feb 15 2006 Nenad Corbic - beta2-2.3.4 -- The Beta2-2.3.4 is the first official Beta release of 2.3.4. - The 2.3.4 release has been in ALPHA for months and has gone - through major testing process. - -- A200 Remora Updates - Updates for 24 port A200 solution - New A200 Firmware Release V05 - -- A104D Update/Bug Fix - Echo cancellation DSP had problems on - port 4 of A104D card. - -- New A104/4D TDM API and libsangoma release - The new TDM API replaces the old TDM API. - Currently the TDM API is only supported on A104 and A104D cards. - - The TDM API is compiled by default in wanpipe drivers. - Supports: PRI and RBS functionality. - Sample files: /etc/wanpipe/api/tdm_api - -- Libsangoma Release - New libsangoma source is located in - /etc/wanpipe/api/libsangoma directory. - - For more info and docs please refer to http://sangoma.editme.com - - -* Tue Jan 10 2006 Nenad Corbic - beta1y-2.3.4 -- Driver update for 2.4.30 kernel -- AFT A104 Driver minor update to TDM API - Number of dma packets used in API mode. - To save memory. Not a functional change. - -- Update to Setup install script - -- Wancfg Update - New option to configure wanpipe config file base on zaptel.conf - syntax: "wancfg zaptel" - -* Tue Dec 15 2005 Nenad Corbic - beta1x-2.3.4 -- Major AFT A200 Analog Updates - Analog Hardware Echo Canceler is now supported - Bug fixes on aLaw lines, noise problems. - -- Wancfg Updates - -- Updates to Setup installation utility - -* Mon Dec 5 2005 Nenad Corbic - beta1x-2.3.4 -- WanCfg Update - New wancfg option "zaptel" that will create wanpipe - based on /etc/zaptel.conf configuration. - eg: - 1. Configure your zaptel first based on hardware - 2. Run: wancfg zaptel - To create wanpipe config files based on zaptel.conf - 3. Run: wanrouter start - 4. Run: ztcfg -vvv - 5. Read to start Asterisk - -- Setup Update - Added new options in ./Setup for user to specify custom gcc - compiler. - -- AFT A200 Updates - Further Analog driver updates. - -- AFT Echo Debugging Utility - Used to measure echo spike and debug echo problems. - - -* Wed Nov 23 2005 Nenad Corbic - beta1x-2.3.4 - -- Bug fix in Analog startup - You can now set ACTIVE_CH=ALL and by default all detected - FXO/FXS Devices will be configured. - -- Bug fix in A102 Drivers - When both ports are running, if you stop one - the other one dies. - - END - diff --git a/samples/wanpipe1.katm b/samples/wanpipe1.katm new file mode 100644 index 0000000..091e0cd --- /dev/null +++ b/samples/wanpipe1.katm @@ -0,0 +1,165 @@ +#================================================ +# WANPIPE1 Configuration File +#================================================ +# +# Date: Wed Mar 7 18:20:38 PST 2007 +# +# Note: This file was generated automatically +# by /usr/sbin/wancfg program. +# +# If you want to edit this file, it is +# recommended that you use wancfg program +# to do so. +#================================================ +# Sangoma Technologies Inc. +#================================================ + +[devices] +wanpipe1 = WAN_AFT, Comment + +[interfaces] +w1g1 = wanpipe1, , STACK, Comment +w1g1ka1 = wanpipe1, , API, lip_katm, w1g1.lip_atm + +[wanpipe1] + +#-------- DEVICE / DRIVER BINDING ---------------------------------- + +CARD_TYPE = AFT #AFT: Same for all aft cards must + #This value must be hardcoed to AFT for all + #aft cards. + +S514CPU = A #Used by A101/2 driver to determine T1/E1 port + #A - port 1 + #B - port 2 + #For A104 driver: Always set this value to A! + +CommPort = PRI #Only used by S514 cards. + #PRI - S514 primary port + #SEC - S514 secondary port + # + #OBSELETE for AFT cards (can be removed) + +#-------- PCI SETUP ---------------------------------------------- + + +AUTO_PCISLOT = YES #Auto detect PCI/BUS info for this card type + #NO - disable this option + #YES- enable this option + # if enabled bottom two options + # PCISLOT and PCIBUS will not be used. + # Therefore one can set the to arbitrary value + # or remove them all together. + +PCISLOT = 2 #PCI SLOT Number: + #Valid values = any number + +PCIBUS = 2 #PCI BUS Number: + #Valid values = any number + + +#--------------FRONT END SETUP ----------------------------------- + +FE_MEDIA = T1 #Front End Type: + #T1 - set front end for T1 mode + #E1 - set front end for E1 mode + +FE_LCODE = B8ZS #Front End Line Coding + #If T1: B8ZS or AMI + # E1: HDB3 or AMI + +FE_FRAME = ESF #Front End Framing + #If T1: ESF or D4 + # E1: CRC4 or NCRC4 + +FE_LINE = 1 #Front End Line number. + #Used by A104 driver to determine T1/E1 port + #Valid values are: 1-4 + # + #The A101/2 driver doesn't use this option + #so one should hardcode it to 1 or + #remove it all together. + + +TE_CLOCK = NORMAL #T1/E1 Clock Source + #NORMAL - slave clock, clock is received from telco + # This is always the DEFAULT + #MASTER - master clcok, use hw oscillator clock + # Only used in back to back mode or + # when specified by telco. + +TE_REF_CLOCK = 0 #T1/E1 Reference Clock Source + #This option allows one to use the incoming clock + #from a different port as a clock source to this + #port. FOR THIS OPTION TO WORK: TE_CLOCK=MASTER + #Valid options: 0 - disable + # 1-4 - use clock from particular port + +ACTIVE_CH = ALL #Specify T1/E1 Active channels (timeslots) + #Since AFT cards support channelization this + #option MUST BE HARDCODED TO: ALL! + +TE_HIGHIMPEDANCE = NO #Set the Front Ent chip in High Impedance mode + #used for datascoping: + #NO - Disable high impedance mode (DEFAULT) + #YES - Enable hight impedance mode + # (only if you know what you are doing) + +LBO = 0DB #Front End Line Buildout + # 0db (Default) + # 7.5dB + # 15dB + # 22.5dB + # 0-110ft + # 110-220ft + # 220-330ft + # 330-440ft + # 440-550ft + # 550-660ft + +FE_TXTRISTATE = NO #Front End Tri-State Mode + #Disable front end chip TX mode + #Used for datascoping or connecting multiple ports + #together where one port is operating normally and others + #are tristated, thus only receiving. + #NO - Disable tristae mode + #YES- Enable tristate mode + + +DATA_MUX_MAP = 0x01234567 #Do not change + + +MTU = 212 #Do not change +UDPPORT = 9000 #Do not change +TTL = 255 #Do not change +IGNORE_FRONT_END = NO #Do not change + +[w1g1ka1] +VPI = 0 #Not used by katm +VCI = 35 #Not used by katm + +ENCAPMODE = STACK_VC_OA #Must be set to STACK_VC_OA so + #no pdu headers are used + +OAM_LOOPBACK = NO #Must be set to NO +OAM_LOOPBACK_INT= 5 + +OAM_CC_CHECK = NO #Must be set to NO +OAM_CC_CHECK_INT= 2 + +ATMARP = NO #Must be set to NO +ATMARP_INT = 15 + +MTU = 4096 #Acual AAL5 layer MTU size + #Options: 1500 - 8000 + +[w1g1.lip_atm] + +[w1g1] +PROTOCOL = MP_ATM #Do not change any of the following +HDLC_STREAMING = NO +ACTIVE_CH = ALL +IDLE_FLAG = 0x7E +MTU = 212 +MRU = 212 +DATA_MUX = YES diff --git a/samples/wanpipe1.lip_lapd b/samples/wanpipe1.lip_lapd new file mode 100644 index 0000000..44e4b1b --- /dev/null +++ b/samples/wanpipe1.lip_lapd @@ -0,0 +1,187 @@ + +#================================================ +# WANPIPE1 Configuration File +#================================================ +# +# Date: Fri Jun 25 16:47:33 EDT 2004 +# +# Note: This file was generated automatically +# by /usr/sbin/wancfg program. +# +# If you want to edit this file, it is +# recommended that you use wancfg program +# to do so. +#================================================ +# Sangoma Technologies Inc. +#================================================ + +[devices] +wanpipe1 = WAN_AFT_TE1, Comment #WAN_AFT_TE1 - Indicates A104/8 card + #WAN_AFT - Indicates A101/2 card + + +[interfaces] +w1g1 = wanpipe1, , STACK, Comment #do not change +w1lapd = wanpipe1, 1 ,API, lip_lapd, lapd.w1g1, #do not change + + +[wanpipe1] +#-------- DEVICE / DRIVER BINDING ---------------------------------- + +CARD_TYPE = AFT #AFT: Same for all aft cards must + #This value must be hardcoed to AFT for all + #aft cards. + +S514CPU = A #Used by A101/2 driver to determine T1/E1 port + #A - port 1 + #B - port 2 + #For A104 driver: Always set this value to A! + +CommPort = PRI #Only used by S514 cards. + #PRI - S514 primary port + #SEC - S514 secondary port + # + #OBSELETE for AFT cards (can be removed) + +#-------- PCI SETUP ---------------------------------------------- + + +AUTO_PCISLOT = NO #Auto detect PCI/BUS info for this card type + #NO - disable this option + #YES- enable this option + # if enabled bottom two options + # PCISLOT and PCIBUS will not be used. + # Therefore one can set the to arbitrary value + # or remove them all together. + +PCISLOT = 1 #PCI SLOT Number: + #Valid values = any number + +PCIBUS = 3 #PCI BUS Number: + #Valid values = any number + + + +#--------------FRONT END SETUP ----------------------------------- + +FE_MEDIA = T1 #Front End Type: + #T1 - set front end for T1 mode + #E1 - set front end for E1 mode + +FE_LCODE = B8ZS #Front End Line Coding + #If T1: B8ZS or AMI + # E1: HDB3 or AMI + +FE_FRAME = ESF #Front End Framing + #If T1: ESF or D4 + # E1: CRC4 or NCRC4 + +FE_LINE = 1 #Front End Line number. + #Used by A104 driver to determine T1/E1 port + #Valid values are: 1-4 + # + #The A101/2 driver doesn't use this option + #so one should hardcode it to 1 or + #remove it all together. + + +TE_CLOCK = NORMAL #T1/E1 Clock Source + #NORMAL - slave clock, clock is received from telco + # This is always the DEFAULT + #MASTER - master clcok, use hw oscillator clock + # Only used in back to back mode or + # when specified by telco. + +TE_REF_CLOCK = 0 #T1/E1 Reference Clock Source + #This option allows one to use the incoming clock + #from a different port as a clock source to this + #port. FOR THIS OPTION TO WORK: TE_CLOCK=MASTER + #Valid options: 0 - disable + # 1-4 - use clock from particular port + +ACTIVE_CH = ALL #Specify T1/E1 Active channels (timeslots) + #Since AFT cards support channelization this + #option MUST BE HARDCODED TO: ALL! + +TE_HIGHIMPEDANCE = NO #Set the Front Ent chip in High Impedance mode + #used for datascoping: + #NO - Disable high impedance mode (DEFAULT) + #YES - Enable hight impedance mode + # (only if you know what you are doing) + +IGNORE_FRONT_END = NO +LBO = 0DB #Front End Line Buildout + # 0db (Default) + # 7.5dB + # 15dB + # 22.5dB + # 0-110ft + # 110-220ft + # 220-330ft + # 330-440ft + # 440-550ft + # 550-660ft + +FE_TXTRISTATE = NO #Front End Tri-State Mode + #Disable front end chip TX mode + #Used for datascoping or connecting multiple ports + #together where one port is operating normally and others + #are tristated, thus only receiving. + #NO - Disable tristae mode + #YES- Enable tristate mode + +MTU = 1500 #Global MTU Value + #Note: This value is overwritten by the + # interface MTU value below if it exists. + #Values: any number [ suggested 128 - 4086 ] + + +UDPPORT = 9000 #OBSELETE option + #Old wanpipemon used sockets to connect to + #device driver. + +TTL = 255 #OBSELETE option + #Old wanpipemon used sockets to connect to + #device driver. + +IGNORE_FRONT_END = NO #Ignore Fronte End State + #NO - Do not ignore front end state, + # therefore if state changes, change the + # state of the above protocol. + #YES- Igonore front end state + # Thus if front end goes down, the protocol + # will not know. + + +#-------------------------------------------- +#Q921/LAPD Profile Configuration +#-------------------------------------------- + +[lapd.w1g1] +LAP_STATION = DTE +T1 = 2 +T2 = 0 +T3 = 6 +T4 = 3 +N2 = 5 +LAP_MODE = 128 +LAP_WINDOW = 7 +MAX_PKT_SIZE = 1024 + + + +#-------------------------------------------- +#Hardware Interface Configuration +#-------------------------------------------- + + +[w1g1] +HDLC_STREAMING = YES #Enable hardware hdlc engine + #(Do not change) + +ACTIVE_CH = 24 #DCHAN on T1/E1 Span + #For T1 select 24 + #For E1 seelct 16 + #(Confirm with telco) + +[w1lapd] diff --git a/samples/wanpipe1.lip_q921 b/samples/wanpipe1.lip_q921 new file mode 100644 index 0000000..ee36d50 --- /dev/null +++ b/samples/wanpipe1.lip_q921 @@ -0,0 +1,186 @@ + +#================================================ +# WANPIPE1 Configuration File +#================================================ +# +# Date: Fri Jun 25 16:47:33 EDT 2004 +# +# Note: This file was generated automatically +# by /usr/sbin/wancfg program. +# +# If you want to edit this file, it is +# recommended that you use wancfg program +# to do so. +#================================================ +# Sangoma Technologies Inc. +#================================================ + +[devices] +wanpipe1 = WAN_AFT_TE1, Comment #WAN_AFT_TE1 - Indicates A104/8 card + #WAN_AFT - Indicates A101/2 card + + +[interfaces] +w1g1 = wanpipe1, , STACK, Comment #do not change +w1lapd = wanpipe1, 1 ,API, lip_lapd, lapd.w1g1, #do not change + + +[wanpipe1] +#-------- DEVICE / DRIVER BINDING ---------------------------------- + +CARD_TYPE = AFT #AFT: Same for all aft cards must + #This value must be hardcoed to AFT for all + #aft cards. + +S514CPU = A #Used by A101/2 driver to determine T1/E1 port + #A - port 1 + #B - port 2 + #For A104 driver: Always set this value to A! + +CommPort = PRI #Only used by S514 cards. + #PRI - S514 primary port + #SEC - S514 secondary port + # + #OBSELETE for AFT cards (can be removed) + +#-------- PCI SETUP ---------------------------------------------- + + +AUTO_PCISLOT = NO #Auto detect PCI/BUS info for this card type + #NO - disable this option + #YES- enable this option + # if enabled bottom two options + # PCISLOT and PCIBUS will not be used. + # Therefore one can set the to arbitrary value + # or remove them all together. + +PCISLOT = 1 #PCI SLOT Number: + #Valid values = any number + +PCIBUS = 2 #PCI BUS Number: + #Valid values = any number + + + +#--------------FRONT END SETUP ----------------------------------- + +FE_MEDIA = T1 #Front End Type: + #T1 - set front end for T1 mode + #E1 - set front end for E1 mode + +FE_LCODE = B8ZS #Front End Line Coding + #If T1: B8ZS or AMI + # E1: HDB3 or AMI + +FE_FRAME = ESF #Front End Framing + #If T1: ESF or D4 + # E1: CRC4 or NCRC4 + +FE_LINE = 1 #Front End Line number. + #Used by A104 driver to determine T1/E1 port + #Valid values are: 1-4 + # + #The A101/2 driver doesn't use this option + #so one should hardcode it to 1 or + #remove it all together. + + +TE_CLOCK = NORMAL #T1/E1 Clock Source + #NORMAL - slave clock, clock is received from telco + # This is always the DEFAULT + #MASTER - master clcok, use hw oscillator clock + # Only used in back to back mode or + # when specified by telco. + +TE_REF_CLOCK = 0 #T1/E1 Reference Clock Source + #This option allows one to use the incoming clock + #from a different port as a clock source to this + #port. FOR THIS OPTION TO WORK: TE_CLOCK=MASTER + #Valid options: 0 - disable + # 1-4 - use clock from particular port + +ACTIVE_CH = ALL #Specify T1/E1 Active channels (timeslots) + #Since AFT cards support channelization this + #option MUST BE HARDCODED TO: ALL! + +TE_HIGHIMPEDANCE = NO #Set the Front Ent chip in High Impedance mode + #used for datascoping: + #NO - Disable high impedance mode (DEFAULT) + #YES - Enable hight impedance mode + # (only if you know what you are doing) + +LBO = 0DB #Front End Line Buildout + # 0db (Default) + # 7.5dB + # 15dB + # 22.5dB + # 0-110ft + # 110-220ft + # 220-330ft + # 330-440ft + # 440-550ft + # 550-660ft + +FE_TXTRISTATE = NO #Front End Tri-State Mode + #Disable front end chip TX mode + #Used for datascoping or connecting multiple ports + #together where one port is operating normally and others + #are tristated, thus only receiving. + #NO - Disable tristae mode + #YES- Enable tristate mode + +MTU = 1500 #Global MTU Value + #Note: This value is overwritten by the + # interface MTU value below if it exists. + #Values: any number [ suggested 128 - 4086 ] + + +UDPPORT = 9000 #OBSELETE option + #Old wanpipemon used sockets to connect to + #device driver. + +TTL = 255 #OBSELETE option + #Old wanpipemon used sockets to connect to + #device driver. + +IGNORE_FRONT_END = NO #Ignore Fronte End State + #NO - Do not ignore front end state, + # therefore if state changes, change the + # state of the above protocol. + #YES- Igonore front end state + # Thus if front end goes down, the protocol + # will not know. + + +#-------------------------------------------- +#Q921/LAPD Profile Configuration +#-------------------------------------------- + +[lapd.w1g1] +LAP_STATION = DTE +T1 = 2 +T2 = 0 +T3 = 6 +T4 = 3 +N2 = 5 +LAP_MODE = 128 +LAP_WINDOW = 7 +MAX_PKT_SIZE = 1024 + + + +#-------------------------------------------- +#Hardware Interface Configuration +#-------------------------------------------- + + +[w1g1] +HDLC_STREAMING = YES #Enable hardware hdlc engine + #(Do not change) + +ACTIVE_CH = 24 #DCHAN on T1/E1 Span + #For T1 select 24 + #For E1 seelct 16 + #(Confirm with telco) + +[w1lapd] diff --git a/samples/wanrouter b/samples/wanrouter index 3e12707..e276aae 100644 --- a/samples/wanrouter +++ b/samples/wanrouter @@ -1,10 +1,7 @@ #!/bin/bash -p -# chkconfig: 2345 7 9 - - # wanrouter WANPIPE WAN Router Initialization Script. # -# copyright (c) 1999-2002, Sangoma Technologies Inc. +# copyright (c) 1999-2007, Sangoma Technologies Inc. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -122,11 +119,6 @@ check_awk () function cleanup () { eval "rm -f $WAN_PROG_LOCK 2> /dev/null > /dev/null" - - #Check module checks if modules are loaded and updates - #the subsys lock for LINUX - check_module - exit $1 } @@ -276,28 +268,6 @@ interface_up() return 0 } -function check_module () { - - if [ $OSYSTEM = "Linux" ]; then - [ -d "$ROUTER_PROC" ] && { - touch $WAN_LOCK 2> /dev/null - return 0 - } - else - for i in $WAN_DRIVERS - do $MODULE_STAT | grep -q $i && { - touch $WAN_LOCK 2> /dev/null - return 0 - } - done - fi - - # Driver is not loaded - if [ -e $WAN_LOCK ]; then - rm -f $WAN_LOCK 2> /dev/null - fi - return 1; -} function load_driver () { @@ -337,19 +307,6 @@ function unload_driver () { return $err } -#-------------------------------------------------------------------------- -# Create character device /dev/wanrouter -#-------------------------------------------------------------------------- -create_cdev() -{ - if [ $OSYSTEM = "FreeBSD" ]; then - [ ! -e "$CDEV_WANROUTER" ] && { - mknod $CDEV_WANROUTER c $CDEV_MAJOR $CDEV_MINOR - } - fi -} - - # ---------------------------------------------------------------------------- # Start WAN wanrouter. # o create log file @@ -362,11 +319,6 @@ load_module() { local opt=${1:-NO} - check_module - if [ $? -eq 0 ]; then - return 0 - fi - if [ $opt != silent ]; then echo "Starting WAN Router..." echo "`date`: starting WAN router" >> $WAN_LOG @@ -492,13 +444,22 @@ echo "Error: Your securelevel does not allow to load kernel modules!" echo "done." fi - # Create char devices (if needed) - create_cdev - touch $WANPIPE_IS_RUNNING return 0 } +#-------------------------------------------------------------------------- +# Create character device /dev/wanrouter +#-------------------------------------------------------------------------- +create_cdev() +{ + if [ $OSYSTEM = "FreeBSD" ]; then + [ ! -e "$CDEV_WANROUTER" ] && { + mknod $CDEV_WANROUTER c $CDEV_MAJOR $CDEV_MINOR + } + fi +} + router_config() { # Configure router. @@ -738,186 +699,6 @@ interf_down() } } -# ---------------------------------------------------------------------------- -# Configure devices (all or single). -# ---------------------------------------------------------------------------- -config_devices() -{ - local devices=$* - - for dev in $devices; do - if [ $OSYSTEM = "Linux" ] && [ ! -e "$ROUTER_PROC/$dev" ]; then - echo -e "Error: Device $dev is not supported by kernel\n" - continue - fi - WAN_CONF=$WAN_CONF_DIR/$dev.conf - - check_file $WAN_CONF || cleanup 1 - - check_exists $dev - if [ $? -ne 0 ]; then - echo "Error: Device $dev does not exist/not allocated." - echo " Check the messages log for the number of probed " - echo " devices." - echo - continue - fi - - check_dev_running $dev - if [ $? -eq 0 ]; then - echo "Error: Device $dev is already running" - echo -e " Run 'wanrouter stop $dev' first\n" - continue - fi - - #Since we changed the name of dev above, - #we must check if we are running ft1 device, - #output a correct message - if [ $ft1_or_wanpipe -gt 0 ]; then - echo "Starting up device: $dev, FT1 config mode" - echo "Starting up device: $dev, FT1 config mode" >> $WAN_LOG - else - echo "Starting up device: $dev" - echo "Starting up device: $dev" >> $WAN_LOG - fi - - router_config $WAN_CONF $dev -#NC: Jul 22 2003 -#Just because one card -#fails to load do not stop -#other cards from loading -# if [ $? -ne 0 ]; then -# #echo "Exiting rc = 3" -# cleanup 3 -# fi - done - - return 0 -} - -# ---------------------------------------------------------------------------- -# Unconfigure devices (all or single). -# ---------------------------------------------------------------------------- -unconfig_devices() -{ - local devices=$* - - #Stop all routers but check if device - #is running first - for dev in $devices; do - WAN_CONF=$WAN_CONF_DIR/$dev.conf - - #If we are starting ft1 device there are no - #interfaces. - if [ $ft1_or_wanpipe -gt 0 ]; then - echo "Shutting down device: $dev, FT1 config mode" - echo "Shutting down device: $dev, FT1 config mode" >> $WAN_LOG - else - echo "Shutting down device: $dev" - echo "Shutting down device: $dev" >> $WAN_LOG - fi - router_unconfig $WAN_CONF $dev - - done - - #Check if any devices are still running - # If YES: don't unload the modules, just printout - # the list of active devices - # If NO: unload modules - - check_and_print_still_running && cleanup 0 - - cd $WAN_HOME - echo -e "No devices running, Unloading Modules" - remove_cdev - unload_module - - for dev in $devices; do - WAN_CONF=$WAN_CONF_DIR/$dev.conf - - INTERFACES=`grep ".*=.*$dev" -i $WAN_CONF | cut -d' ' -f1 2> /dev/null` - for ifname in $INTERFACES; do - ifname=${ifname%%=*} - wanrouter_script stop $dev $ifname - done - wanrouter_script stop $dev - - done - - return 0 -} - -# ---------------------------------------------------------------------------- -# Configure wan interfaces (all or single). -# ---------------------------------------------------------------------------- -config_interfaces() -{ - local devices=$* - - for dev in $devices; do - - WAN_CONF=$WAN_CONF_DIR/$dev.conf - - check_file $WAN_CONF || cleanup 1 - - interf_config $dev $WAN_CONF - -#NC: Jul 22 2003 -#Just because one interface -#fails to load, do not stop all -#other interfaces. -# if [ $? -ne 0 ]; then -# cleanup 4 -# fi - done - - for dev in $devices; do - WAN_CONF=$WAN_CONF_DIR/$dev.conf - INTERFACES=`grep ".*=.*$dev" -i $WAN_CONF | cut -d' ' -f1 2> /dev/null` - for ifname in $INTERFACES; do - ifname=${ifname%%=*} - wanrouter_script start $dev $ifname - done - wanrouter_script start $dev - done - - return 0 -} - -# ---------------------------------------------------------------------------- -# unconfigure interface (all or single). -# ---------------------------------------------------------------------------- -unconfig_interfaces() -{ - local devices=$* - - #Stop all interfaces, but check whether - #device is running first - for dev in $devices; do - - if [ "$dev" = "" ]; then - continue; - fi - - WAN_CONF=$WAN_CONF_DIR/$dev.conf - - #Check that all configuration files exist - check_file $WAN_CONF || cleanup 1 - - check_exists $dev - if [ $? -eq 0 ]; then - check_dev_running $dev - if [ $? -eq 0 ]; then - WAN_CONF=$WAN_CONF_DIR/$dev.conf - interf_down $dev $WAN_CONF - fi - fi - done - - return 0 -} - - router_unconfig() { if [ $OSYSTEM != "Linux" ]; then @@ -935,7 +716,6 @@ router_unconfig() # Unload WAN drivers. } - #---------------------------------------------------------------------------- # Remove character device /dev/wanrouter #---------------------------------------------------------------------------- @@ -1128,9 +908,9 @@ check_config() { for dev in $WAN_DEVICES; do check_file "$WAN_CONF_DIR/$dev.conf" || { - echo -e "\n$SCRIPT: Error, $WAN_CONF_DIR/$dev.conf not found!\n"; - return 1; - } + echo -e "\n$SCRIPT: Error, $WAN_CONF_DIR/$dev.conf not found!\n"; + return 1; + } done return 0; } @@ -1188,6 +968,27 @@ print_active_devices() return $rc } +function check_module () { + + if [ $OSYSTEM = "Linux" ]; then + [ -d "$ROUTER_PROC" ] && { + return 0 + } + else + for i in $WAN_DRIVERS + do $MODULE_STAT | grep -q $i && { + return 0 + } + done + fi + # Driver is not loaded + if [ $OSYSTEM != "Linux" ]; then + rm -f $WAN_LOCK 2> /dev/null + fi + return 1; +} + + function check_exists () { local device=$1 @@ -1422,22 +1223,16 @@ result () { check_osystem () { if [ $OSYSTEM = "Linux" ]; then + get_distrib + if [ $? -eq 1 ]; then - if [ -d $WAN_LOCK_DIR ]; then - return 0 - else - echo - echo "Warning: WAN_LOCK_DIR = $WAN_LOCK_DIR does not exist!" - echo "Please update the WAN_LOCK_DIR in /etc/wanpipe/wanrouter.rc" - echo - fi - - if [ -d /var/lock/subsys ]; then - WAN_LOCK_DIR=/var/lock/subsys - elif [ -d /var/lock ]; then - WAN_LOCK_DIR=/var/lock - else - WAN_LOCK_DIR=$WAN_CONF_DIR + if [ $WAN_LOCK != "/var/lock/subsys/wanrouter" ]; then + echo -e "\nREDHAT Detected changing WAN_LOCK location" + echo -e "to /var/lock/subsys/wanrouter" + echo -e "To avoid this message change the WAN_LOCK directory" + echo -e "in $WAN_CONF_DIR/wanrouter.rc to /var/lock/subsys/wanrouter\n" + WAN_LOCK=/var/lock/subsys/wanrouter + fi fi fi @@ -1769,8 +1564,8 @@ function wanrouter_debug () local err=0 echo - if [ ! -d ${WAN_HOME} ]; then - echo "Error: ${WAN_HOME} not found" + if [ ! -d /etc/wanpipe ]; then + echo "Error: /etc/wanpipe not found" echo "Reason: Wanpipe not installed properly" echo "Solution: Re-install wanpipe" return @@ -1792,7 +1587,7 @@ function wanrouter_debug () unload_module fi - if [ ! -f ${WAN_HOME}/wanpipe1.conf ]; then + if [ ! -f /etc/wanpipe/wanpipe1.conf ]; then echo "Warning: wanpipe1.conf configuration file not found" echo "Reason: did not run /usr/sbin/wancfg to create it" echo "Solution: run /usr/sbin/wancfg :)" @@ -1888,34 +1683,6 @@ function init_meta_conf () WAN_DEVICES= } -function read_meta_conf () -{ - - if [ $OSYSTEM = "Linux" ]; then - WAN_HOME=/etc/wanpipe - elif [ $OSYSTEM = "FreeBSD" -o $OSYSTEM = "OpenBSD" ]; then - WAN_HOME=/usr/local/etc/wanpipe - wanrouter_rc_file="" - if [ -r /etc/rc.conf ]; then - . /etc/rc.conf - fi - if [ -n "$wanrouter_rc_file" ]; then - WAN_HOME=${wanrouter_rc_file%/*} - fi - fi - WAN_CONF_DIR=$WAN_HOME - META_CONF=$WAN_HOME/wanrouter.rc - WAN_INTR_DIR=$WAN_HOME/interfaces - - # Read meta-configuration file. - if [ -f $META_CONF ] - then . $META_CONF - else - return 1 - fi - return 0 -} - function meta_conf_compatiblity () { WAN_CONF_DIR=$WANPIPE_CONF_DIR @@ -1987,42 +1754,36 @@ function generate_adsl_list() done } -# FIXME: Add code for BSD function wan_force_unload_modules() { - if [ $OSYSTEM = "Linux" ]; then - if [ -e "$ROUTER_PROC/status" ]; then - wp_list=`cat $ROUTER_PROC/status | cut -d' ' -f1 | grep wanpipe | sort -r` - if [ -z $list ]; then - mod_list=`cat /proc/modules | grep wan | cut -d ' ' -f1 | xargs` - for tmp_mod in $mod_list - do - eval "rmmod $tmp_mod >> /dev/null 2>> /dev/null" - done - fi + if [ -e "$ROUTER_PROC/status" ]; then + wp_list=`cat $ROUTER_PROC/status | cut -d' ' -f1 | grep wanpipe | sort -r` + if [ -z $list ]; then + mod_list=`cat /proc/modules | grep wan | cut -d ' ' -f1 | xargs` + for tmp_mod in $mod_list + do + eval "rmmod $tmp_mod >> /dev/null 2>> /dev/null" + done fi fi } -# FIXME: Add code for BSD function stop_running_wanpipes () { - if [ $OSYSTEM = "Linux" ]; then - if [ -e "$ROUTER_PROC/status" ]; then - wp_list=`cat $ROUTER_PROC/status | cut -d' ' -f1 | grep wanpipe | sort -r` - - for list in $wp_list - do - list=${list// /}; - if [ ! -z $list ]; then - eval "rm -f $WAN_PROG_LOCK 2> /dev/null > /dev/null" - wanrouter stop $list - fi - done - - wan_force_unload_modules - fi + if [ -e "$ROUTER_PROC/status" ]; then + wp_list=`cat $ROUTER_PROC/status | cut -d' ' -f1 | grep wanpipe | sort -r` + + for list in $wp_list + do + list=${list// /}; + if [ ! -z $list ]; then + eval "rm -f $WAN_PROG_LOCK 2> /dev/null > /dev/null" + wanrouter stop $list + fi + done + + wan_force_unload_modules fi } @@ -2100,6 +1861,10 @@ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib OSYSTEM=`uname -s` RELEASE=`uname -r` PROD=wanpipe +WAN_HOME=/etc/wanpipe +WAN_CONF_DIR=$WAN_HOME +META_CONF=$WAN_HOME/wanrouter.rc +WAN_INTR_DIR=$WAN_HOME/interfaces SCRIPT=wanrouter REDHAT=/usr/src/redhat ROUTER_PROC=/proc/net/wanrouter @@ -2118,7 +1883,7 @@ WANPIPE_IS_RUNNING=/var/run/wanpipe_is_running RUGGEDCOM=No if [ $OSYSTEM = "Linux" ]; then - ROUTER_VERSION=2.3.4-16 + ROUTER_VERSION=3.1.0 IFCONFIG_LIST=ifconfig MODULE_STAT=lsmod WAN_DRIVERS="wanpipe" @@ -2277,11 +2042,14 @@ FT1_CONF=ft1.conf trap '' 2 init_meta_conf -read_meta_conf -if [ $? -ne 0 ]; then + +# Read meta-configuration file. +if [ -f $META_CONF ] +then . $META_CONF +else echo "$SCRIPT: Error: $META_CONF not found!" exit 1; -fi +fi if [ "$WANPIPE_CONF_DIR" != "" -a "$WAN_CONF_DIR" = "" ] || [ "$WAN_ADSL_LIST" = "" ]; then meta_conf_compatiblity @@ -2305,10 +2073,6 @@ touch $WAN_PROG_LOCK check_osystem -#Check osystem confirms the WAN_LOCK directory -WAN_LOCK=$WAN_LOCK_DIR/wanrouter - - if [ ! -f $WAN_ADSL_LIST ]; then generate_adsl_list fi @@ -2367,12 +2131,12 @@ if [ $OSYSTEM = "Linux" ]; then fi fi +WAN_LOCK=$WAN_LOCK_DIR/wanrouter echo # If modules doesn't loaded remove all lock file from WAN_LOCK_DIR. check_module -ft1_or_wanpipe=0 # See how we were called. case "$1" in start) @@ -2387,9 +2151,49 @@ case "$1" in cleanup 2 fi - config_devices $WAN_DEVICES + create_cdev - config_interfaces $WAN_DEVICES + for dev in $WAN_DEVICES; do + if [ $OSYSTEM = "Linux" ] && [ ! -e "$ROUTER_PROC/$dev" ]; then + echo -e "Error: Device $dev is not supported by kernel\n" + continue + fi + WAN_CONF=$WAN_CONF_DIR/$dev.conf + echo "Starting up device: $dev" + echo "Starting up device: $dev" >> $WAN_LOG + router_config $WAN_CONF $dev +#NC: Jul 22 2003 +#Just because one card +#fails to load do not stop +#other cards from loading +# if [ $? -ne 0 ]; then +# #echo "Exiting rc = 3" +# cleanup 3 +# fi + done + + for dev in $WAN_DEVICES; do + WAN_CONF=$WAN_CONF_DIR/$dev.conf + interf_config $dev $WAN_CONF + +#NC: Jul 22 2003 +#Just because one interface +#fails to load, do not stop all +#other interfaces. +# if [ $? -ne 0 ]; then +# cleanup 4 +# fi + done + + for dev in $WAN_DEVICES; do + WAN_CONF=$WAN_CONF_DIR/$dev.conf + INTERFACES=`grep ".*=.*$dev" -i $WAN_CONF | cut -d' ' -f1 2> /dev/null` + for ifname in $INTERFACES; do + ifname=${ifname%%=*} + wanrouter_script start $dev $ifname + done + wanrouter_script start $dev + done wanrouter_script start @@ -2411,9 +2215,14 @@ case "$1" in check_file $WAN_CONF || cleanup 1 - load_module + check_module if [ $? -ne 0 ]; then - cleanup 2 + + load_module + if [ $? -ne 0 ]; then + cleanup 2 + fi + create_cdev fi #If we are starting FT1 driver, we have to check @@ -2423,19 +2232,53 @@ case "$1" in dev="wanpipe$ft1_or_wanpipe" fi - config_devices $dev + check_exists $dev + if [ $? -ne 0 ]; then + echo "Error: Device $dev does not exist/not allocated." + echo " Check the messages log for the number of probed " + echo " devices." + echo + cleanup 1 + fi + + check_dev_running $dev + if [ $? -eq 0 ]; then + echo "Error: Device $dev is already running" + echo -e " Run 'wanrouter stop $dev' first\n" + cleanup 1 + fi + + #Since we changed the name of dev above, + #we must check if we are running ft1 device, + #output a correct message + if [ $ft1_or_wanpipe -gt 0 ]; then + echo "Starting up device: $dev, FT1 config mode" + echo "Starting up device: $dev, FT1 config mode" >> $WAN_LOG + else + echo "Starting up device: $dev" + echo "Starting up device: $dev" >> $WAN_LOG + fi + router_config $WAN_CONF $dev if [ $? -ne 0 ]; then cleanup 3 fi - + #When loading ft1 device there are not interfaces if [ $ft1_or_wanpipe -eq 0 ]; then - config_interfaces $dev + interf_config $dev $WAN_CONF if [ $? -ne 0 ]; then cleanup 4 fi fi + + INTERFACES=`grep ".*=.*$dev" -i $WAN_CONF | cut -d' ' -f1 2> /dev/null` + for ifname in $INTERFACES; do + ifname=${ifname%%=*} + wanrouter_script start $dev $ifname + done + wanrouter_script start $dev + else #ROUTER START WANPIPE INTERFACE @@ -2458,9 +2301,9 @@ case "$1" in check_file $WAN_CONF || cleanup 1 - load_module + check_module if [ $? -ne 0 ]; then - cleanup 2 + load_module fi eval "$IFCONFIG_LIST | grep -w $if_name > /dev/null 2> /dev/null" @@ -2525,9 +2368,52 @@ case "$1" in WAN_DEVICES=$tmp_dev_list fi - unconfig_interfaces $WAN_DEVICES + #Stop all interfaces, but check whether + #device is running first + for dev in $WAN_DEVICES; do - unconfig_devices $WAN_DEVICES + if [ "$dev" = "" ]; then + continue; + fi + + check_exists $dev + if [ $? -eq 0 ]; then + check_dev_running $dev + if [ $? -eq 0 ]; then + WAN_CONF=$WAN_CONF_DIR/$dev.conf + interf_down $dev $WAN_CONF + fi + fi + done + + #Stop all routers but check if device + #is running first + for dev in $WAN_DEVICES; do + WAN_CONF=$WAN_CONF_DIR/$dev.conf + echo "Shutting down device: $dev" + echo "Shutting down device: $dev" >> $WAN_LOG + router_unconfig $WAN_CONF $dev + done + + #Check if any devices are still running + # If YES: don't unload the modules, just printout + # the list of active devices + # If NO: unload modules + check_and_print_still_running && cleanup 0 + + echo -e "No devices running, Unloading Modules" + remove_cdev + unload_module + + for dev in $WAN_DEVICES; do + WAN_CONF=$WAN_CONF_DIR/$dev.conf + INTERFACES=`grep ".*=.*$dev" -i $WAN_CONF | cut -d' ' -f1 2> /dev/null` + for ifname in $INTERFACES; do + ifname=${ifname%%=*} + wanrouter_script stop $dev $ifname + done + wanrouter_script stop $dev + done wanrouter_script stop @@ -2546,6 +2432,11 @@ case "$1" in dev=$($GET_RC) rm -f $RC + WAN_CONF=$WAN_CONF_DIR/$dev.conf + + #Check that all configuration files exist + check_file $WAN_CONF || cleanup 1 + #Check that modules are up and running check_module if [ $? -ne 0 ]; then @@ -2561,12 +2452,39 @@ case "$1" in dev="wanpipe$ft1_or_wanpipe" fi - if [ $ft1_or_wanpipe -eq 0 ]; then - unconfig_interfaces $dev + #If we are starting ft1 device there are no + #interfaces. + if [ $ft1_or_wanpipe -gt 0 ]; then + echo "Shutting down device: $dev, FT1 config mode" + echo "Shutting down device: $dev, FT1 config mode" >> $WAN_LOG + else + interf_down $dev $WAN_CONF + echo "Shutting down device: $dev" + echo "Shutting down device: $dev" >> $WAN_LOG fi + router_unconfig $WAN_CONF $dev - unconfig_devices $dev + #Check if any devices are still running + # If YES: don't unload the modules, just printout + # the list of active devices + # If NO: unload modules + + check_and_print_still_running && cleanup 0 + + cd $WAN_HOME + echo -e "No devices running, Unloading Modules" + remove_cdev + unload_module + + INTERFACES=`grep ".*=.*$dev" -i $WAN_CONF | cut -d' ' -f1 2> /dev/null` + for ifname in $INTERFACES; do + ifname=${ifname%%=*} + wanrouter_script stop $dev $ifname + done + + wanrouter_script stop $dev + [ -f $WAN_CONF_DIR/$FT1_CONF ] && rm -f $WAN_CONF_DIR/$FT1_CONF else @@ -2615,121 +2533,6 @@ case "$1" in fi ;; - start_dev) - - if [ -z $2 ]; then - # WANROUTER START_DEV - - check_config || cleanup 1 - - load_module - if [ $? -ne 0 ]; then - cleanup 2 - fi - - config_devices $WAN_DEVICES - - elif [ -z $3 ]; then - #ROUTER START_DEV WANPIPE - - dev=$2 - - load_module - if [ $? -ne 0 ]; then - cleanup 2 - fi - - config_devices $dev - if [ $? -ne 0 ]; then - cleanup 3 - fi - fi - ;; - - stop_dev) - - if [ -z $2 ]; then - #WANROUTER STOP_DEV - - check_module - if [ $? -ne 0 ]; then - unload_module - remove_cdev - echo -e "Router is already stopped !\n" - cleanup 1 - fi - - #Check that all wanpipe#.conf file defined in - # WAN_DEVICES exist - check_config || { - unload_module - remove_cdev - echo -e "No devices running, Unloading Modules" - cleanup 1 - } - - if [ "$WAN_DEVICES_REV_STOP_ORDER" = "YES" ]; then - tmp_dev_list= - for dev in $WAN_DEVICES; do - tmp_dev_list="$dev ""$tmp_dev_list" - done - WAN_DEVICES=$tmp_dev_list - fi - - unconfig_devices $WAN_DEVICES - - wanrouter_script stop - - elif [ -z $3 ]; then - #WANROUTER STOP_DEV WANPIPE - - dev=$2 - - if [ "$dev" = "all" ]; then - stop_running_wanpipes - cleanup 0 - fi - - #Check that modules are up and running - check_module - if [ $? -ne 0 ]; then - unload_module - echo -e "Router is already stopped !\n"; - cleanup 1; - fi - - unconfig_devices $dev - fi - ;; - - start_ip) - - if [ -z $2 ]; then - # WANROUTER START_IP - check_config || cleanup 1 - - config_interfaces $WAN_DEVICES - - wanrouter_script start - - elif [ -z $3 ]; then - #ROUTER START_IP WANPIPE - config_interfaces $2 - fi - ;; - - stop_ip) - - if [ -z $2 ]; then - #WANROUTER STOP_IP - unconfig_interfaces $WAN_DEVICES - - elif [ -z $3 ]; then - #WANROUTER STOP_IP WANPIPE - unconfig_interfaces $2 - fi - ;; - script) #Debug Statement, used to test the script option @@ -2773,31 +2576,6 @@ case "$1" in fi cleanup 0; ;; - - restart_dev) - eval "rm -f $WAN_PROG_LOCK 2> /dev/null > /dev/null" - if [ "$2" = "" ]; then - $0 stop_dev; - $0 start_dev; - elif [ "$3" = "" ]; then - $0 stop_dev $2; - $0 start_dev $2; - fi - cleanup 0; - ;; - - restart_ip) - eval "rm -f $WAN_PROG_LOCK 2> /dev/null > /dev/null" - if [ "$2" = "" ]; then - $0 stop_ip; - $0 start_ip; - elif [ "$3" = "" ]; then - $0 stop_ip $2; - $0 start_ip $2; - fi - cleanup 0; - ;; - modules) if [ $OSYSTEM = "Linux" ]; then @@ -2840,12 +2618,14 @@ case "$1" in if [ $OSYSTEM = "Linux" ]; then cat /proc/net/wanrouter/hwprobe_verbose else + create_cdev wanconfig hwprobe verbose fi else if [ $OSYSTEM = "Linux" ]; then cat /proc/net/wanrouter/hwprobe else + create_cdev wanconfig hwprobe fi fi @@ -2928,22 +2708,21 @@ case "$1" in echo -e " wanrouter start : Starts all devices specified in" echo -e " $WAN_CONF_DIR/wanrouter.rc WAN_DEVICES\n" echo -e " wanrouter stop : Stops all devices specified in" - echo -e " $WAN_CONF_DIR/wanrouter.rc WAN_DEVICES\n" + echo -e " $WAN_CONF_DIR/wanrouter.rc WAN_DEVICES\n" + echo -e " wanrouter start wanpipe# : Start a single device\n" echo -e " wanrouter stop wanpipe# : Stops a single device" echo -e " (# can range from 1 to 16)\n" - if [ $OSYSTEM = "Linux" ]; then - echo -e " wanrouter start wanpipe# if_name : Start a single interface on device\n" - echo -e " wanrouter stop wanpipe# if_name : Stops a single interface on device" - echo -e " (# can range from 1 to 16)\n" - - fi echo -e " wanrouter restart : Restart all devices specified in" echo -e " $WAN_CONF_DIR/wanrouter.rc WAN_DEVICES\n" echo -e " wanrouter restart wanpipe# : Restart a single device" echo -e " (# can range from 1 to 16)\n" echo if [ $OSYSTEM = "Linux" ]; then + echo -e " wanrouter start wanpipe# if_name : Start a single interface on device\n" + echo -e " wanrouter stop wanpipe# if_name : Stops a single interface on device" + echo -e " (# can range from 1 to 16)\n" + echo -e " wanrouter restart wanpipe# if_name : Restart a single interface on device" echo -e " (# can range from 1 to 16)\n" echo diff --git a/ssmg/sangoma_mgd.trunk/.svn/README.txt b/ssmg/sangoma_mgd.trunk/.svn/README.txt new file mode 100644 index 0000000..271a8ce --- /dev/null +++ b/ssmg/sangoma_mgd.trunk/.svn/README.txt @@ -0,0 +1,2 @@ +This is a Subversion working copy administrative directory. +Visit http://subversion.tigris.org/ for more information. diff --git a/ssmg/sangoma_mgd.trunk/.svn/empty-file b/ssmg/sangoma_mgd.trunk/.svn/empty-file new file mode 100644 index 0000000..e69de29 diff --git a/ssmg/sangoma_mgd.trunk/.svn/entries b/ssmg/sangoma_mgd.trunk/.svn/entries index 6bc84e1..90bb01b 100644 --- a/ssmg/sangoma_mgd.trunk/.svn/entries +++ b/ssmg/sangoma_mgd.trunk/.svn/entries @@ -1,271 +1,165 @@ -8 - -dir -229 -svn://sangoma.freeswitch.org/sangoma_mgd/trunk -svn://sangoma.freeswitch.org - - - -2007-07-20T19:21:42.003810Z -229 -ncorbic - - -svn:special svn:externals svn:needs-lock - - - - - - - - - - - -2028fedf-720c-0410-83b8-d54a3e729fb0 - -sigboost.h -file - - - - -2007-07-17T15:23:01.000000Z -f0d1e64dfdd9aca476aeafd3b570c083 -2007-07-17T15:22:17.602452Z -227 -ncorbic - -install.sh -file - - - - -2007-06-14T04:18:01.000000Z -eebdfdf347cb99e7d38591488df900d7 -2007-06-14T04:19:34.594824Z -212 -ncorbic -has-props - -switch_buffer.h -file - - - - -2007-06-21T22:16:27.000000Z -f4832443a621cbb88e92535898d11b83 -2007-06-21T22:11:59.891196Z -216 -ncorbic - -sangoma_mgd.conf.sample -file - - - - -2007-04-13T19:46:26.000000Z -3332791842dafbc726d1b03b9f769db4 -2007-04-13T18:50:03.087811Z -178 -ncorbic - -sound.raw -file - - - - -2006-10-19T20:34:08.000000Z -da36acc78b83d5047481df0cca63d969 -2006-10-19T20:33:28.674794Z -106 -ncorbic -has-props - -chan_woomera.c -file - - - - -2007-07-17T15:23:01.000000Z -84567dd982c2bdb74af41df805eb268b -2007-07-17T15:19:15.442273Z -226 -ncorbic - -callgettest.sh -file - - - - -2006-07-28T16:14:58.000000Z -2403f191bdc1959c4cfd186b5030b9b1 -2006-10-10T23:06:24.245444Z -98 -ncorbic -has-props - -conf -dir - -Changelog -file - - - - -2007-06-14T04:10:02.000000Z -e882d77b92b36e5878240af27f94d36f -2007-06-14T04:08:55.484670Z -208 -ncorbic - -scripts -dir - -re-sync.sh -file - - - - -2007-07-17T20:46:57.000000Z -d284fd9aab77a95945af9695cb6fd4ee -2007-07-20T19:21:42.003810Z -229 -ncorbic -has-props - -call_signal.c -file - - - - -2007-06-21T22:16:27.000000Z -ce7833d67e4f74118a8fb4c7beecddf2 -2007-06-21T22:12:30.552870Z -218 -ncorbic - -clog.sh -file - - - - -2006-08-17T15:46:03.000000Z -a94061bf84e9f89de0842eb1249d0975 -2006-07-28T16:10:34.424709Z -91 -ncorbic -has-props - -woomera.conf -file - - - - -2006-12-01T20:19:02.000000Z -aa9bfdfa7b10bb26911cf3b6ae9f604d -2006-12-01T20:20:54.543939Z -152 -ncorbic - -sangoma_mgd.c -file - - - - -2007-07-16T22:42:26.000000Z -c166673b9c95cda1e0532604823bff15 -2007-07-13T17:00:55.307391Z -225 -ncorbic - -call_signal.h -file - - - - -2007-06-14T04:10:02.000000Z -1a8b734edbabbe1e04c0086460cf1565 -2007-06-14T04:08:55.484670Z -208 -ncorbic - -sangoma_mgd.h -file - - - - -2007-06-21T22:16:27.000000Z -ee7ac4b94dcda9781e242afcf8119488 -2007-06-21T22:12:18.622974Z -217 -ncorbic - -g711.h -file - - - - -2006-11-14T00:18:16.000000Z -0f725f95ced42af15dcaef21f3a1722b -2006-11-15T20:02:00.435766Z -143 -ncorbic - -lib -dir - -smgss7_ctrl -file - - - - -2006-10-19T20:27:44.000000Z -967b811ad3552a554094694654af68f4 -2006-10-19T20:31:08.983924Z -104 -ncorbic -has-props - -switch_buffer.c -file - - - - -2007-06-21T22:16:27.000000Z -628f33fbdf3fb2d3c2861684146bbf5c -2007-06-21T22:11:50.257308Z -215 -ncorbic - -Makefile -file - - - - -2007-07-17T15:23:01.000000Z -7c7960df26248041751d427e62d7ba25 -2007-07-17T15:22:31.637247Z -228 -ncorbic - + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ssmg/sangoma_mgd.trunk/.svn/format b/ssmg/sangoma_mgd.trunk/.svn/format index 45a4fb7..b8626c4 100644 --- a/ssmg/sangoma_mgd.trunk/.svn/format +++ b/ssmg/sangoma_mgd.trunk/.svn/format @@ -1 +1 @@ -8 +4 diff --git a/ssmg/sangoma_mgd.trunk/.svn/prop-base/Changelog.svn-base b/ssmg/sangoma_mgd.trunk/.svn/prop-base/Changelog.svn-base new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/ssmg/sangoma_mgd.trunk/.svn/prop-base/Changelog.svn-base @@ -0,0 +1 @@ +END diff --git a/ssmg/sangoma_mgd.trunk/.svn/prop-base/Makefile.svn-base b/ssmg/sangoma_mgd.trunk/.svn/prop-base/Makefile.svn-base new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/ssmg/sangoma_mgd.trunk/.svn/prop-base/Makefile.svn-base @@ -0,0 +1 @@ +END diff --git a/ssmg/sangoma_mgd.trunk/.svn/prop-base/call_signal.c.svn-base b/ssmg/sangoma_mgd.trunk/.svn/prop-base/call_signal.c.svn-base new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/ssmg/sangoma_mgd.trunk/.svn/prop-base/call_signal.c.svn-base @@ -0,0 +1 @@ +END diff --git a/ssmg/sangoma_mgd.trunk/.svn/prop-base/call_signal.h.svn-base b/ssmg/sangoma_mgd.trunk/.svn/prop-base/call_signal.h.svn-base new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/ssmg/sangoma_mgd.trunk/.svn/prop-base/call_signal.h.svn-base @@ -0,0 +1 @@ +END diff --git a/ssmg/sangoma_mgd.trunk/.svn/prop-base/chan_woomera.c.svn-base b/ssmg/sangoma_mgd.trunk/.svn/prop-base/chan_woomera.c.svn-base new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/ssmg/sangoma_mgd.trunk/.svn/prop-base/chan_woomera.c.svn-base @@ -0,0 +1 @@ +END diff --git a/ssmg/sangoma_mgd.trunk/.svn/prop-base/sangoma_mgd.c.svn-base b/ssmg/sangoma_mgd.trunk/.svn/prop-base/sangoma_mgd.c.svn-base new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/ssmg/sangoma_mgd.trunk/.svn/prop-base/sangoma_mgd.c.svn-base @@ -0,0 +1 @@ +END diff --git a/ssmg/sangoma_mgd.trunk/.svn/prop-base/sangoma_mgd.conf.sample.svn-base b/ssmg/sangoma_mgd.trunk/.svn/prop-base/sangoma_mgd.conf.sample.svn-base new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/ssmg/sangoma_mgd.trunk/.svn/prop-base/sangoma_mgd.conf.sample.svn-base @@ -0,0 +1 @@ +END diff --git a/ssmg/sangoma_mgd.trunk/.svn/prop-base/sigboost.h.svn-base b/ssmg/sangoma_mgd.trunk/.svn/prop-base/sigboost.h.svn-base new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/ssmg/sangoma_mgd.trunk/.svn/prop-base/sigboost.h.svn-base @@ -0,0 +1 @@ +END diff --git a/ssmg/sangoma_mgd.trunk/.svn/prop-base/woomera.conf.svn-base b/ssmg/sangoma_mgd.trunk/.svn/prop-base/woomera.conf.svn-base new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/ssmg/sangoma_mgd.trunk/.svn/prop-base/woomera.conf.svn-base @@ -0,0 +1 @@ +END diff --git a/ssmg/sangoma_mgd.trunk/.svn/props/Changelog.svn-work b/ssmg/sangoma_mgd.trunk/.svn/props/Changelog.svn-work new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/ssmg/sangoma_mgd.trunk/.svn/props/Changelog.svn-work @@ -0,0 +1 @@ +END diff --git a/ssmg/sangoma_mgd.trunk/.svn/props/Makefile.svn-work b/ssmg/sangoma_mgd.trunk/.svn/props/Makefile.svn-work new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/ssmg/sangoma_mgd.trunk/.svn/props/Makefile.svn-work @@ -0,0 +1 @@ +END diff --git a/ssmg/sangoma_mgd.trunk/.svn/props/call_signal.c.svn-work b/ssmg/sangoma_mgd.trunk/.svn/props/call_signal.c.svn-work new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/ssmg/sangoma_mgd.trunk/.svn/props/call_signal.c.svn-work @@ -0,0 +1 @@ +END diff --git a/ssmg/sangoma_mgd.trunk/.svn/props/call_signal.h.svn-work b/ssmg/sangoma_mgd.trunk/.svn/props/call_signal.h.svn-work new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/ssmg/sangoma_mgd.trunk/.svn/props/call_signal.h.svn-work @@ -0,0 +1 @@ +END diff --git a/ssmg/sangoma_mgd.trunk/lib/libteletone/.svn/prop-base/config.status.svn-base b/ssmg/sangoma_mgd.trunk/.svn/props/callgettest.sh.svn-work similarity index 100% rename from ssmg/sangoma_mgd.trunk/lib/libteletone/.svn/prop-base/config.status.svn-base rename to ssmg/sangoma_mgd.trunk/.svn/props/callgettest.sh.svn-work diff --git a/ssmg/sangoma_mgd.trunk/.svn/props/chan_woomera.c.svn-work b/ssmg/sangoma_mgd.trunk/.svn/props/chan_woomera.c.svn-work new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/ssmg/sangoma_mgd.trunk/.svn/props/chan_woomera.c.svn-work @@ -0,0 +1 @@ +END diff --git a/ssmg/sangoma_mgd.trunk/lib/libteletone/.svn/prop-base/libtool.svn-base b/ssmg/sangoma_mgd.trunk/.svn/props/clog.sh.svn-work similarity index 100% rename from ssmg/sangoma_mgd.trunk/lib/libteletone/.svn/prop-base/libtool.svn-base rename to ssmg/sangoma_mgd.trunk/.svn/props/clog.sh.svn-work diff --git a/ssmg/sangoma_mgd.trunk/.svn/props/install.sh.svn-work b/ssmg/sangoma_mgd.trunk/.svn/props/install.sh.svn-work new file mode 100644 index 0000000..869ac71 --- /dev/null +++ b/ssmg/sangoma_mgd.trunk/.svn/props/install.sh.svn-work @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/ssmg/sangoma_mgd.trunk/.svn/props/re-sync.sh.svn-work b/ssmg/sangoma_mgd.trunk/.svn/props/re-sync.sh.svn-work new file mode 100644 index 0000000..869ac71 --- /dev/null +++ b/ssmg/sangoma_mgd.trunk/.svn/props/re-sync.sh.svn-work @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/ssmg/sangoma_mgd.trunk/.svn/props/sangoma_mgd.c.svn-work b/ssmg/sangoma_mgd.trunk/.svn/props/sangoma_mgd.c.svn-work new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/ssmg/sangoma_mgd.trunk/.svn/props/sangoma_mgd.c.svn-work @@ -0,0 +1 @@ +END diff --git a/ssmg/sangoma_mgd.trunk/.svn/props/sangoma_mgd.conf.sample.svn-work b/ssmg/sangoma_mgd.trunk/.svn/props/sangoma_mgd.conf.sample.svn-work new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/ssmg/sangoma_mgd.trunk/.svn/props/sangoma_mgd.conf.sample.svn-work @@ -0,0 +1 @@ +END diff --git a/ssmg/sangoma_mgd.trunk/.svn/props/sigboost.h.svn-work b/ssmg/sangoma_mgd.trunk/.svn/props/sigboost.h.svn-work new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/ssmg/sangoma_mgd.trunk/.svn/props/sigboost.h.svn-work @@ -0,0 +1 @@ +END diff --git a/ssmg/sangoma_mgd.trunk/.svn/props/smgss7_ctrl.svn-work b/ssmg/sangoma_mgd.trunk/.svn/props/smgss7_ctrl.svn-work new file mode 100644 index 0000000..869ac71 --- /dev/null +++ b/ssmg/sangoma_mgd.trunk/.svn/props/smgss7_ctrl.svn-work @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/ssmg/sangoma_mgd.trunk/lib/libteletone/.libs/.svn/prop-base/libteletone.so.0.0.0.svn-base b/ssmg/sangoma_mgd.trunk/.svn/props/sound.raw.svn-work similarity index 67% rename from ssmg/sangoma_mgd.trunk/lib/libteletone/.libs/.svn/prop-base/libteletone.so.0.0.0.svn-base rename to ssmg/sangoma_mgd.trunk/.svn/props/sound.raw.svn-work index dbc918b..5e9587e 100644 --- a/ssmg/sangoma_mgd.trunk/lib/libteletone/.libs/.svn/prop-base/libteletone.so.0.0.0.svn-base +++ b/ssmg/sangoma_mgd.trunk/.svn/props/sound.raw.svn-work @@ -1,7 +1,3 @@ -K 14 -svn:executable -V 1 -* K 13 svn:mime-type V 24 diff --git a/ssmg/sangoma_mgd.trunk/.svn/props/woomera.conf.svn-work b/ssmg/sangoma_mgd.trunk/.svn/props/woomera.conf.svn-work new file mode 100644 index 0000000..dce2c1d --- /dev/null +++ b/ssmg/sangoma_mgd.trunk/.svn/props/woomera.conf.svn-work @@ -0,0 +1 @@ +END diff --git a/ssmg/sangoma_mgd.trunk/.svn/text-base/Changelog.svn-base b/ssmg/sangoma_mgd.trunk/.svn/text-base/Changelog.svn-base index 385d189..5868682 100644 --- a/ssmg/sangoma_mgd.trunk/.svn/text-base/Changelog.svn-base +++ b/ssmg/sangoma_mgd.trunk/.svn/text-base/Changelog.svn-base @@ -1,41 +1,3 @@ -sangoma_mgd.c -====================================== -Jun 13 2007 - -v1.13 Nenad Corbic - Woomera OPAL Dialect - Added Congestion control - Added SCTP - Added priority ISUP queue - Fixed presentation - -v1.12 Nenad Corbic - Fixed CCR - Removed socket shutdown on end call. - Let Media thread shutodwn sockets. - -v1.11 Nenad Corbic - Fixed Remote asterisk/woomera connection - Increased socket timeouts - - -chan_woomera.c -====================================== -Jun 13 2007 - -v1.11 Nenad Corbic - Updated multiple profiles - Updated Dialect for OPAL Woomera - Added call logging/debugging - Fixed presentation - -v1.10 Nenad Corbic - Bug fix in incoming hangup - -v1.9 Nenad Corbic - Fixed remote asterisk/woomera - setup. - sangoma_mgd.c ====================================== diff --git a/ssmg/sangoma_mgd.trunk/.svn/text-base/Makefile.svn-base b/ssmg/sangoma_mgd.trunk/.svn/text-base/Makefile.svn-base index 6a74517..2a544ef 100644 --- a/ssmg/sangoma_mgd.trunk/.svn/text-base/Makefile.svn-base +++ b/ssmg/sangoma_mgd.trunk/.svn/text-base/Makefile.svn-base @@ -15,7 +15,7 @@ SMG_DTMF=YES CC = gcc -INCLUDES = -I/lib/modules/$(shell uname -r)/build/include -I. -I/usr/local/include -I../../patches/kdrivers/include -I/usr/include/wanpipe +INCLUDES = -I/lib/modules/$(shell uname -r)/build/include -I. -I/usr/local/include CFLAGS = -D__LINUX__ -D_REENTRANT -D_GNU_SOURCE -O6 -march=i686 CCFLAGS = -Wall -Wstrict-prototypes -Wmissing-prototypes -g LDFLAGS=-L. -L/usr/local/lib -lpthread -lsangoma -lm @@ -39,7 +39,7 @@ sangoma_mgd: sangoma_mgd.o call_signal.o switch_buffer.o sigboost.h rm -fr core* $(CC) $(CCFLAGS) $(INCLUDES) $(CFLAGS) -o sangoma_mgd sangoma_mgd.o switch_buffer.o call_signal.o $(LDFLAGS) -sangoma_mgd.o: sangoma_mgd.c sangoma_mgd.h sigboost.h +sangoma_mgd.o: sangoma_mgd.c sigboost.h $(CC) $(CCFLAGS) $(INCLUDES) $(CFLAGS) -c -o sangoma_mgd.o sangoma_mgd.c clean: diff --git a/ssmg/sangoma_mgd.trunk/.svn/text-base/call_signal.c.svn-base b/ssmg/sangoma_mgd.trunk/.svn/text-base/call_signal.c.svn-base index 57177c0..ccaca3a 100644 --- a/ssmg/sangoma_mgd.trunk/.svn/text-base/call_signal.c.svn-base +++ b/ssmg/sangoma_mgd.trunk/.svn/text-base/call_signal.c.svn-base @@ -4,8 +4,7 @@ * Author(s): Anthony Minessale II * Nenad Corbic * - * Copyright: (c) 2005 Nenad Corbic - * Anthony Minessale II + * Copyright: (c) 2005 Anthony Minessale II * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -20,6 +19,10 @@ extern void __log_printf(int level, FILE *fp, char *file, const char *func, int #define clog_printf(level, fp, fmt, ...) __log_printf(level, fp, __FILE__, __FUNCTION__, __LINE__, fmt, ##__VA_ARGS__) +extern unsigned int txseq; +extern unsigned int rxseq_reset; +extern unsigned int rxseq; + struct call_signal_map { uint32_t event_id; char *name; @@ -40,7 +43,7 @@ static struct call_signal_map call_signal_table[] = { {SIGBOOST_EVENT_REMOVE_CHECK_LOOP, "LOOP STOP"} }; -#define USE_SCTP 1 + static int create_udp_socket(call_signal_connection_t *mcon, char *local_ip, int local_port, char *ip, int port) { @@ -51,17 +54,7 @@ static int create_udp_socket(call_signal_connection_t *mcon, char *local_ip, int memset(&mcon->remote_hp, 0, sizeof(mcon->remote_hp)); memset(&mcon->local_hp, 0, sizeof(mcon->local_hp)); -#ifdef USE_SCTP - mcon->socket = socket(AF_INET, SOCK_SEQPACKET, IPPROTO_SCTP); -#else - mcon->socket = socket(AF_INET, SOCK_DGRAM, 0); -#endif - - clog_printf(3,mcon->log,"Creating L=%s:%d R=%s:%d\n", - local_ip,local_port,ip,port); - - if (mcon->socket >= 0) { - int flag=1; + if ((mcon->socket = socket(AF_INET, SOCK_DGRAM, 0))) { gethostbyname_r(ip, &mcon->remote_hp, buf, sizeof(buf), &result, &err); gethostbyname_r(local_ip, &mcon->local_hp, local_buf, sizeof(local_buf), &local_result, &err); if (result && local_result) { @@ -73,24 +66,9 @@ static int create_udp_socket(call_signal_connection_t *mcon, char *local_ip, int memcpy((char *) &mcon->local_addr.sin_addr.s_addr, mcon->local_hp.h_addr_list[0], mcon->local_hp.h_length); mcon->local_addr.sin_port = htons(local_port); -#ifdef USE_SCTP - setsockopt(mcon->socket, IPPROTO_SCTP, SCTP_NODELAY, - (char *)&flag, sizeof(int)); -#endif - - if ((rc = bind(mcon->socket, - (struct sockaddr *) &mcon->local_addr, - sizeof(mcon->local_addr))) < 0) { + if ((rc = bind(mcon->socket, (struct sockaddr *) &mcon->local_addr, sizeof(mcon->local_addr))) < 0) { close(mcon->socket); mcon->socket = -1; - } else { -#ifdef USE_SCTP - rc=listen(mcon->socket,100); - if (rc) { - close(mcon->socket); - mcon->socket = -1; - } -#endif } } } @@ -109,6 +87,8 @@ int call_signal_connection_close(call_signal_connection_t *mcon) int call_signal_connection_open(call_signal_connection_t *mcon, char *local_ip, int local_port, char *ip, int port) { + memset(mcon, 0, sizeof(*mcon)); + create_udp_socket(mcon, local_ip, local_port, ip, port); return mcon->socket; } @@ -124,30 +104,27 @@ call_signal_event_t *call_signal_connection_read(call_signal_connection_t *mcon, if (bytes == sizeof(mcon->event) || bytes == (sizeof(mcon->event)-sizeof(uint32_t))) { - if (mcon->rxseq_reset) { + if (rxseq_reset) { if (mcon->event.event_id == SIGBOOST_EVENT_SYSTEM_RESTART_ACK) { - clog_printf(0,mcon->log,"Rx sync ok\n"); - mcon->rxseq=mcon->event.fseqno; + rxseq++; return &mcon->event; } + errno=EAGAIN; clog_printf(0,mcon->log,"Waiting for rx sync...\n"); return NULL; } - - mcon->rxseq++; - if (mcon->rxseq != mcon->event.fseqno) { + if (rxseq != mcon->event.seqno) { clog_printf(0, mcon->log, "------------------------------------------\n"); clog_printf(0, mcon->log, "Critical Error: Invalid Sequence Number Expect=%i Rx=%i\n", - mcon->rxseq,mcon->event.fseqno); + rxseq,mcon->event.seqno); clog_printf(0, mcon->log, "------------------------------------------\n"); } - - mcon->txwindow = mcon->txseq - mcon->event.bseqno; + rxseq++; return &mcon->event; @@ -166,33 +143,6 @@ call_signal_event_t *call_signal_connection_read(call_signal_connection_t *mcon, return NULL; } -call_signal_event_t *call_signal_connection_readp(call_signal_connection_t *mcon, int iteration) -{ - unsigned int fromlen = sizeof(struct sockaddr_in); - int bytes = 0; - - bytes = recvfrom(mcon->socket, &mcon->event, sizeof(mcon->event), MSG_DONTWAIT, - (struct sockaddr *) &mcon->local_addr, &fromlen); - - if (bytes == sizeof(mcon->event) || - bytes == (sizeof(mcon->event)-sizeof(uint32_t))) { - return &mcon->event; - } else { - if (iteration == 0) { - clog_printf(0, mcon->log, - "------------------------------------------\n"); - clog_printf(0, mcon->log, - "Critical Error: PQ Invalid Event lenght from boost rxlen=%i evsz=%i\n", - bytes, sizeof(mcon->event)); - clog_printf(0, mcon->log, - "------------------------------------------\n"); - } - } - - return NULL; -} - - int call_signal_connection_write(call_signal_connection_t *mcon, call_signal_event_t *event) { int err; @@ -201,7 +151,7 @@ int call_signal_connection_write(call_signal_connection_t *mcon, call_signal_eve return -EINVAL; } - if (event->span < 0 || event->chan < 0 || event->span > 16 || event->chan > 31) { + if (event->span < 0 || event->chan < 0 || event->span > 16 || event->chan > 30) { clog_printf(0, mcon->log, "------------------------------------------\n"); clog_printf(0, mcon->log, @@ -214,8 +164,7 @@ int call_signal_connection_write(call_signal_connection_t *mcon, call_signal_eve gettimeofday(&event->tv,NULL); pthread_mutex_lock(&mcon->lock); - event->fseqno=mcon->txseq++; - event->bseqno=mcon->rxseq; + event->seqno=txseq++; err=sendto(mcon->socket, event, sizeof(call_signal_event_t), 0, (struct sockaddr *) &mcon->remote_addr, sizeof(mcon->remote_addr)); pthread_mutex_unlock(&mcon->lock); @@ -223,6 +172,7 @@ int call_signal_connection_write(call_signal_connection_t *mcon, call_signal_eve if (err != sizeof(call_signal_event_t)) { err = -1; } + #if 0 clog_printf(2, mcon->log, "TX EVENT\n"); @@ -239,7 +189,7 @@ int call_signal_connection_write(call_signal_connection_t *mcon, call_signal_eve clog_printf(2, mcon->log, " tInterface: [w%dg%d]\n",event->span+1,event->chan+1); clog_printf(2, mcon->log, " tEvent ID: [%d]\n",event->event_id); clog_printf(2, mcon->log, " tSetup ID: [%d]\n",event->call_setup_id); - clog_printf(2, mcon->log, " tSeq: [%d]\n",event->fseqno); + clog_printf(2, mcon->log, " tSeq: [%d]\n",event->seqno); clog_printf(2, mcon->log, "===================================\n"); #endif @@ -252,7 +202,7 @@ int call_signal_connection_write(call_signal_connection_t *mcon, call_signal_eve event->chan+1, event->release_cause, event->call_setup_id, - event->fseqno, + event->seqno, (event->called_number_digits_count ? (char *) event->called_number_digits : "N/A"), (event->calling_number_digits_count ? (char *) event->calling_number_digits : "N/A") ); @@ -287,7 +237,7 @@ int call_signal_connection_write(call_signal_connection_t *mcon, call_signal_eve event->chan+1, event->event_id, event->call_setup_id, - event->fseqno + event->seqno ); #endif diff --git a/ssmg/sangoma_mgd.trunk/.svn/text-base/call_signal.h.svn-base b/ssmg/sangoma_mgd.trunk/.svn/text-base/call_signal.h.svn-base index 648aafb..5382a26 100644 --- a/ssmg/sangoma_mgd.trunk/.svn/text-base/call_signal.h.svn-base +++ b/ssmg/sangoma_mgd.trunk/.svn/text-base/call_signal.h.svn-base @@ -4,8 +4,7 @@ * Author(s): Anthony Minessale II * Nenad Corbic * - * Copyright: (c) 05-07 Nenad Corbic - * Anthony Minessale II + * Copyright: (c) 2005 Anthony Minessale II * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -27,7 +26,6 @@ #include #include #include -#include #include #include #include @@ -58,14 +56,6 @@ typedef t_sigboost call_signal_event_t; typedef uint32_t call_signal_event_id_t; -typedef struct smg_ip_cfg -{ - char local_ip[25]; - int local_port; - char remote_ip[25]; - int remote_port; -}smg_ip_cfg_t; - struct call_signal_connection { int socket; struct sockaddr_in local_addr; @@ -76,11 +66,6 @@ struct call_signal_connection { unsigned int flags; pthread_mutex_t lock; FILE *log; - unsigned int txseq; - unsigned int rxseq; - unsigned int txwindow; - unsigned int rxseq_reset; - smg_ip_cfg_t cfg; }; typedef enum { @@ -89,17 +74,9 @@ typedef enum { typedef struct call_signal_connection call_signal_connection_t; -/* disable nagle's algorythm */ -static inline void sctp_no_nagle(int socket) -{ - int flag = 1; - setsockopt(socket, IPPROTO_SCTP, SCTP_NODELAY, (char *) &flag, sizeof(int)); -} - int call_signal_connection_close(call_signal_connection_t *mcon); int call_signal_connection_open(call_signal_connection_t *mcon, char *local_ip, int local_port, char *ip, int port); call_signal_event_t *call_signal_connection_read(call_signal_connection_t *mcon, int iteration); -call_signal_event_t *call_signal_connection_readp(call_signal_connection_t *mcon, int iteration); int call_signal_connection_write(call_signal_connection_t *mcon, call_signal_event_t *event); void call_signal_event_init(call_signal_event_t *event, call_signal_event_id_t event_id, int chan, int span); void call_signal_call_init(call_signal_event_t *event, char *calling, char *called, int setup_id); diff --git a/ssmg/sangoma_mgd.trunk/.svn/text-base/chan_woomera.c.svn-base b/ssmg/sangoma_mgd.trunk/.svn/text-base/chan_woomera.c.svn-base index 10f3f93..4351ec3 100644 --- a/ssmg/sangoma_mgd.trunk/.svn/text-base/chan_woomera.c.svn-base +++ b/ssmg/sangoma_mgd.trunk/.svn/text-base/chan_woomera.c.svn-base @@ -6,26 +6,12 @@ * Copyright (C) 05-07 Nenad Corbic * Anthony Minessale II * - * Nenad Corbic * Anthony Minessale II + * Nenad Corbic * * This program is free software, distributed under the terms of * the GNU General Public License * ============================================= - * v1.13 Nenad Corbic - * Added CallWeaver Support - * |->(thanks to Andre Schwaller) - * Updated codec negotiation for - * mutliple profiles. - * - * v1.12 Nenad Corbic - * Updated DTMF locking - * - * v1.11 Nenad Corbic - * Updated multiple profiles - * Updated Dialect for OPAL Woomera - * Added call logging/debugging - * * v1.10 Nenad Corbic * Bug fix in incoming hangup * @@ -56,10 +42,6 @@ * from CLI. */ -#if defined(CALLWEAVER) && defined(HAVE_CONFIG_H) -#include "confdefs.h" -#endif - #include #include #include @@ -73,8 +55,6 @@ #include #include #include - -#ifndef CALLWEAVER #include #include #include @@ -90,120 +70,6 @@ #include #include #include -#include "asterisk.h" - -ASTERISK_FILE_VERSION(__FILE__, "$Revision: 1.12 $") - -#else - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "callweaver.h" - -CALLWEAVER_FILE_VERSION(__FILE__, "$Revision: 1.12 $") - -// strings... -#define AST_FORMAT_SLINEAR OPBX_FORMAT_SLINEAR -#define AST_FORMAT_ULAW OPBX_FORMAT_ULAW -#define AST_FORMAT_ALAW OPBX_FORMAT_ALAW -#define ast_mutex_t opbx_mutex_t -#define ast_frame opbx_frame -#define ast_verbose opbx_verbose -#define AST_FRIENDLY_OFFSET OPBX_FRIENDLY_OFFSET -#define AST_MUTEX_DEFINE_STATIC OPBX_MUTEX_DEFINE_STATIC -#define AST_CONTROL_PROGRESS OPBX_CONTROL_PROGRESS -#define AST_CAUSE_REQUESTED_CHAN_UNAVAIL OPBX_CAUSE_REQUESTED_CHAN_UNAVAIL -#define AST_CAUSE_NORMAL_CIRCUIT_CONGESTION OPBX_CAUSE_NORMAL_CIRCUIT_CONGESTION -#define AST_CAUSE_USER_BUSY OPBX_CAUSE_USER_BUSY -#define AST_CAUSE_NO_ANSWER OPBX_CAUSE_NO_ANSWER -#define AST_CAUSE_NORMAL_CLEARING OPBX_CAUSE_NORMAL_CLEARING -#define AST_SOFTHANGUP_EXPLICIT OPBX_SOFTHANGUP_EXPLICIT -#define AST_SOFTHANGUP_DEV OPBX_SOFTHANGUP_DEV -#define AST_CAUSE_NORMAL_CLEARING OPBX_CAUSE_NORMAL_CLEARING -#define AST_FRAME_DTMF OPBX_FRAME_DTMF -#define AST_FRAME_CONTROL OPBX_FRAME_CONTROL -#define AST_CONTROL_ANSWER OPBX_CONTROL_ANSWER -#define AST_STATE_UP OPBX_STATE_UP -#define AST_STATE_RINGING OPBX_STATE_RINGING -#define AST_STATE_DOWN OPBX_STATE_DOWN -#define AST_FLAGS_ALL OPBX_FLAGS_ALL -#define AST_FRAME_VOICE OPBX_FRAME_VOICE -#define ASTERISK_GPL_KEY 0 -#define ast_channel_tech opbx_channel_tech -#define ast_test_flag opbx_test_flag -#define ast_queue_frame opbx_queue_frame -#define ast_channel opbx_channel -#define ast_exists_extension opbx_exists_extension -#define ast_hostent opbx_hostent -#define ast_clear_flag opbx_clear_flag -#define ast_log opbx_log -#define ast_set_flag opbx_set_flag -#define ast_copy_string opbx_copy_string -#define ast_set_flag opbx_set_flag -#define ast_set2_flag opbx_set2_flag -#define ast_setstate opbx_setstate -#define ast_test_flag opbx_test_flag -#define ast_softhangup opbx_softhangup -#define ast_true opbx_true -#define ast_false opbx_false -#define ast_strlen_zero opbx_strlen_zero -#define ast_exists_extension opbx_exists_extension -#define ast_frame opbx_frame -#define ast_jb_conf opbx_jb_conf -#define ast_carefulwrite opbx_carefulwrite -#define ast_channel_unregister opbx_channel_unregister -#define ast_cli opbx_cli -#define ast_cli_register opbx_cli_register -#define ast_cli_unregister opbx_cli_unregister -#define ast_jb_read_conf opbx_jb_read_conf -#define ast_mutex_destroy opbx_mutex_destroy -#define ast_mutex_init opbx_mutex_init -#define ast_mutex_lock opbx_mutex_lock -#define ast_mutex_unlock opbx_mutex_unlock -#define ast_mutex_t opbx_mutex_t -#define ast_queue_control opbx_queue_control -#define ast_queue_frame opbx_queue_frame -#define ast_queue_hangup opbx_queue_hangup -#define ast_set_callerid opbx_set_callerid -#define ast_variable opbx_variable -#define ast_pthread_create opbx_pthread_create -#define ast_cli_entry opbx_cli_entry -#define ast_channel_register opbx_channel_register -#define ast_config_load opbx_config_load -#define ast_config_destroy opbx_config_destroy -#define ast_category_browse opbx_category_browse -#define ast_variable_browse opbx_variable_browse -#define ast_gethostbyname opbx_gethostbyname -#define ast_channel_alloc opbx_channel_alloc -#define ast_dsp_new opbx_dsp_new -#define ast_dsp opbx_dsp -#define ast_dsp_set_features opbx_dsp_set_features -#define ast_dsp_digitmode opbx_dsp_digitmode -#define ast_dsp_set_call_progress_zone opbx_dsp_set_call_progress_zone -#define ast_dsp_set_busy_count opbx_dsp_set_busy_count -#define ast_dsp_set_busy_pattern opbx_dsp_set_busy_pattern -#define ast_dsp_process opbx_dsp_process -#define ast_strdupa opbx_strdupa -#define ast_mutex_trylock opbx_mutex_trylock -#define ast_cause2str opbx_cause2str -#define ast_pbx_start opbx_pbx_start -#define ast_hangup opbx_hangup - -#endif - #include #include @@ -212,12 +78,12 @@ CALLWEAVER_FILE_VERSION(__FILE__, "$Revision: 1.12 $") #define MEDIA_ANSWER "ACCEPT" #define USE_ANSWER 1 - +#include "asterisk.h" extern int option_verbose; -#define WOOMERA_VERSION "v1.12" - +#define WOOMERA_VERSION "v1.10" +ASTERISK_FILE_VERSION(__FILE__, "$Revision: 1.10 $") static int tech_count = 0; static const char desc[] = "Woomera Channel Driver"; @@ -253,7 +119,7 @@ static struct ast_jb_conf global_jbconf; #define WOOMERA_RECORD_SEPARATOR "\r\n\r\n" #define WOOMERA_DEBUG_PREFIX "**[WOOMERA]** " #define WOOMERA_DEBUG_LINE "--------------------------------------------------------------------------------" -#define WOOMERA_HARD_TIMEOUT -1000 +#define WOOMERA_HARD_TIMEOUT -10000 #define WOOMERA_QLEN 10 /* this macro is not in all versions of asterisk */ @@ -499,9 +365,10 @@ static int config_woomera(void); static int create_udp_socket(char *ip, int port, struct sockaddr_in *sockaddr, int client); static int connect_woomera(int *new_socket, woomera_profile *profile, int flags); static int init_woomera(void); +static struct ast_channel *woomera_new(const char *type, int format, void *data, int *cause); static int woomera_cli(int fd, int argc, char *argv[]); static void tech_destroy(private_object *tech_pvt, struct ast_channel *owner); -static struct ast_channel *woomera_new(const char *type, int format, void *data, int *cause, woomera_profile *profile); +static struct ast_channel *woomera_new(const char *type, int format, void *data, int *cause); static int launch_tech_thread(private_object *tech_pvt); static int tech_create_read_socket(private_object *tech_pvt); static int tech_activate(private_object *tech_pvt); @@ -943,12 +810,6 @@ static int woomera_message_parse(int fd, woomera_message *wmsg, int timeout, bytes = atoi(val); } - if (name && val && !strcasecmp(name, "content-length")) { - ast_set_flag(wmsg, WFLAG_CONTENT); - bytes = atoi(val); - } - - } wmsg->last++; } @@ -1086,7 +947,6 @@ static int tech_activate(private_object *tech_pvt) int retry_activate_call=0; woomera_message wmsg; char *callid; - int err=0; memset(&wmsg,0,sizeof(wmsg)); retry_activate_again: @@ -1132,11 +992,10 @@ retry_activate_again: woomera_printf(tech_pvt->profile, tech_pvt->command_channel, "CALL %s:%s%s" - "Raw-Audio: %s:%d%s" + "Raw-Audio: %s/%d%s" "Local-Name: %s!%s%s" "Local-Number:%s%s" "Presentation:%d%s" - "Screening:%d%s" "RDNIS:%s%s", tech_pvt->proto, tech_pvt->dest, @@ -1149,9 +1008,7 @@ retry_activate_again: WOOMERA_LINE_SEPARATOR, tech_pvt->cid_num, WOOMERA_LINE_SEPARATOR, - (tech_pvt->cid_pres>>5)&0x7, - WOOMERA_LINE_SEPARATOR, - tech_pvt->cid_pres&0xF, + tech_pvt->cid_pres, WOOMERA_LINE_SEPARATOR, tech_pvt->cid_rdnis?tech_pvt->cid_rdnis:"", WOOMERA_RECORD_SEPARATOR @@ -1161,11 +1018,10 @@ retry_activate_again: woomera_printf(tech_pvt->profile, tech_pvt->command_channel, "CALL %s%s" - "Raw-Audio: %s:%d%s" + "Raw-Audio: %s/%d%s" "Local-Name: %s!%s%s" "Local-Number:%s%s" "Presentation:%d%s" - "Screening:%d%s" "RDNIS:%s%s", tech_pvt->dest, WOOMERA_LINE_SEPARATOR, @@ -1177,17 +1033,16 @@ retry_activate_again: WOOMERA_LINE_SEPARATOR, tech_pvt->cid_num, WOOMERA_LINE_SEPARATOR, - (tech_pvt->cid_pres>>5)&0x7, - WOOMERA_LINE_SEPARATOR, - tech_pvt->cid_pres&0xF, + tech_pvt->cid_pres, WOOMERA_LINE_SEPARATOR, tech_pvt->cid_rdnis?tech_pvt->cid_rdnis:"", WOOMERA_RECORD_SEPARATOR ); } - err=woomera_message_parse_wait(tech_pvt,&wmsg); - if (err < 0 || woomera_message_reply_ok(&wmsg) != 0) { + woomera_message_parse_wait(tech_pvt,&wmsg); + + if (woomera_message_reply_ok(&wmsg) != 0) { ast_set_flag(tech_pvt, TFLAG_ABORT); } @@ -1203,23 +1058,6 @@ retry_activate_again: __FUNCTION__,__LINE__, tech_pvt->callid,tech_pvt); } - - woomera_printf(tech_pvt->profile, - tech_pvt->command_channel, - "PROCEED %s%s" - "Unique-Call-Id %s%s", - tech_pvt->callid, - WOOMERA_LINE_SEPARATOR, - tech_pvt->callid, - WOOMERA_RECORD_SEPARATOR); - - err=woomera_message_parse_wait(tech_pvt,&wmsg); - if (err < 0 || woomera_message_reply_ok(&wmsg) != 0) { - ast_set_flag(tech_pvt, TFLAG_ABORT); - /* Do not hangup on main because - * socket connection has been - * established */ - } } @@ -1242,9 +1080,8 @@ tech_activate_failed: * We must send a message to SMG to hangup the call */ - if (globals.debug > 2) { - ast_log(LOG_NOTICE, "Error: %s Call %s tpvt=%p Failed!\n", + ast_log(LOG_NOTICE, "Error: %s Call %s tpvt=%p Failed: CRITICAL\n", ast_test_flag(tech_pvt, TFLAG_OUTBOUND) ? "OUT":"IN", tech_pvt->callid,tech_pvt); } @@ -1271,7 +1108,6 @@ tech_activate_failed: static int tech_init(private_object *tech_pvt, woomera_profile *profile, int flags) { - struct ast_channel *self = tech_get_owner(tech_pvt); gettimeofday(&tech_pvt->started, NULL); @@ -1300,59 +1136,6 @@ static int tech_init(private_object *tech_pvt, woomera_profile *profile, int fla ast_set_flag(tech_pvt, flags); - tech_pvt->coding = profile->coding; - self->nativeformats = tech_pvt->coding; - self->writeformat = self->rawwriteformat = self->readformat = tech_pvt->coding; - tech_pvt->frame.subclass = tech_pvt->coding; - - if (profile->dtmf_enable) { - - tech_pvt->dsp_features=0; - tech_pvt->dsp = ast_dsp_new(); - if (tech_pvt->dsp) { -#if 0 - i->dsp_features = features & ~DSP_PROGRESS_TALK; - - /* We cannot do progress detection until receives PROGRESS message */ - if (i->outgoing && (i->sig == SIG_PRI)) { - /* Remember requested DSP features, don't treat - talking as ANSWER */ - features = 0; - } -#endif - tech_pvt->dsp_features |= DSP_FEATURE_DTMF_DETECT; - //tech_pvt->dsp_features |= DSP_FEATURE_BUSY_DETECT; - //tech_pvt->dsp_features |= DSP_FEATURE_CALL_PROGRESS; - //tech_pvt->dsp_features |= DSP_FEATURE_FAX_DETECT; - ast_dsp_set_features(tech_pvt->dsp, tech_pvt->dsp_features); - ast_dsp_digitmode(tech_pvt->dsp, DSP_DIGITMODE_DTMF | DSP_DIGITMODE_RELAXDTMF); - tech_pvt->ast_dsp=1; - -#if 0 - if (!ast_strlen_zero(progzone)) - ast_dsp_set_call_progress_zone(tech_pvt->dsp, progzone); - if (i->busydetect && CANBUSYDETECT(i)) { - ast_dsp_set_busy_count(tech_pvt->dsp, i->busycount); - ast_dsp_set_busy_pattern(tech_pvt->dsp, i->busy_tonelength, ->busy_quietlength); - } -#endif - } - } - - if (profile && profile->faxdetect) { - tech_pvt->faxdetect=1; - } - - if (profile->jb_enable) { -#ifdef AST_JB - /* Assign default jb conf to the new zt_pvt */ - memcpy(&tech_pvt->jbconf, &global_jbconf, sizeof(struct ast_jb_conf)); - ast_jb_configure(chan, &tech_pvt->jbconf); -#else - ast_log(LOG_ERROR, "Asterisk Jitter Buffer Not Compiled!\n"); -#endif - } - /* Asterisk being asterisk and all allows approx 1 nanosecond * to try and establish a connetion here before it starts crying. @@ -1380,13 +1163,13 @@ static int tech_init(private_object *tech_pvt, woomera_profile *profile, int fla ast_set_flag(tech_pvt, TFLAG_ABORT); return -1; } - ast_mutex_lock(&tech_pvt->profile->call_count_lock); + ast_mutex_lock(&default_profile.call_count_lock); if (ast_test_flag(tech_pvt, TFLAG_OUTBOUND)) { - tech_pvt->profile->call_out++; + default_profile.call_out++; } else { - tech_pvt->profile->call_in++; + default_profile.call_in++; } - ast_mutex_unlock(&tech_pvt->profile->call_count_lock); + ast_mutex_unlock(&default_profile.call_count_lock); } else { if (ast_test_flag(tech_pvt, TFLAG_OUTBOUND)) { @@ -1396,13 +1179,12 @@ static int tech_init(private_object *tech_pvt, woomera_profile *profile, int fla } } - - ast_mutex_lock(&profile->call_count_lock); - profile->call_count++; - tech_pvt->call_count = profile->call_count; - ast_mutex_unlock(&profile->call_count_lock); - - + if (profile) { + ast_mutex_lock(&profile->call_count_lock); + profile->call_count++; + tech_pvt->call_count = profile->call_count; + ast_mutex_unlock(&profile->call_count_lock); + } if (globals.debug > 2) { ast_log(LOG_NOTICE, "TECH INIT tech_pvt=%p c=%p (use=%i)\n", tech_pvt,tech_pvt->owner,usecount()); @@ -1609,8 +1391,8 @@ static void *tech_monitor_thread(void *obj) if (globals.debug > 2) { ast_log(LOG_NOTICE, "IN THREAD %s rxgain=%f txtain=%f\n", tech_pvt->callid, - tech_pvt->profile->rxgain_val, - tech_pvt->profile->txgain_val); + default_profile.rxgain_val, + default_profile.txgain_val); } @@ -1719,13 +1501,13 @@ static void *tech_monitor_thread(void *obj) usleep(5000); sched_yield(); } - ast_mutex_lock(&tech_pvt->profile->call_count_lock); - tech_pvt->profile->call_end++; - ast_mutex_unlock(&tech_pvt->profile->call_count_lock); + ast_mutex_lock(&default_profile.call_count_lock); + default_profile.call_end++; + ast_mutex_unlock(&default_profile.call_count_lock); } else { - ast_mutex_lock(&tech_pvt->profile->call_count_lock); - tech_pvt->profile->call_abort++; - ast_mutex_unlock(&tech_pvt->profile->call_count_lock); + ast_mutex_lock(&default_profile.call_count_lock); + default_profile.call_abort++; + ast_mutex_unlock(&default_profile.call_count_lock); if (globals.debug > 2) { ast_log(LOG_NOTICE, "NOTE: Skipping Wait on destroy timedout! %s tech_pvt=%p\n", @@ -1813,7 +1595,7 @@ static void *tech_monitor_thread(void *obj) woomera_printf(tech_pvt->profile, tech_pvt->command_channel, "%s %s%s" - "Raw-Audio: %s:%d%s" + "Raw-Audio: %s/%d%s" "Request-Audio: Raw%s" "Unique-Call-Id: %s%s", MEDIA_ANSWER, @@ -1881,23 +1663,22 @@ static void *tech_monitor_thread(void *obj) goto tech_thread_continue; continue; } - - ast_mutex_lock(&tech_pvt->profile->call_count_lock); - tech_pvt->profile->call_ok++; - ast_mutex_unlock(&tech_pvt->profile->call_count_lock); + + ast_mutex_lock(&default_profile.call_count_lock); + default_profile.call_ok++; + ast_mutex_unlock(&default_profile.call_count_lock); #endif } } if (ast_test_flag(tech_pvt, TFLAG_DTMF)) { if (globals.debug > 2) { - ast_log(LOG_NOTICE, "DTMF %s tpvt=%p %s\n", - tech_pvt->callid,tech_pvt,tech_pvt->dtmfbuf); + ast_log(LOG_NOTICE, "DTMF %s tpvt=%p\n", + tech_pvt->callid,tech_pvt); } //DIALECT - ast_mutex_lock(&tech_pvt->iolock); -#if 0 +#if 1 woomera_printf(tech_pvt->profile, tech_pvt->command_channel, "DTMF %s %s%s", tech_pvt->callid, @@ -1916,10 +1697,6 @@ static void *tech_monitor_thread(void *obj) WOOMERA_RECORD_SEPARATOR); #endif - ast_clear_flag(tech_pvt, TFLAG_DTMF); - memset(tech_pvt->dtmfbuf, 0, sizeof(tech_pvt->dtmfbuf)); - ast_mutex_unlock(&tech_pvt->iolock); - if (woomera_message_parse_wait(tech_pvt,&wmsg) < 0) { ast_set_flag(tech_pvt, TFLAG_ABORT); ast_log(LOG_NOTICE, "DTMF ABORT Ch=%d\n", @@ -1927,6 +1704,10 @@ static void *tech_monitor_thread(void *obj) goto tech_thread_continue; continue; } + ast_mutex_lock(&tech_pvt->iolock); + ast_clear_flag(tech_pvt, TFLAG_DTMF); + memset(tech_pvt->dtmfbuf, 0, sizeof(tech_pvt->dtmfbuf)); + ast_mutex_unlock(&tech_pvt->iolock); } if(tech_pvt->timeout) { @@ -2071,9 +1852,9 @@ static void *tech_monitor_thread(void *obj) ast_queue_frame(owner, &answer_frame); ast_set_flag(tech_pvt, TFLAG_UP); - ast_mutex_lock(&tech_pvt->profile->call_count_lock); - tech_pvt->profile->call_ok++; - ast_mutex_unlock(&tech_pvt->profile->call_count_lock); + ast_mutex_lock(&default_profile.call_count_lock); + default_profile.call_ok++; + ast_mutex_unlock(&default_profile.call_count_lock); }else{ ast_set_flag(tech_pvt, TFLAG_ABORT); @@ -2171,6 +1952,7 @@ static int woomera_locate_socket(woomera_profile *profile, int *woomera_socket) ) < 0) { ast_log(LOG_ERROR, "{%s} %s:%d HELP! Woomera is broken!\n", profile->name,__FUNCTION__,__LINE__); + globals.panic = 1; if (*woomera_socket > -1) { woomera_close_socket(woomera_socket); } @@ -2273,6 +2055,7 @@ static void *woomera_thread_run(void *obj) break; } + globals.panic = 1; continue; if (woomera_socket > -1) { @@ -2288,6 +2071,7 @@ static void *woomera_thread_run(void *obj) &profile->event_queue ) < 0) { ast_log(LOG_ERROR, "{%s} %s:%d HELP! Woomera is broken!\n", profile->name,__FUNCTION__,__LINE__); + globals.panic = 1; woomera_close_socket(&woomera_socket); } } @@ -2321,7 +2105,7 @@ static void *woomera_thread_run(void *obj) ast_log(LOG_NOTICE, "NEW INBOUND CALL %s!\n",wmsg.callid); } - if ((inchan = woomera_new(type, profile->coding, name, &cause, profile))) { + if ((inchan = woomera_new(type, WFORMAT, name, &cause))) { private_object *tech_pvt; char *callid; tech_pvt = inchan->tech_pvt; @@ -2566,8 +2350,6 @@ static int config_woomera(void) } } strncpy(profile->name, entry, sizeof(profile->name) - 1); - profile->coding=AST_FORMAT_SLINEAR; - /*default is inbound and outbound enabled */ ast_set_flag(profile, PFLAG_INBOUND | PFLAG_OUTBOUND); for (v = ast_variable_browse(cfg, entry); v ; v = v->next) { @@ -2804,30 +2586,27 @@ static int connect_woomera(int *new_socket, woomera_profile *profile, int flags) woomera_message_header(&wmsg, "Version"), sizeof(smgversion)-1); } - audio_format = woomera_message_header(&wmsg, "Raw-Format"); - if (!audio_format) { - audio_format = woomera_message_header(&wmsg, "Raw-Audio-Format"); - } if (audio_format) { profile->coding=AST_FORMAT_SLINEAR; - if (strncasecmp(audio_format,"PCM-16",20) == 0){ + if (strncmp(audio_format,"PMC-16",20) == 0){ profile->coding=AST_FORMAT_SLINEAR; - } else if (strncasecmp(audio_format,"ULAW",15) == 0) { + } else if (strncmp(audio_format,"ULAW",15) == 0) { profile->coding=AST_FORMAT_ULAW; - } else if (strncasecmp(audio_format,"ALAW",15) == 0) { + } else if (strncmp(audio_format,"ALAW",15) == 0) { profile->coding=AST_FORMAT_ALAW; } else { ast_log(LOG_ERROR, "Error: Invalid Raw-Format %s\n", audio_format); } + default_profile.coding=profile->coding; + if (globals.debug > 2) { - ast_log(LOG_NOTICE, "Setting RAW Format to %s %i (p%i:u%i:a%i)\n", - audio_format, profile->coding, - AST_FORMAT_SLINEAR,AST_FORMAT_ULAW,AST_FORMAT_ALAW); + ast_log(LOG_NOTICE, "Setting RAW Format to %s %i\n", + audio_format, default_profile.coding); } } } @@ -2869,10 +2648,11 @@ static int init_woomera(void) return 1; } -static struct ast_channel *woomera_new(const char *type, int format, void *data, int *cause, woomera_profile *parent_profile) +static struct ast_channel *woomera_new(const char *type, int format, void *data, int *cause) { private_object *tech_pvt; struct ast_channel *chan = NULL; + woomera_profile *profile=NULL;; if ((chan = ast_channel_alloc(1))) { chan->nativeformats = WFORMAT; @@ -2905,11 +2685,63 @@ static struct ast_channel *woomera_new(const char *type, int format, void *data, tech_pvt->owner = chan; - chan->nativeformats = tech_pvt->coding; - chan->writeformat = chan->rawwriteformat = chan->readformat = tech_pvt->coding; - tech_pvt->frame.subclass = tech_pvt->coding; - - + + profile = ASTOBJ_CONTAINER_FIND(&woomera_profile_list, "default"); + + if (profile) { + tech_pvt->coding = profile->coding; + chan->nativeformats = profile->coding; + chan->writeformat = chan->rawwriteformat = chan->readformat = profile->coding; + tech_pvt->frame.subclass = profile->coding; + } + + if (profile && profile->dtmf_enable) { + + + + tech_pvt->dsp_features=0; + tech_pvt->dsp = ast_dsp_new(); + if (tech_pvt->dsp) { +#if 0 + i->dsp_features = features & ~DSP_PROGRESS_TALK; + + /* We cannot do progress detection until receives PROGRESS message */ + if (i->outgoing && (i->sig == SIG_PRI)) { + /* Remember requested DSP features, don't treat + talking as ANSWER */ + features = 0; + } +#endif + tech_pvt->dsp_features |= DSP_FEATURE_DTMF_DETECT; + //tech_pvt->dsp_features |= DSP_FEATURE_BUSY_DETECT; + //tech_pvt->dsp_features |= DSP_FEATURE_CALL_PROGRESS; + //tech_pvt->dsp_features |= DSP_FEATURE_FAX_DETECT; + ast_dsp_set_features(tech_pvt->dsp, tech_pvt->dsp_features); + ast_dsp_digitmode(tech_pvt->dsp, DSP_DIGITMODE_DTMF | DSP_DIGITMODE_RELAXDTMF); + tech_pvt->ast_dsp=1; + +#if 0 + if (!ast_strlen_zero(progzone)) + ast_dsp_set_call_progress_zone(tech_pvt->dsp, progzone); + if (i->busydetect && CANBUSYDETECT(i)) { + ast_dsp_set_busy_count(tech_pvt->dsp, i->busycount); + ast_dsp_set_busy_pattern(tech_pvt->dsp, i->busy_tonelength, i->busy_quietlength); + } +#endif + } + } + if (profile && profile->faxdetect) { + tech_pvt->faxdetect=1; + } + if (profile && profile->jb_enable) { +#ifdef AST_JB + /* Assign default jb conf to the new zt_pvt */ + memcpy(&tech_pvt->jbconf, &global_jbconf, sizeof(struct ast_jb_conf)); + ast_jb_configure(chan, &tech_pvt->jbconf); +#else + ast_log(LOG_ERROR, "Asterisk Jitter Buffer Not Compiled!\n"); +#endif + } ASTOBJ_CONTAINER_LINK(&private_object_list, tech_pvt); ast_mutex_lock(&usecnt_lock); @@ -2947,7 +2779,7 @@ static struct ast_channel *tech_requester(const char *type, int format, void *da return NULL; } - if ((chan = woomera_new(type, format, data, cause, NULL))) { + if ((chan = woomera_new(type, format, data, cause))) { private_object *tech_pvt; tech_pvt = chan->tech_pvt; @@ -3018,11 +2850,10 @@ static int tech_call(struct ast_channel *self, char *dest, int timeout) goto tech_call_failed; } if (globals.debug > 2) { - ast_log(LOG_NOTICE, "TECH CALL %s (%s <%s>) pres=0x%02X dest=%s\n", + ast_log(LOG_NOTICE, "TECH CALL %s (%s <%s>) (%p)\n", self->name, self->cid.cid_name, self->cid.cid_num, - self->cid.cid_pres, - dest); + tech_pvt); } if (self->cid.cid_name) { strncpy(tech_pvt->cid_name, self->cid.cid_name, sizeof(tech_pvt->cid_name)-1); @@ -3040,11 +2871,7 @@ static int tech_call(struct ast_channel *self, char *dest, int timeout) if ((workspace = ast_strdupa(dest))) { char *addr, *profile_name, *proto=NULL; woomera_profile *profile; - int err; - -#if 0 - int isprofile = 0; - + int isprofile = 0, err; if ((addr = strchr(workspace, ':'))) { char *tst; @@ -3058,30 +2885,14 @@ static int tech_call(struct ast_channel *self, char *dest, int timeout) proto = NULL; addr = workspace; } - - - - - if ((profile_name = strchr(addr, ':'))) { + + if ((profile_name = strchr(addr, '*'))) { *profile_name = '\0'; profile_name++; isprofile = 1; } else { profile_name = "default"; } -#else - profile_name = "default"; - proto = NULL; - if ((addr = strchr(workspace, ':'))) { - profile_name = workspace; - proto=profile_name; - *addr = '\0'; - addr++; - } else { - addr = workspace; - } - -#endif if (! (profile = ASTOBJ_CONTAINER_FIND(&woomera_profile_list, profile_name))) { profile = ASTOBJ_CONTAINER_FIND(&woomera_profile_list, "default"); @@ -3091,7 +2902,7 @@ static int tech_call(struct ast_channel *self, char *dest, int timeout) ast_log(LOG_ERROR, "Unable to find profile! Call Aborted!\n"); goto tech_call_failed; } - + if (!ast_test_flag(profile, PFLAG_OUTBOUND)) { ast_log(LOG_ERROR, "This profile is not allowed to make outbound calls! Call Aborted!\n"); goto tech_call_failed; @@ -3113,11 +2924,6 @@ static int tech_call(struct ast_channel *self, char *dest, int timeout) snprintf(tech_pvt->dest, sizeof(tech_pvt->dest), "%s", addr ? addr : ""); snprintf(tech_pvt->proto, sizeof(tech_pvt->proto), "%s", proto ? proto : ""); - if (globals.debug > 2) { - ast_log(LOG_NOTICE, "TECH CALL: proto=%s addr=%s profile=%s Coding=%i\n", - proto,addr,profile_name,profile->coding); - } - tech_pvt->timeout = timeout; err=tech_init(tech_pvt, profile, TFLAG_OUTBOUND); if (err) { @@ -3343,7 +3149,6 @@ static struct ast_frame *tech_read(struct ast_channel *self) { private_object *tech_pvt = self->tech_pvt; int res = 0; - struct ast_frame *f; if (!tech_pvt || globals.panic || ast_test_flag(tech_pvt, TFLAG_ABORT)) { @@ -3367,46 +3172,34 @@ tech_read_again: return NULL; } - tech_pvt->frame.frametype = AST_FRAME_VOICE; - tech_pvt->frame.subclass = tech_pvt->coding; - tech_pvt->frame.offset = AST_FRIENDLY_OFFSET; - tech_pvt->frame.datalen = res; - tech_pvt->frame.samples = res; - tech_pvt->frame.data = tech_pvt->fdata + AST_FRIENDLY_OFFSET; + tech_pvt->frame.datalen = res; + if (tech_pvt->coding == AST_FORMAT_SLINEAR) { + tech_pvt->frame.samples = res / 2; + } else { + tech_pvt->frame.samples = res; + } + tech_pvt->frame.data = tech_pvt->fdata + AST_FRIENDLY_OFFSET; - f=&tech_pvt->frame; - - if (tech_pvt->profile->rxgain_val) { + if (default_profile.rxgain_val) { int i; unsigned char *data=tech_pvt->frame.data; for (i=0;iframe.datalen;i++) { - data[i]=tech_pvt->profile->rxgain[data[i]]; + data[i]=default_profile.rxgain[data[i]]; } } - - if (tech_pvt->owner && (tech_pvt->faxdetect || tech_pvt->ast_dsp)) { - f = ast_dsp_process(tech_pvt->owner, tech_pvt->dsp, &tech_pvt->frame); - if (f && f->frametype == AST_FRAME_DTMF){ - if (globals.debug > 2) { - ast_log(LOG_NOTICE, "%s: Detected inband DTMF digit: %c\n", - self->name, - f->subclass); - } - } - - //woomera_tx2ast_frm(tech_pvt, tech_pvt->frame.data, tech_pvt->frame.datalen); + + if (tech_pvt->faxdetect || tech_pvt->ast_dsp ) { + woomera_tx2ast_frm(tech_pvt, tech_pvt->frame.data, tech_pvt->frame.datalen); } if (globals.debug > 4) { if (option_verbose > 2) { - ast_verbose(WOOMERA_DEBUG_PREFIX "+++READ %s %d coding %d\n",self->name, res, - tech_pvt->coding); + ast_verbose(WOOMERA_DEBUG_PREFIX "+++READ %s %d\n",self->name, res); } } - - return f; + return &tech_pvt->frame; } /*--- tech_write: Write an audio frame to my channel @@ -3427,10 +3220,10 @@ static int tech_write(struct ast_channel *self, struct ast_frame *frame) if(ast_test_flag(tech_pvt, TFLAG_MEDIA) && frame->datalen) { if (frame->frametype == AST_FRAME_VOICE) { - if (tech_pvt->profile->txgain_val) { + if (default_profile.txgain_val) { unsigned char *data=frame->data; for (i=0;idatalen;i++) { - data[i]=tech_pvt->profile->txgain[data[i]]; + data[i]=default_profile.txgain[data[i]]; } } @@ -3444,8 +3237,6 @@ static int tech_write(struct ast_channel *self, struct ast_frame *frame) ast_verbose(WOOMERA_DEBUG_PREFIX "+++WRITE %s %d\n",self->name, i); } } - - } else { ast_log(LOG_WARNING, "Invalid frame type %d sent\n", frame->frametype); } @@ -3614,111 +3405,79 @@ static enum ast_bridge_result tech_bridge(struct ast_channel *c0, struct ast_cha static int woomera_cli(int fd, int argc, char *argv[]) { - struct woomera_profile *profile; - char *profile_name="default"; - - if (argc > 2) { - - profile_name=argv[1]; - profile = ASTOBJ_CONTAINER_FIND(&woomera_profile_list, profile_name); - if (!profile) { - ast_cli(fd, "Woomera: Invalid profile name %s\n", profile_name); - return 0; - } + if (argc > 1) { - if (!strcmp(argv[2], "debug")) { - if (argc > 3) { - globals.debug = atoi(argv[3]); + if (!strcmp(argv[1], "debug")) { + if (argc > 2) { + globals.debug = atoi(argv[2]); } ast_cli(fd, "Woomera debug=%d\n", globals.debug); - - - } else if (!strcmp(argv[2], "coding")) { - - switch (profile->coding) { - case AST_FORMAT_ALAW: - ast_cli(fd, " Woomera {%s} coding=ALAW\n",profile_name); - break; - case AST_FORMAT_ULAW: - ast_cli(fd, " Woomera {%s} coding=ULAW\n",profile_name); - break; - case AST_FORMAT_SLINEAR: - ast_cli(fd, " Woomera {%s} coding=PMC-16\n",profile_name); - break; - default: - ast_cli(fd, " Woomera {%s} invalid coding=%d {internal error}", - profile_name,profile->coding); - break; - - } - } else if (!strcmp(argv[2], "call_status")) { + } else if (!strcmp(argv[1], "call_status")) { + + ast_cli(fd, "Woomera calls=%d tcalls=%d (out=%d in=%d ok=%d end=%d abort=%d)\n", + default_profile.call_count, + default_profile.call_out+default_profile.call_in, + default_profile.call_out, + default_profile.call_in, + default_profile.call_ok, + default_profile.call_end, + default_profile.call_abort); - ast_cli(fd, "Woomera {%s} calls=%d tcalls=%d (out=%d in=%d ok=%d end=%d abort=%d)\n", - profile->name, - profile->call_count, - profile->call_out+profile->call_in, - profile->call_out, - profile->call_in, - profile->call_ok, - profile->call_end, - profile->call_abort); - - } else if (!strcmp(argv[2], "version")) { + } else if (!strcmp(argv[1], "version")) { ast_cli(fd, "Woomera version %s : SMG Version %s \n", WOOMERA_VERSION,smgversion); - } else if (!strcmp(argv[2], "panic")) { - if (argc > 3) { - globals.panic = atoi(argv[3]); + } else if (!strcmp(argv[1], "panic")) { + if (argc > 2) { + globals.panic = atoi(argv[2]); } ast_cli(fd, "Woomera panic=%d \n", globals.panic); - } else if (!strcmp(argv[2], "rxgain")) { + } else if (!strcmp(argv[1], "rxgain")) { float gain; - if (argc > 3) { - if (sscanf(argv[3], "%f", &gain) != 1) { - ast_cli(fd, "Woomera Invalid rxgain: %s\n",argv[3]); + if (argc > 2) { + if (sscanf(argv[2], "%f", &gain) != 1) { + ast_cli(fd, "Woomera Invalid rxgain: %s\n",argv[2]); } else { - woomera_config_gain(profile,gain,1); + woomera_config_gain(&default_profile,gain,1); } } - ast_cli(fd, "Woomera {%s} rxgain: %f\n",profile_name,profile->rxgain_val); + ast_cli(fd, "Woomera rxgain: %f\n",default_profile.rxgain_val); - } else if (!strcmp(argv[2], "txgain")) { + } else if (!strcmp(argv[1], "txgain")) { float gain; - if (argc > 3) { - if (sscanf(argv[3], "%f", &gain) != 1) { - ast_cli(fd, "Woomera Invalid txgain: %s\n",argv[3]); + if (argc > 2) { + if (sscanf(argv[2], "%f", &gain) != 1) { + ast_cli(fd, "Woomera Invalid txgain: %s\n",argv[2]); } else { - woomera_config_gain(profile,gain,0); + woomera_config_gain(&default_profile,gain,0); } } - ast_cli(fd, "Woomera {%s} txgain: %f\n",profile_name,profile->txgain_val); + ast_cli(fd, "Woomera txgain: %f\n",default_profile.txgain_val); - } else if (!strcmp(argv[2], "threads")) { - ast_cli(fd, "chan_woomera is using %s threads!\n", - globals.more_threads ? "more" : "less"); + } else if (!strcmp(argv[1], "threads")) { + ast_cli(fd, "chan_woomera is using %s threads!\n", globals.more_threads ? "more" : "less"); - } else if (!strcmp(argv[2], "smgdebug")) { + } else if (!strcmp(argv[1], "smgdebug")) { if (argc > 2) { int smgdebug; - if (sscanf(argv[3], "%d", &smgdebug) != 1) { - ast_cli(fd, "Woomera Invalid smgdebug level: %s\n",argv[3]); + if (sscanf(argv[2], "%d", &smgdebug) != 1) { + ast_cli(fd, "Woomera Invalid smgdebug level: %s\n",argv[2]); } else { - woomera_printf(NULL, profile->woomera_socket , "debug %d%s", + woomera_printf(NULL, default_profile.woomera_socket , "debug %d%s", smgdebug, WOOMERA_RECORD_SEPARATOR); } } - } else if (!strcmp(argv[2], "abort")) { + } else if (!strcmp(argv[1], "abort")) { global_set_flag(TFLAG_ABORT); } } else { - ast_cli(fd, "Usage: woomera